谈对Kylin、KE(Kyligence Enterprise)、PostgreSql的一些感受
前言:
我们知道,对很大的数据表比如说几十T,我们经常使用设定定时器让Hive使用SQL转成MR,帮我们算出结果。我们需要让Hive为我们计算一段时间内的数据。但是如果对于一些场景,比如说数据分析师,经常想要很快的让数据库展现结果。然后这时候,可以采用PostgreSql使用citus插件进行分库分表,达到比较快的计算速度。当然也可以使用Kylin(开源版)、KE(Kylin企业版)进行预运算,讲数据结果存储到Hbase,这样相比Hive可以达到很好的效果(实际就是以空间换时间,因为预运算会将很多可能要算的结果先帮我们算好,存储到Hbase)。。
本文不做具体知识的讲解,只是谈谈一些自己在工作中的经历。
另附一些大数据学习书籍pdf,增添了《Kylin编程指南》,资源均来自网络,个人将它们整合在一起而已。
若链接失效请联系
https://pan.baidu.com/s/1R6-4ey91993iK6c-6BnoLQ
密码:qjuk
我们知道,使用Kylin对数据进行查询之前,要先为表创建好模型(包含维度、度量),然后对模型创建好cube,再进行build。
先来谈一谈优化,对build出来的cube膨胀率不能超过1000%,对cube优化无疑就是剪枝。
剪枝包含(衍生维度、聚合维度、强制维度等等) 具体可看http://bigdata.51cto.com/art/201705/538648.htm
你会发现无论你自己人工的在Kylin下进行优化,效果还是比企业版自动建模差的多(可能自己弱的问题)。KE是专门对你仍的SQL语句进行建模,多少条SQL语句就有多少条聚合组。在Kylin下模仿KE的建模,后cube构建时间差一点,但是查询时间就慢很多,毕竟企业版底层肯定还会进行查询优化,个人的话就知道rowkey的设计。
希望道友也能发下自己对这些东西使用的感受,毕竟现在这东西刚萌芽
相关文章