维度通常是一个数据记录的属性,度量是某一个维度根据特定聚合函数生成的值;group by 的属性通常就是维度,计算的值则是度量。
事实表:存储有事实记录的表,如系统日志、销售记录等,事实表的记录会不断增长。
维度表:也称查找表,是与事实表相对应的一种表;保存了维度属性值,跟事实表做关联。是对事实表上重复出现的属性抽取、规范出来用一张表进行管理。如地区、月度、年度等。
data cube:数据立方体,原始数据建立的多维度索引,可以大大加快数据的查询效率。
cuboid:某一种维度组合下所计算的数据。
cubsegment:针对源数据中的某一个片段,计算出来的cube数据,cube是按照时间顺序来构建的。
大数据事实表按照时间梯度的增量计算生成的cube,就是cubesegment,过多的segment会影响后期查询性能,需要进行合并。
维度表设计
1、数据一致性,主键唯一性,kylin会检查,如果不唯一,会报错。
2、维度表越小越好,因为kylin会放在内存中,默认的阈值是300mb
3、改变频率低,kylin会在每次构建中试图重用维度表的快照,如果维度表经常改变,重用会失效。
4、维度表最好不要是视图,因为需要对视图物化,从而增加时间开销。
维度基数:维度在数据集中出现的不通值,如国家这个维度,如果有200个不同的值,那么此维度的基数就是200。基数超过100w的维度通常被称为超高基数维度,需要注意。
如果一个cube的超高基数维度多,那这个cube膨胀的概率会很高。