其他
Kylin 平台 - 新版全局字典特性上线,支持 20 亿基数字典稳定构建
背景
当前全局字典介绍
目前在内存有限,且字典较大时,容易出现字典分片被频繁换入换成的抖动,导致整体效率不高; 虽然一个 Cube 多个全局字典可以并发构建,但是每个全局字典,只能在单一进程中构建; 实际场景中,很多列的数据有高度相似性或属于同一来源,有可能共享同一个全局字典,目前只支持 Cube 自己内部复用。
新版 Hive 全局字典
同 Cube 多列全局字典构建全部并行化,提高了构建性能。使用 MR 和 Hive 进行构建,减少 Kylin 节点内存需要; 突破原来全局字典的基数瓶颈; 替换中间表原值,后续构建步骤都是基于字典编码值的,减少了其它步骤内存的使用,提高整个构建的效率; Hive 表的形式存储全局字典,其它 Cube 或服务可以很容易的复用字典。
新版 Hive 全局字典的使用
使用步骤
{TABLE_NAME}_{COLUMN_NAME}
{TABLE_NAME}_{COLUMN_NAME}:{num}
KYLIN_SALES_SALES_ID:10,KYLIN_SALES_BUYER_ID:5
构建性能对比
环境对比
测试案例 1
cube_01:基于 tire-tree 的全局字典,包含 11 个维度,2 个度量(一个 sum,一个 bitmap); cube_02:新版 Hive 全局字典,包含 11 个维度,2 个度量(一个 sum,一个 bitmap)。
cube_01 构建总时长为 81.67 min,构建全局字典耗时约为 45 min(包含了构建维度字典的时间),构建 cuboids 耗时约为 17 min; cube_02 构建总时长为 48.95 min,构建全局字典耗时约为 16 min,构建 cuboids 耗时约为 13 min。
测试案例 2
cube_03:基于 tire-tree 的全局字典,包含 1 个维度,1 个度量 (bitmap); cube_04:新版 Hive 全局字典,包含 1 个维度,1个度量 (bitmap)。
cube_03 构建总时长为 224.6 min,构建维度字典和全局字典耗时约为 197.95 min,构建 cuboids 耗时约为 12.53 min; cube_04 构建总时长为 123.85 min,构建维度字典和全局字典耗时约为 84.43 min,构建 cuboids 耗时约为 17.79 min。
总结
杨正,58大数据部 Kylin 核心工程师
*注:本文来源于 58大数据部
活动报名
↓↓↓现在就扫描二维码免费入群报名↓↓↓
往期推荐