Kylin及数据仓库的技术概念详解
浪尖 浪尖聊大数据
一 cube
1, Table
cube数据源的hive表的定义,在build cube之前需要进行同步。
2, Data Model
这描述了一个星型数据模型,定义了flat/lookup表和过滤条件。
3, Cube Desctiptor
这描述了一个cube实例的定义和配置,定义了采用那个model,拥有哪些维度和测量指标,如何区分区Segment,如果处理自动合并。
4, Cube instance
cube的实例,根据一个cube descriptor构建,然后由一个或者多个cube Segment组成(根据分区设置)。
5, Partition
用户可以在一个cube descriptor上定义DATE/String 列作为一个分区列。使用不同的时间周期,将一个cube分割成多个Segment。
6, Cube Segment
这是立方体数据的实际载体,并映射到HBase中的HTable。一个构建作业会为Cube实例创建一个新的Segment。 一旦数据在指定的数据周期内发生变化,我们可以刷新相关的Segment以避免重建整个Cube。
7, Aggregation
Group 每个聚合组都是维度的子集,并在里面构建cuboid。 它旨在修剪优化。
二 DIMENSION & MEASURE
1, Mandotary
此维度类型用于cuboid修剪,如果一个维度被指定为“Mandotary”,那么那些没有维度的组合被修剪。
2,Hierarchy
这个维度类型用于cuboid修剪,如果A,B,C三维形成一个“Hierarchy”关系,那么只剩下A,AB或ABC的组合。
3,Derived
在查找表中,可以从它的PK生成一些维度,所以它们和事实表中的FK有特定的映射关系。 所以这些维度是派生的,不参与长方体生成。
4,Count Distinct(HyperLogLog)
即时COUNT DISTINCT很难计算,近似算法 - HyperLogLog被引入,并且保持错误率在较低的水平。
5,Count Distinct(Precise)
精确COUNT DISTINCT将根据RoaringBitmap预先计算,目前只支持int或bigint。
6,Top N
例如,用这种度量类型,用户可以很容易地得到指定的最大卖家/买家数量等。
三 cube actions
1, build
给出一个新的分区列间隔,这个动作会建立一个新的cube Segment
2, REFRESH
此操作将在某个分区期间重建cube Segment,用于源表增加的情况。
3, MERGE
此操作将将多个连续的cube Segment合并为一个。 这可以通过立方体描述符中的自动合并设置进行自动化。
4, PURGE
清除多维数据集实例下的分段。 这只会更新元数据,不会从HBase删除多维数据集数据。
六 JOB STATUS
1, NEW
这表示一个job刚刚被创建
2, PENDING
这表示一个作业被作业调度程序暂停并等待资源。
3, RUNNING
这表示一项job正在进行中。
4, FINISHED
这表示一项job已经成功完成。
5, ERROR
这表示一个job有错误而终止
6, DISCARDED
这表示一个job被用户取消
五 JOB ACTION
1, RESUME
一旦工作处于ERROR状态,此操作将尝试从最近的成功点恢复它。
2, DISCARD
无论工作状态如何,用户都可以用DISCARD操作结束并释放资源。
六 数据仓库的基础概念
以下是我们在ApacheKylin中使用的一些领域术语,可以百度它们以供参考。他们是Apache Kylin的基本知识,这也将有助于理解数据仓库,商业智能等分析方面的这些关注,术语,知识,理论和其他知识。
数据仓库(Data Warehouse)
数据仓库(DW或DWH)也称为企业数据仓库(EDW),是一个用于报告和数据分析的系统
商业智能(Business Intelligence)
商业智能(BI)是将原始数据转化为有意义且有用的信息以用于业务分析的一套技术和工具。
OLAP
OLAP是联机分析处理的首字母缩写
OLAP Cube
OLAP Cube是根据其0维或更多维理解的数据数组。
星型模式(Star Schema)
星形模式(Star Schema)包含一个或多个事实表、一组维表,其中维表的primary key与事实表的foreign key相对应。这种模式很像星光四射,维表显示在围绕事实表的射线上。下图是我根据某数据源所建立的星形模式:
事实表(Fact Table)
事实表包含业务流程的度量,指标或事实。
LookupTable
Lookup Table包含对事实表的某些列进行扩充说明的字段。在Kylin的quick start中给出sample cube(kylin_sales_cube)——其Fact Table为购买记录,lookup table有两个:用于对购买日期PART_DT、商品的LEAF_CATEG_ID与LSTG_SITE_ID字段进行扩展说明。
维度(Dimension)
维表(Dimension Table)是由fact table与lookup table逻辑抽象出来的表,包含了多个相关的列(即dimension),以提供对数据的多维观察;其中dimension的值的数目称为cardinatily。在kylin_sales_cube的事实表的LSTG_FORMAT_NAME被单独抽出来做一个dimension,可与其他维度组合分析数据。
度量(Measure)
度量是可以进行计算(例如,总和,计数,平均值,最小值,最大值)的属性。
Cube
cube是所有的dimensions组合,任一dimensions的组合称为cuboid。因此,包含nn个dimensions的cube有2n2n个cuboid,如下图所示: