distinct去重多个字段_kylin精确去重

428f3b4bee9b22ccb2c81a002afda5a3.png

使用kylin的是经常会遇到需要 count(distinct ) 这种聚合方式,这时候就需要精确去重

实现精确去重的方法:使用bitmap格式存储,因为需要保留明细,而计算机存储的最小单位是bit, 所以我们使用bitmap格式存储

bitmap格式对应的是int值,这时候就遇到一个问题,string类型映射到int值的问题

所以就需要全局字典:global dictionary 参数

全局字典特性:

1.随着数据的加载,会变得越来也大,构建也会越来越慢

2.针对字段是非int值,才需要构建

3.非分区字段不需要全局字典,可以说全局字典针对同一个表不同分区

4.如果不需要跨segment进行计算,则不需要全局字典

5.全局字典只针对构建时才会加载,其他时期不影响

6.存储位置是hdfs上,所以新构建dict,需要hdfs相应位置的写入权限

所以全局字典需要慎用,特定场合用,不需要用的时候,使用普通字典更好

全局字典报错: should have 0 or 1 append dict but 2

原因:已经有一个全局字典存在,无法再新构建一个

解决:

1.不使用全局字典,改用普通字典

2.删除这个全局字典,去相应的hdfs上找到这个dict 删除即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值