Kylin前置基础知识了解

1、数据仓库、OLAP 与 BI

数据仓库

数据仓库,英文名称 Data Warehouse,简称 DW。《数据仓库》一书中的定义 为:数据仓库就是面向主题的、集成的、相对稳定的、随时间不断变化(不同时 间)的数据集合,用以支持经营管理中的决策制定过程、数据仓库中的数据面向 主题,与传统数据库面向应用相对应。

利用数据仓库的方式存放的资料,具有一旦存入,便不会随时间发生变动的 特性,此外,存入的资料必定包含时间属性,通常一个数据仓库中会含有大量的 历史性资料,并且它可利用特定的分析方式,从其中发掘出特定的资讯。

OLAP

1、OLAP的基本概念

OLAP(Online Analytical Process),联机分析处理,以多维度的方式分 析数据,而且能够弹性地提供上卷(Roll-up)、下钻(Drill-down)和切片(Slice) 等操作,它是呈现集成性决策信息的方法,多用于决策支持系统、商务智能或数 据仓库。其主要的功能在于方便大规模数据分析及统计计算,可对决策提供参考 和支持。与之相区别的是联机交易处理(OLTP),联机交易处理,更侧重于基本 的、日常的事务处理,包括数据的增删改查。

OLAP 需要以大量历史数据为基础,再配合上时间点的差异,对多维 度及汇整型的信息进行复杂的分析。

OLAP 需要用户有主观的信息需求定义,因此系统效率较佳。

OLAP 的概念,在实际应用中存在广义和狭义两种不同的理解方式。广义上 的理解与字面上的意思相同,泛指一切不会对数据进行更新的分析处理。但更多 的情况下 OLAP 被理解为其狭义上的含义,即与多维分析相关,基于立方体(Cube) 计算而进行的分析。

OLAP(online analytical processing)是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。从各方面观察信息,也就是从不同的维度分析数据,因此OLAP也成为多维分析。

<v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"><v:formulas></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path></v:stroke></v:shapetype><v:shape id="图片_x0020_90" style="width:437.4pt;height:122.4pt;visibility:visible;mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1035"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"></v:imagedata></v:shape>

2、OLAP的类型

也可以分为ROLAP和MOLAP

<v:shape id="图片_x0020_92" style="width:388.2pt;height:185.4pt; visibility:visible;mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1034"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png"></v:imagedata></v:shape>

3、OLAP CUBE

<v:shape id="图片_x0020_93" style="width:437.4pt;height:201pt; visibility:visible;mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1033"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"></v:imagedata></v:shape>

4、CUBE与 Cuboid

<v:shape id="图片_x0020_94" style="width:437.4pt;height:186pt; visibility:visible;mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1032"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png"></v:imagedata></v:shape>

BI

BI(Business Intelligence),即商务智能,指用现代数据仓库技术、在线 分析技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。

2、事实表与维度表

事实表(Fact Table)是指存储有事实记录的表,如系统日志、销售记录等; 事实表的记录在不断地动态增长,所以它的体积通常远大于其他表。

维度表(Dimension Table)或维表,有时也称查找表(Lookup Table),是 分析事实的一种角度,是与事实表相对应的一种表;它保存了维度的属性值,可 以跟事实表做关联;相当于将事实表上经常重复出现的属性抽取、规范出来用一 张表进行管理。常见的维度表有:日期表(存储与日期对应的周、月、季度等的 属性)、地点表(包含国家、省/州、城市等属性)等。使用维度表有诸多好处, 具体如下。

·缩小了事实表的大小。

·便于维度的管理和维护,增加、删除和修改维度的属性,不必对事实表的 大量记录进行改动。

·维度表可以为多个事实表重用,以减少重复工作。

3、维度与度量

维度是指审视数据的角度,它通常是数据记录的一个属性,例如时间、地点 等。

度量是基于数据所计算出来的考量值;它通常是一个数值,如总销售额、不 同的用户数等。 分析人员往往要结合若干个维度来审查度量值,以便在其中找到变化规律。 在一个 SQL 查询中,Group By 的属性通常就是维度,而所计算的值则是度量。 如下面的示例:

<v:shape id="image5.jpeg" style="width:415.2pt;height:22.8pt; visibility:visible;mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1031"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image005.jpg"></v:imagedata></v:shape>

在上面的这个查询中,part_dt 和 lstg_site_id 是维度,sum(price)和

count(distinct seller_id)是度量。

<v:shape id="图片_x0020_95" style="width:438pt;height:220.2pt; visibility:visible;mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1030"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image006.png"></v:imagedata></v:shape>

4、数据仓库建模常用手段方式

星型模型:

星形模型中有一张事实表,以及零个或多个维度表;事实表与维度表通过主 键外键相关联,维度表之间没有关联,就像很多星星围绕在一个恒星周围,故取 名为星形模型。

<v:shape id="image6.jpeg" style="width:377.4pt;height:256.8pt; visibility:visible;mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1029"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image007.jpg"></v:imagedata></v:shape>

