从分布式的角度看大数据平台构建之释放大数据生产力
7 2019-01-09

今天,加米谷大数据带大家一起从分布式角度看大数据平台的构建:

刘一鸣:释放大数据生产力

大数据分析场景在丰富的技术产品栈面前,依旧面临着技术门槛高、人才短缺、项目开发周期长等问题。IT部门如何从被动的业务实现者转变为业务的赋能者,业务部门如何通过优秀的工具更好地理解数据、挖掘数据的价值,是每一个数据团队、IT 团队需要思考的问题。来自Kyligence云与生态合作部副总裁刘一鸣基于上述问题,讲述了Apache Kylin技术的设计思考和最佳实践。

Apache Kylin是一个开源的分布式分析引擎 ,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力(可以把Kylin定义为 OLAP on Hadoop )。据介绍,它是首个完全由中国人贡献到国际顶级开源社区的开源项目,也是首个来自中国的Apache顶级开源项目。

Apache Kylin作为OLAP引擎包含了从数据源(Hive/Kafka等)获取源数据,基于MapReduce 构建多维立方体(Cube) ,并充分利用 HBase 的列式特性来分布式的 存储立方体数据 ,提供标准SQL解析与查询优化,以及ODBC/JDBC驱动及REST API等多个模块。

QQ截图20190109101655.jpg

如下图所示,Kylin基于HBase的列式存储,计算结果集保存在HBase中,原有的基于行的关系模型被转换成基于键值对的列式存储,维度组合作为Rowkey,查询访问不再需要昂贵的表扫描,维度值通过编码算法(字典、定长、时间戳等)高度压缩,指标通过Column存储,可以灵活、无限制的增加指标数量,此外,预先计算的结果也为高速高并发分析带来了可能。

QQ截图20190109101708.jpg

大多数的Hadoop分析工具和SQL是友好的,所以Apache Kylin拥有SQL接口这一点就显得尤为重要。Kylin用的SQL解析器是开源的Apache Calcite,支持几乎所有的SQL标准。Hive用的也是Calcite。

与其它SQL ON Hadoop不同,Kylin主要采用预计算(离线计算)的实现方式 。用户在使用之前先选择一个Hive Table的集合,然后在这个基础上做一个离线的Cube构建,Cube构建完了之后就可以做SQL查询了。用离线计算来代替在线计算,在离线过程当中把复杂的、计算量很大的工作做完,在线计算量就会变小,就可以更快的返回查询结果。通过这种方式,Kylin可以用更少的计算,获取更高的吞吐量。

学习大数据分析技术,可以咨询在线课程老师了解详情。

顶部