美文网首页
Kylin应用总结参考1

Kylin应用总结参考1

作者: liuzx32 | 来源:发表于2019-02-13 14:34 被阅读14次

    1. 合理地取消Redistributed Flat Table:设置kylin.source.hive.redistribute-flat-table=false。

    2. 定期合并增量数据:大的事实表采用天分区增量构建,为了不影响查询性能,可以定期做合并(Merge),周期可以根据实际情况确定。

    3. 合理使用Hive视图:对于维表比较大的情况,或者查询Select部分存在复杂的逻辑判断,存在Apache Kylin不支持的函数或语句时,可以将事实表和维表的关联处理创建为Hive视图,之后根据视图创建Cube模型。

    4. 合理地设置Mandatory字段:每次查询必然带有的条件建议在字典设置步骤将其设置为Mandatory。这样会最终 Build出来Cube的大小会减少一半。

    5. 合理地设置分组字段:Cube的维度如果超过10个,建议将常用的聚合字段做分组。

    6. Cube定义中RowKey顺序:Mandatory维度,Where过滤条件中出现频率较多的维度,高基数维度,低基数维度。

    7. 当Segment中某一个Cuboid的大小超过一定的阈值时,修改数据分片大小以实现数据读取的并行化,从而优化Cube的查询速度。

    8. 设计合适的维度编码能减少维度对空间的占用,比如对于高基数的维度如果使用Dict字典编码方式占用大量空间,容易造成构建引擎或查询引擎的内存溢出。

    9. 对维度进行分片,如果Cuboid中某两个行的Shard by Dimension的值相同,那么无论这个Cuboid最终会被划分多少个分片,这两行数据必然会被分配到同一个分片中,方便查询和索引。

    10. 部署层面,可以通过Nginx在前端做负载均衡,后端启动多个Query Server接收查询请求处理。一个job或all,多个query部署Kylin节点。

    相关文章

      网友评论

          本文标题:Kylin应用总结参考1

          本文链接:https://www.haomeiwen.com/subject/wyqdeqtx.html