雪花模型:

若将星形模型中某些维度的表再做规范,抽取成更细的维度表,然后让维

度表之间也进行关联,那么这种模型称为雪花模型。

<v:shape id="image7.jpeg" style="width:412.8pt;height:229.8pt;visibility:visible; mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1028"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image008.jpg"></v:imagedata></v:shape>

星座模式:

星座模式是星型模式延伸而来,星型模式是基于一张事实表的,而星座模式是基于多张事实表的,而且共享维度信息。

前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。在业务发展后期,绝大部分维度建模都采用的是星座模式。

<v:shape id="图片_x0020_51" style="width:415.2pt;height:216.6pt; visibility:visible;mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1027"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png"></v:imagedata></v:shape>

注意:Kylin 只支持星形模型的数据集

5、数据立方体

Cube(或 Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大 加快数据的查询效率。

Cuboid 在 Kylin 中特指在某一种维度组合下所计算的数据。 给定一个数据模型,我们可以对其上的所有维度进行组合。对于 N 个维度来

说,组合的所有可能性共有 2 的 N 次方种。对于每一种维度的组合,将度量做 聚合运算,然后将运算的结果保存为一个物化视图,称为 Cuboid。

所有维度组合的 Cuboid 作为一个整体,被称为 Cube。所以简单来说,一个 Cube 就是许多按维度聚合的物化视图的集合。

下面来列举一个具体的例子。假定有一个电商的销售数据集,其中维度包括 时间(Time)、商品(Item)、地点(Location)和供应商(Supplier),度量为销 售额(GMV)。那么所有维度的组合就有 2 的 4 次方 =16 种,比如一维度(1D) 的组合有[Time]、[Item]、[Location]、[Supplier]4 种;二维度(2D)的组合 有[Time,Item]、[Time,Location]、[Time、Supplier]、[Item,Location]、 [Item,Supplier]、[Location,Supplier]6 种;三维度(3D)的组合也有 4 种; 最后零维度(0D)和四维度(4D)的组合各有 1 种,总共就有 16 种组合。

<v:shape id="image8.jpeg" style="width:415.8pt;height:219.6pt; visibility:visible;mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1026"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image010.jpg"></v:imagedata></v:shape>

6、Kylin的工作原理

Apache Kylin 的工作原理就是对数据模型做 Cube 预计算,并利用计算的结 果加速查询,具体工作过程如下。

1)指定数据模型,定义维度和度量。

2)预计算 Cube,计算所有 Cuboid 并保存为物化视图。

3)执行查询时,读取 Cuboid,运算,产生查询结果。

由于 Kylin 的查询过程不会扫描原始记录,而是通过预计算预先完成表的关 联、聚合等复杂运算,并利用预计算的结果来执行查询,因此相比非预计算的查 询技术,其速度一般要快一到两个数量级,并且这点在超大的数据集上优势更明 显。当数据集达到千亿乃至万亿级别时,Kylin 的速度甚至可以超越其他非预计算技术 1000 倍以上。

7、Kylin的体系架构

Apache Kylin 系统可以分为在线查询和离线构建两部分,技术架构如图所 示,在线查询的模块主要处于上半区,而离线构建则处于下半区。

<v:shape id="image9.jpeg" style="width:414.6pt;height:245.4pt;visibility:visible; mso-wrap-style:square" type="#_x0000_t75" o:spid="_x0000_i1025"><v:imagedata o:title="" src="file:///C:\Users\chenning\AppData\Local\Temp\msohtmlclip1\01\clip_image011.jpg"></v:imagedata></v:shape>

1)REST Server

REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。另外可以通过Restful接口实现SQL查询。

2)查询引擎(Query Engine)

当cube准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。

3)路由器(Routing)

在最初设计时曾考虑过将Kylin不能执行的查询引导去Hive中继续执行,但在实践后发现Hive与Kylin的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。最后这个路由功能在发行版中默认关闭。

4)元数据管理工具(Metadata)

Kylin是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。其它全部组件的正常运作都需以元数据管理工具为基础。 Kylin的元数据存储在hbase中。

5)任务引擎(Cube Build Engine)

这套引擎的设计目的在于处理所有离线任务,其中包括shell脚本、Java API以及Map Reduce任务等等。任务引擎对Kylin当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。

8、Kylin特点

Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。

1)标准SQL接口:Kylin是以标准的SQL作为对外服务的接口。

2)支持超大数据集:Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。

3)亚秒级响应:Kylin拥有优异的查询相应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。

4)可伸缩性和高吞吐率:单节点Kylin可实现每秒70个查询,还可以搭建Kylin的集群。

5)BI工具集成

Kylin可以与现有的BI工具集成,具体包括如下内容。

ODBC:与Tableau、Excel、PowerBI等工具集成

JDBC:与Saiku、BIRT等Java工具集成

RestAPI:与JavaScript、Web网页集成

Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访问Kylin服务。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容