kylin 揭开亚秒级查询的神秘面纱

  1. kylin之所有亚秒级别的查询,主要在于存储结构,kylin的数据都是写入了hbase,cube的重点就是维度和度量列,在hbase中rowkey就是由各维度值拼接起来的,这里列一个比较形象的例子,这篇文章的目标就达到了
  2. cube id的维度值 1,2 dt的维度值是25,26,27,下面根据cube的概念完成下在这个表,一共11条记录,按照cube 维度的n次方还有一种就情况就是没有维度这种,应该在hbase中理想条件下会有12条数据,经验证后hbase只有11条数据,没有维度这种情况,完全可以根据只有一个维度的数据去做聚合数据
    序号 维度数量 id(维度) dt(维度) noney(度量列) salary(度量列) rowkey value
    1 1个维度  1   xx xx 1 xx/xx
    2 1个维度 2   xx xx 2 xx/xx
    3 1个维度   25 xx xx 25 xx/xx
    4 1个维度   26 xx xx 26 xx/xx
    5 1个维度   27 xx xx 27 xx/xx
    6 2个维度 1 25 xx xx 1-25 xx/xx
    7 2个维度 1 26 xx xx 1-26 xx/xx
    8 2个维度 1 27 xx xx 1-27 xx/xx
    9 2个维度 2 25 xx xx 2-25 xx/xx
    10 2个维度 2 26 xx xx 2-26 xx/xx
    11 2个维度 2 27 xx xx 2-27 xx/xx

     

  3. sql如何查hbase数据,sum的结果就是value中的

    select id,sum(money)
    from
    table
    group by id 

    取序号为1,2的两条数据就行了

    select dt,sum(money)
    from 
    table 
    group by dt

    取序号为3,4,5的数据就行了

    select id,dt,sum(money)
    from 
    table 
    group by id ,dt

    取6,7,8,9,10,11的数据就行了,这下明白为什么kylin为什么这么快了吧,对于这种多维度的计算,先在hbase中对所有的维度进行,然后在查询时直接在hbase中查数就行了,因为hbase这种随机查询很强,所有kylin查数能控制在亚秒级别了

  4. kylin中的优化主要也是围绕hbase中生成的数据来的,下篇再介绍

你可能感兴趣的:(kylin)