Apache Kylin权威指南(第2版)
上QQ阅读APP看书,第一时间看更新

2.2.4 了解维度的基数

维度的基数(Cardinality)指的是该维度在数据集中出现的不同值的个数。例如,“国家”是一个维度,有200个不同的值,那么此维度的基数是200。通常,一个维度的基数为几十到几万,个别维度如“用户ID”的基数会超过百万甚至千万,基数超过一百万的维度通常被称为超高基数维度(Ultra High Cardinality,UHC),需要引起设计者的注意。

Cube中所有维度的基数可以体现Cube的复杂度,如果一个Cube中有多个超高基数维度,那么这个Cube膨胀的几率就会很高。在创建Cube前对所有维度的基数做一个了解,可以帮助设计合理的Cube。计算基数有多种途径,最简单的方法就是让Hive执行一个count distinct的SQL查询,同时Apache Kylin也提供了计算基数的方法,这部分内容会在2.4.1节中进行介绍。