一、维表
事实表中多个维度字段不能关联同一张维表。如果关联同一张表的情况,可通过视图区别开。
二、维表字段
不同维表中的字段不能同名,建议加上表名做前缀。字段的中文描述应区分开,比如city_name,根据字段的不同用途可分别命名为所在地城市、访问地城市。
对于时间维表,配置cube 时 选定的字段命名必须 统一:日 的叫 DATE 字段, 周是SUN_DT ,月是 MONTH, 年是 YEAR 。
三、字段类型
事实表中的维度字段类型与关联的维表的字段类型必须一致。
四、元数据中olap表的维度字段
元数据中事实表的所有维度字段都需要填写引用维度表的字段。
五、维表分区
维表不支持日期分区,如果维表数据是需要累积的,需要单独建累积表,然后同步最新分区数据到维表中。
六、字段长度
需要count distinct的指标字段长度不宜过长,不能超过255。(所以在olap表中,需要对去重字段进行处理)
否则,在build cube的时候,在第四步 “” Build Dimension Dictionary“,会报错,错误信息如下:
java.lang.RuntimeException: Failed to create dictionary on OLAP.OLAP_NH_LOG_PAGE_DI.UV at org.apache.kylin.dict.DictionaryManager.buildDictionary(DictionaryManager.java:325)
Caused by: java.lang.RuntimeException at org.apache.kylin.dict.CachedTreeMap.writeValue(CachedTreeMap.java:240)
七、修改hive表结构
修改hive中表的结构时,需在kylin中进行同步。
八、修改cube与model
如需修改cube与model,则新建或者clone,再修改,切勿在原model或cube上做修改,容易出现数据不一致问题。
九、事实表与维表中字段不能有同名的
在建cube时选择的维度字段名只能在事实表与维表中存在一个,即事实表与维表中不能有同名字段。
十、对于 需要精确去重的,选择 count distinct 并且指定精度 即可。
如果需要更进一步 的 按月 去重,譬如 UV这种指标,不但要按天去重,还得跨天 按月 去重。
那么在配置cube时, 在cube里的“ Advanced Setting” 高级设置这一项, 需要如下所示 设置,设置全局字典。
十一、字段命名
不能以数字开头。
十二: 配置cube时,必须填上 负责人的邮箱。 如果忘记填写了,可以事后 edit 修改cube 填写上!
如下图所示:
十四、创建cube第二步选择dimensions
add dimension选normal
十五、维度与指标
事实表中的一个字段不可以即作为维度又作为指标使用
十六、count distinct
当数据量较大时(例如在6千万条)KYLIN的count distinct 容易报错
十七、model与cube的命名
olap表名_model、olap表名_cube
十八、cube的调度任务命名
与cube名一致,方便查询
十九、取消自动合并(合并有bug)
在创建cube的第四部refresh setting,点右侧减号取消自动合并。