数据仓库必须get的名词解释

OLAP与OLTP

  • OLAP(Online Analytical Process),联机分析处理,以多维度的方式分 析数据,而且能够弹性地提供上卷(Roll-up)、下钻(Drill-down)和透视分 析(Pivot)等操作,它是呈现集成性决策信息的方法,多用于决策支持系 统、商务智能或数据仓库。其主要的功能在于方便大规模数据分析及统 计计算,可对决策提供参考和支持。更多情况下OLAP与多维分析 相关,基于立方体(Cube)计算而进行的分析。

  • OLTP,联机交易处理,更侧重于基本的、日常的事务处理,包括数据的 增删改查。

BI

BI(Business Intelligence),即商务智能,指用现代数据仓库技术、在线分析技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。

维度

  • 维度是指审视数据的角度,通常是数据记录的一个属性,如时间、地点等。

度量

  • 度量是基于数据所计算出来的考量值,通常是一个数值,如总销售额、不同用户数等。

  • 分析人员往往要结合若干个维度来审查度量值,以便在其中找到变化规律。在一个SQL查询中,groupBy的属性通常就是维度,而计算的值则是度量。

  • select time,location,sum(gmv)as gmv from sales group by time,location

  • 在上边的查询中,time和location是维度,sum(gmv)是度量

Cuboid与Cube

  • 给定一个数据模型,我们可以对其上的所有维度进行组合。对于N个维度来说,组合的所有可能性共有2^N种。对于每一种维度的组合将度量做聚合运算,然后将运算的结果保存为一个物化视图,称为Cuboid.

  • 所有维度组合的Cuboid作为一个整体,被称为Cube.

  • 简单说Cube就是许多按维度聚合的物化视图的集合,即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过Cube对数据进行分析, 可以大大加快数据的查询效率。

事实表

  • 事实表(Fact Table)指存储有事实记录的表,如系统日志、销售记录等;事实表的记录在不断地动态增长,所以它的体积通常远大于其他 表

维度表

  • 维度表(Dimension Table)或维表,有时也称查找表(Lookup Table), 是与事实表相对应的一种表;它保存了维度的属性值,可以跟事实表做关 联;相当于将事实表上经常重复出现的属性抽取、规范出来用一张表进行 管理

  • 常见的维度表有:日期表(存储与日期对应的周、月、季度等的属 性)、地点表(包含国家、省/州、城市等属性)等

  • 维度表的好处:

  • 缩小了事实表的大小

  • 便于维度的管理和维护,增加、删除和修改维度属性,不必对事实表的大量记录进行改动

  • 维度表可以为多个事实表重用,以减少重复工作

星形模型

  • 星形模型中有一张事实表,以及零个或多个维度表;事实表与维度表 通过主键外键相关联,维度表之间没有关联,就像很多星星围绕在一个 恒星周围,故取名为星形模型。

  • 星座模型是更复杂的模型,其中包含了多个事实表,而维度表是公 用的,可以共享。

  • 星形模型是最简单,也是最常用的模型。

  • 如果将星形模型中某些维度的表再做规范,抽取成更细的维度表,然后让维度表之间也进行关联,那么这种模型称为雪花模型。

维度表的设计

  1. 要具有数据一致性,主键必须是唯一的;

  2. 维度表越小越好,因为kylin会将维度表加载到内存中供查询,太大的表不适合作为维度表,默认的阈值是300Mb;

  3. 改变频率低,Kylin会在每次构建中试图重用维度表的快照,如果维度表经常改变的话,重用就会失效,这就会导致要经常对维度表创建快照。

  4. 维度表最好不要是Hive视图(View),虽然在Kylin1.5.3中加入了对维度表是视图这种情况的支持,但每次都需要将视图进行物化,从而导致额外的时间开销。

hive表分区

  • Hive表支持多分区(Partition)

  • 如果查询中指定了分区列的属性条件,则Hive会选择特定分区(也就是目录),从而避免全量数据的扫描,减少读写操作对集群的压力。

  • Hive > create table tb(id int,name string)

  • Hive > partitioned by (ds string) row format delimited fields terminated by 't' stored as textfile;

  • Hive > load data local inpath '/user/hadoop/data.txt' overwrite into tb partition (ds = '20190529');

  • Hive > select * from tb where ds = '20190529';

维度的基数

  • 维度的基数(Cardinality)指的是该维度在数据集中出现的不同值的 个数;例如“国家”是一个维度,如果有200个不同的值,那么此维度的基数 就是200。

  • 通常一个维度的基数会从几十到几万个不等,个别维度如“用 户ID”的基数会超过百万甚至千万。基数超过一百万的维度通常被称为超 高基数维度,需要引起设计者的注意。

  • Cube中所有维度的基数都可以体现出Cube的复杂度,如果有好几个超高基数维度,这个cube膨胀的概率就会很高。

  • 计算基数的简单方法就是hive Sql执行count distinct命令操作.

设计Cube

  • 导入Hive表

  • 创建数据模型(选择用作维度和度量的列)

  1. 选择维度列时,维度可以来自事实表或者维度表

  2. 选择度量列时,度量只能来自事实表

发布了4 篇原创文章 · 获赞 1 · 访问量 196

猜你喜欢

转载自blog.csdn.net/weixin_40983094/article/details/105487188