Kylin#KYLIN业务优化

不涉及top_N,去重优化,流式处理,复杂数据分析函数,参数覆盖,简单讲一下一般的业务优化流程和处理

新增字段

业务是不断变化的,可能当前的cube或者model是不满足当前的业务需求的,需要添加字段或者修改model,一般的,我们不直接在原cube/model上进行修改,这样做是为了避免对线上业务的影响,并且cube中没有我们需要的维度字段/组合,还不如直接重新新建一个cube,kylin中提供了克隆的功能,直接在克隆的cube上,进行处理,对比数据之后如果能使用就删除原来的cube,完成本次的需求

cube迭代

cube的迭代工作分为两个阶段:短期阶段和长期阶段
短期阶段的任务就是要立即建一个可用的cube,并不需要多么的优化,只需要能够支持业务
短期阶段的任务在于由于业务过少,我们不清楚哪些字段经常一起使用,往往不能构建出高效的聚合组,产生了不需要的维度组合,但是我们是不清楚的,为了防止多次修改cube我们统一的增加到cube中;所以这就会造成cub中的字段过多,也就是维度组合过多,所以我的想法是cube是面向业务的,如果一个cube中的维度组合过多就会造成空间的浪费和性能的降低,那么是否可以有什么需求就建一个专属的cube来完成需求,这只是一种想法,还有一种想法就是对一张表的字段进行业务分拆,一般是建2个cube大致是基本能覆盖90%的需求,对于短期的cube面临的问题就是cube中的维度组合过多造成的业务/性能的问题

长期阶段的任务是在大量业务的支持下,设计聚合维度组合,实际的业务到底哪些字段经常一起使用,设计强制维度,到底哪些字段经常在查询中使用,设计联合维度,到底哪些字段经常出现在用一个group by 中联合使用,设计层级维度,一般的就是国家/省份/城市等
长期阶段的主要任务在于基于大量的业务需求沉淀出通用的聚合组优化,一张表通常对应一个或者两个cube,以此解决一个cube中维度字段/维度组合过多的情况,沉淀出通用的组合

segment合并

你可能感兴趣的:(Kylin#KYLIN业务优化)