核心思想:预计算。
对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube,并存在HBase中,供查询时直接访问
将高复杂度的聚合运算、多表连接……操作转换成对预计算结果的查询。决定了Kylin拥有很好的快速查询、高并发能力
理论基础:空间换时间
Cuboid:Kylin中将维度任意组合成为一个Cuboid
Cube:Kylin中将所有维度组合成为一个Cube,即包含所有的Cubeid
为了更好地使用Hadoop大数据环境,Kylin从通常用来做数据仓库的HIve中读取源数据,使用Mapreduce作为Cube构建的引擎,并将于计算结果保存在HBase中,对外暴露Restful API/JEBC/ODBC的查询接口。
Kylin支持标准的ANSI SQL,所以可以和常用分析工具(Tableau、Excel)进行无缝对接
restful api:
符合REST架构设计的API。
RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用
REST,即Representational State Transfer的缩写
如果一个架构符合REST原则,就称它为RESTful架构
什么是RESTful架构:
(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。
JDBC
(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序
ODBC
开放数据库连接(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
开放数据库互连(ODBC)是Microsoft提出的数据库访问接口标准。
开放数据库互连定义了访问数据库API的一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言(但是Microsoft的ODBC文档是用C语言描述的,许多实际的ODBC驱动程序也是用C语言写的。)
ODBC规范后来被X/OPEN和ISO/IEC采纳,作为SQL标准的一部分,具体内容可以参考《ISO/IEC 9075-3:1995 (E) Call-Level Interface (SQL/CLI)》等相关的标准文件。
ANSI SQL
“美国国家标准化组织(ANSI)”是一个核准多种行业标准的组织。
SQL作为关系型数据库所使用的标准语言,最初是基于IBM的实现在1986年被批准的。
1987年,“国际标准化组织(ISO)”把ANSI SQL作为国际标准。
体系架构:
Kylin是一个MOLAP(多维在线联机分析处理)系统,将Hive中的数据进行预计算,利用Hadoop的Mapreduce分布式计算框架来实现
Kylin获取的表是星型模型结构的。目前建模时,只支持一张事实表,多张维表。
如果业务需求比较复杂,就要考虑在Hive中进行进一步处理。(比如生成一张大的宽表,或者采用View代替)
HBase:Kylin中用来存储OLAP分析的Cube数据的地方,实现多维数据集的交互式查询
Cube构建