kylin-learn_kylin中kylin_sales_cu
2020-02-19 本文已影响0人
李小李的路
- 基于kylin-3.0
背景
- kylin中对外提供查询服务的cube是建立在选择对应的model基础上;
-
这一步很有技术含量;
cube sql - SQL 视图 (Hive 查询读取数据以生成 cube),这里是生成cube的平表(falt table)的sql;
- 源码:(module:server-base)org.apache.kylin.rest.controller.CubeController#getSql(java.lang.String)
cube创建步骤
第一步
-
选择使用的数据模型。并为此cube创建一个唯一的名称(必须)和描述(可选);
cube name -
给cube起名字的时候一定要想好,买定离手,不可修改;
-
还可以输入一个邮件通知列表,以在构建完成或出错的时候收到通知,如果不想接收在某些状态的通知,可以从
info信息Notification Events
中移除。注意:ERROR
状态下会无条件的发送邮件通知;
第二步
- 添加cube维度
- 点击
ADD DIMENSIONS
,kylin会自动生成所有的维度,用户只需要勾选想要的列即可,同时需要为每个维度输入名字,可以设定是普通维度或是衍生(Derived)维度;衍生维度详见: -
自动生成规则如下:
cube dim
第三步
- 创建度量值
- apache kylin支持的度量有SUM\MIN\MAX\COUNT\COUNT_DISTINCT\TOP_N\EXTENDED_COLUMN\PERCENTILE等。默认 apache kylin会创建一个count(1)度量;
- 通过
Bulk Add Measures
按钮可以批量添加度量。目前对于批量添加度量,apache kylin只支持sum 、min、max、raw 、percentile等简单函数。只需要选择度量类型,然后再选择需要计算的列。
Bulk Add Measures - 如果是需要添加复杂的度量值,可以点击
Measure
来添加新的度量值 ;
Measures
第四步
- cube的数据刷新设置;
- 可以设置自动合并的阈值、自动合并触发时保留的阈值、数据保留的最小时间、以及第一个Segment的起点时间(如果cube有分割时间列)
-
Auto Merge Thresholds (kylin-3.0有了变化)
Auto Merge Thresholds -
Volatile Range
Volatile Range -
Retention Threshold
Retention Threshold
第五步
- 设置维度聚合组和Rowkey属性等;
- 具体包含属性如下:
- Aggregation Groups
- Rowkeys
- Mandatory Cuboids
- Cube Engine
- Advanced Dictionaries
- Advanced Snapshot Table
- Advanced ColumnFamily
第六步
- 重写配置文件
- 为cube配置,和hadoop配置一样,apache kylin使用了很多配置参数,用户可以根据具体的环境、场景等配置不同的参数灵活调优。
- apache kylin全局参数的参数值可以在conf/kylin.properties文件中配置;如果需要覆盖全局设置的话,需要在此页面指定。
- 其中
kylin_hive_conf.xml
,kylin_job_conf.xml
,kylin_job_conf_cube_merge.xml
,kylin_job_conf_inmem.xml
、kylin.properties
中的参数都可以在cube级别的重写; - 比较常用的是:构建任务时指定不同的yarn队列等配置参数;
完成
- 进行完上述操作后,cube的配置已经完成;然后就可以进行build操作了。