作家
登录

Apache Kylin中对上亿字符串的精确Count_Distinct示例

作者: 来源: 2017-05-11 12:23:18 阅读 我要评论

size exceeds VM limit  
  • # -XX:OnOutOfMemoryError=”kill -9 %p”  
  • # Executing /bin/sh -c “kill -9 16193″… 
  • 是以,这种需求我们须要手动应用Global Dictionary,顾名思义,它是一个全局的字典,不分Segments,同一个user_id,在全局字典中只有一个ID。

    在状况为DISABLED的Cube列表中,点击”Admins”菜单下的”Edit(JSON)”,进入Cube JSON描述的编辑页面,

    添加下面的JSON

    个中,在override_kylin_properties 中增长了两个Cube的设备参数,用于增长Mapper的运行内存。

    1. "dictionaries": [ 
    2.     { 
    3.       "column""USER_ID"
    4.       "builder""org.apache.kylin.dict.GlobalDictionaryBuilder" 
    5.     } 
    6.   ] 

    定义了对USER_ID字段应用全局字典。

    之后,保存JSON。

    Build与萌芽

    Build完成后,在Hive和Kylin中履行下面的萌芽:

    SELECT city_code,SUM(bid_request) AS bid_request,COUNT(DISTINCT user_id) AS uvFROM liuxiaowen.TEST_T_PBS_UV_FACTGROUP BY city_codeORDER BY uv DESC limit 30;

    Hive中耗时:181.134 seconds

    Kylin中耗时:9 seconds

    萌芽结不雅完全一致:

    Global Dictionary存在问题

    因为Global Dictionary 底层基于bitmap,其最安闲量为Integer.MAX_VALUE,即21亿多,如不雅全局字典中,累计值跨越Integer.MAX_VALUE,那么在Build时刻便会报错。

    是以,应用全局字的┞氛样有容量的限制。

    【编辑推荐】

    1. R说话进阶之2:文本(字符串)处理与正则表达式
    2. Apache Kylin宣布新版流处理引擎
    3. 美团Apache Kylin精确去重指标优化过程
    4. Apache Kylin优化–高等设置:聚合组(Aggregation Group)原懂得析
    5. Apache Kylin优化之—Cube的高等设置
    【义务编辑:武晓燕 TEL:(010)68476606】

    今朝Kylin的UI中没有可以直接设备Global Dictionary的处所,须要手动修改Cube的JSON描述:



      推荐阅读

      如何快速成为数据分析师?

    说来我正式接触数据分析也快一年,对速成照样有一些心得。优良的数据分析师是不克不及速成的,然则零经验也有零经验的捷径。这两个搞定,根本10万条以内的数据统计没啥难度,80%的办公室白>>>详细阅读


    本文标题:Apache Kylin中对上亿字符串的精确Count_Distinct示例

    地址:http://www.17bianji.com/lsqh/35154.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)