目录
1. 全局字典dict
1.1 全局字典介绍
精确去重,会使用bit map方法。对于整型数据,可以将这些整数直接保存到bit map中。但其他类型,如String,为了实现精确的重复数据删除,首先需要对这些数据建立一个字典进行统一映射,然后使用bit map方法进行统计
1.2 Kylin全局字典的生成原理
- 每个构建任务都将生成一个新的全局字典,用版本号保存,旧的全局字典会逐渐删除
- 一个全局字典包含一个元数据文件和多个字典文件,每个字典文件称为一个 bucket
- 每个bucket被划分为两个映射(Map<Object, Long>),并将这两个映射组合成一个完整的映射关系
结构如下:
1.3 全局字典调优参数
kylin.dictionary.globalV2-threshold-bucket-size (默认值500000):如果CPU资源充足,减少此配置的值可以减少单个分区中的数据量,从而加快构建全局字典
1.4 全局字典的使用
在Cube Designer的Measures中,进行精确去重计数度量的添加,如下所示,进行薪水的总类统计
这样每一次cube的构建,都会产生一份全局字典
1.5 查看HDFS的dict文件
查看HDFS,如下所示:
2. 快照表table_snapshot
每一张快照表对应一个Hive维度表,Kylin的cube每次构建都会对hive维度表创建一个新的快照
主要有2个参数来调优,如下表所示:
参数名 | 默认值 | 说明 |
---|---|---|
kylin.snapshot.parallel-build-enabled | true | 是否开启并行构建,建议开启 |
kylin.snapshot.shard-size-mb | 128MB | 如果CPU资源充足,可以减少值来增 |
加并行度。并行度 = 原表数据量 / 该参数 |