一、Kylin简介
kylin是什么
Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。(OLAP(on line analytical processing)联机分析处理 是一种软件技术,应用于数据仓库分析处理。它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。从各方面观察信息,也就是从不同的维度分析数据,因此OLAP也成为多维分析。提供决策支持,多应用于数据仓库。
Kylin的核心思想是预计算。
理论基础是:以空间换时间。即多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube并存储到HBase中,供查询时直接访问。
将数据源(比如Hive)中的数据按照指定的维度和指标,由计算引擎Mapreduce离线计算出所有可能的查询结果(即Cube)存储到HBase中。HBase中每行记录的Rowkey由各维度的值拼接而成,度量会保存在column family中。为了减少存储代价,这里会对维度和度量进行编码。查询阶段,利用HBase列存储的特性就可以保证Kylin有良好的快速响应和高并发。
数据仓库
数据仓库是商业智能的核心部分,主要是将不同数据源的数据整合到一起,通过多维分析为企业提供决策支持报表生成等。存入数据仓库的资料必定包含时间属性。
数据仓库和数据库主要区别:
数据库 | 数据仓库 |
面向事务 存储在线的业务数据,对上层业务改变作出实时反映,遵循三范式设计。 |
面向分析 历史数据,主要为企业决策提供支持,数据可能存在大量冗余,但是利于多个维度查询,为决策者提供更多观察视角。 |
OLAP和OLTP
- OLAP( Online Analytical Process ),联机分析