Apache Kylin : Analytical Data Warehouse for Big Data
Page History
1. 在 MDX 中连接 kylin 节点成功后,点击右上角的图标退出管理模式:
退出管理模式后,显示界面如下,可以创建 dataset:
2. Mdx for kylin 会自动读取 kylin 的元数据信息,在这里我们选择在 covid_trip_project 下创建名为 covid_trip_dataset 的 dataset:
3. 选取 kylin 中的 cube,并定义 cube 关系,这里我们将 covid19_cube 和 newyork_trip_cube 放在同一个 dataset 下建立连接关系:
在 cube 间建立连接关系是通过两个 cube 之间的共同维度表实现的,covid_cube 和 newyork_trip_cube 都使用了同一张维度表 lookup_calendar:
4. 在 Define Semantics 步骤中,进行修改原子指标名称、定义业务指标、增加层级维度等一系列操作。
- 首先为避免两个 cube 中的 count 度量在数据分析层产生混淆,我们可以修改指标名称为不同的名字:
- 根据前文中的业务问题,在 mdx 中可以通过增加 Caculated Measure为 cube 中的 measure 定义月累计、年累计,以及月增速、年增速:
在定义这些业务指标之前,我们先为维度表 lookup_calender 中的时间维度定义层级,定义层级维度之后可以在这个维度上进行上卷下钻,方便业务人员从同一维度的不同粒度来分析观察数据。
将 lookup_calender.year_start、lookup_calender.quarter_start、lookup_calender.month_start、lookup_calender.day_start 这几个维度依次添加到一个层级维度中:
类似的,还可以为表 COVID_19_ACTIVITY 中的地区维度设置层级:
- 由于我们要在在时间层级上进行月累计、年累计的计算,所以需要正确设置各个时间维度的类型,比如将 lookup_calender.day_start 的类型设置为 Day:
类似的,将 lookup_calender.month_start 的类型设置为 Month,将 lookup_calender.quarter_start 的类型设置为 Quarter,将 lookup_calender.year_start 的类型设置为 Year。
- 然后以 SUM_PASSENGER_COUNT 为例,通过 MDX 内置的模板表达式可以轻松定义月累计、年累计、月增速和年增速:
与 SUM_PASSENGER_COUNT 类似,依次为 newyork_trip_cube 中的其他原子指标创建月累计、年累计、月增速和年增速的业务指标。
- 在上述指标添加完成之后,需要对 covid19_cube 中的两个 measure SUM_DEATH_COUNT 和 SUM_POSITIVE_CASES 定义半累加度量,半累加度量指的是在时间维度上不具备累加性而在时间以外的维度可以正常累加的度量,由于确诊人数和死亡人数已经是时间上的累计值,所以他们和商品库存、银行余额此类度量一样,都是半累加度量。MDX for Kylin 支持通过 Caculated Measure 来定义半累加度量。
定义 COVID_19_ACTIVITY 中的 SUM_DEATH_COUNT 为半累加度量,其 MDX 表达式为:
Code Block |
---|
sum([LOOKUP_CALENDAR].[TIME_HIERARCHY-Hierarchy].CurrentMember.LastChild,
[Measures].[SUM_DEATH_COUNT]) |
同样的,将 SUM_POSITIVE_CASES 也定义为半累加度量:
然后在 Semiadditive_DEATH_COUNT、Semiadditive_POSITIVE_CASE、SUM_NEW_DEATH_COUNT、UM_NEW_POSITIVE_CASES 之上定义月增速和年增速的指标,由于确诊人数和死亡人数本身就已经是累计值,所以不需要在定义年累计和月累计指标。
- 根据前文中的指标设计,除了年累计、月累计、年增速、月增速的指标之外,还需要定义一些其他指标:
1. Covid19 病死率:死亡人数/确诊人数
2. 出租车出行平均里程:出租车出行里程/出租车出行数量
以上业务指标全部定义完成之后,进入下一步可以为指标名称增加更多不同语言的翻译,这样可以方便全球各地不同国家的分析师分析数据。没有多语言需求时可以直接跳过此步骤,保存 Dataset。Dateset 保存成功之后,下一步就可以使用 BI 工具连接 MDX for Kylin 进行方便且快速的数据分析。