-----------------------------------------------------分隔符-----------------------------------------------------
数据仓库之电商数仓-- 1、用户行为数据采集==>
数据仓库之电商数仓-- 2、业务数据采集平台==>
数据仓库之电商数仓-- 3.1、电商数据仓库系统(DIM层、ODS层、DWD层)==>
数据仓库之电商数仓-- 3.2、电商数据仓库系统(DWS层)==>
数据仓库之电商数仓-- 3.3、电商数据仓库系统(DWT层)==>
数据仓库之电商数仓-- 3.4、电商数据仓库系统(ADS层)==>
数据仓库之电商数仓-- 4、可视化报表Superset==>
数据仓库之电商数仓-- 5、即席查询Kylin==>
一、Kylin
1.1 Kylin简介
1.1.1 Kylin定义
Apache Kylin是一个开源的分布式分析引擎
,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)
能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。
1.1.2 Kylin相关术语
- Data Warehouse (数据仓库)
数据仓库是一个各种数据
(包括历史数据和当前数据)的中心存储系统,是BI(business intelligence, 商业智能)的核心部件;
此处的数据包括企业业务系统的订单、库存、交易账目、客户和供应商等来自企业所处行业和竞争对手的数据以及来自企业所处的其他外部环境中的各种数据。
- Business Intelligence(商业智能)
商业智能通常被理解为将企业中现有的数据转化为知识
,帮助企业做出明智的业务经营决策的工具;
为了将数据转化为知识,需要利用数据仓库、联机分析处理(OLAP)工具和数据挖掘等技术。
- OLAP(online analytical processing)
OLAP(online analytical processing)是一种软件技术,它能使分析人员能够迅速、一致、交互地从各个方面观察信息
,以达到深入理解数据的目的。
从各方面观察信息,也就是从不同的维度分析数据,因此OLAP也称为多维分析
。
排列组合7种不同的角度,需7个Cuboid,一个Cube。
- OLAP类型
ROLAP(Relational OLAP):基于关系型数据库,不需要预计算;
MOLAP(Mutidimensional OLAP):基于多维数据集,需要预计算。
- OLAP Cube
MOLAP基于多维数据集,一个多维数据集称为一个OLAP Cube。
七种角度:
注⚠️:一个Cube可以包含多个Cuboid!
1.1.3Kylin架构
- REST Server
REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。另外可以通过Restful接口实现SQL查询。
- 查询引擎(Query Engine)
当cube准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。
- 路由器(Routing)
在最初设计时曾考虑过将Kylin不能执行的查询引导去Hive中继续执行,但在实践后发现Hive与Kylin的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。最后这个路由功能在发行版中默认关闭。
- 元数据管理工具(Metadata)
Kylin是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。其它全部组件的正常运作都需以元数据管理工具为基础。 Kylin的元数据存储在hbase中。
- 任务引擎(Cube Build Engine)
这套引擎的设计目的在于处理所有离线任务,其中包括shell脚本、Java API以及Map Reduce任务等等。任务引擎对Kylin当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。
1.1.4 Kylin特点
Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。
- 标准SQL接口:Kylin是以标准的SQL作为对外服务的接口;
- 支持超大数据集:Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级