kylin的rowkey优化之按维度分片】的更多相关文章

我们知道,系统会对cuboid的数据进行分片处理. 但是默认的分片策略是随机的,如果group by a,b 的查询命中了某个cuboid,但是a=1 and b=1 的两条数据在不同的机器上存储, 那就要将这两条数据返回到存储引擎的driver(hbase里是coprocessor),再根据逻辑做聚合. 这样就产生了一个数据的优化空间. 如果我们将所有a 和b 值相同的数据都存在一台机器上, 那么我们就可以在返回driver的时候,先在本地进行聚合.这样不但节省了返回的数据量,也利用了各个机器…
在以hbase为存储的cuboid中,会有很多计算好的数据行,这每个行的key都是由维度值按顺序生成的rowkey 而这个顺序,在我们做cube设计的时候是可以调整的. 具体调整路径是:cube designer -> advanced setting -> rowkey kylin会根据你设计的维度的顺序,去生成这个rowkey. 那么基于hbase的查询方式,我们可以优化这个顺序.具体步骤如下: 1.在查询中被用作过滤条件的维度有可能放在其他维度的前面 2.将经常出现在查询中的维度放在不经…
前言 下面通过对kylin构建cube流程的分析来介绍cube优化思路. 创建hive中间表 kylin会在cube构建的第一步先构建一张hive的中间表,该表关联了所有的事实表和维度表,也就是一张宽表. 优化点: 1. hive表分区优化,在构建宽表的时候,kylin需要遍历hive表,事实表和维度表如果是分区表,那么会减少遍历时间 2. hive相关配置调整,join相关配置,mapreduce相关配置等 创建完成后,为了防止文件大小不一致的情况,kylin又基于hive做了一次重均衡操作,…
https://xiaofandh12.github.io/Mongo-Shard 关于MongoDB MongoDB中的概念与关系型数据库之间的对应: Database --> Database Collection --> Table Document --> Row MongoDB相较于关系型数据库的优势: 简化关系型数据库复杂的关联问题 摆脱关系模型里面的强一致性限制 MongoDB可以做到水平扩展和高可用 学习MongoDB有几个比较重要的方面: CRUD操作 聚合(Aggre…
http://blog.csdn.net/jiangshouzhuang/article/details/51286150 Hierarchies: 理论上对于N维度,我们可以进行2的N次方的维度组合.然而对于一些维度的组合来说,有时是没有必要的.例如,如果我们有三个维度:continent, country, city,在hierarchies中,最大的维度排在最前面.当使用下钻分析时,我们仅仅需要下面的三个维度的组合:group by continentgroup by continent,…
本文来自网易云社区 作者:汪胜 相关概念介绍 为了了解Kylin存储和查询的分片问题,需要先介绍两个重要概念:segment和cuboid.相信大数据行业的相关同学都不陌生.Kylin每次提交一个新的build任务都会生成一个新的segment,而用户一般都是每天构建一次.那么,这种情况下,每天都会生成一个新的segment,用来保存昨天的数据. Kylin的核心思想是预聚合,就是将用户预先定义的维度组合计算出来,然后保存到HBase中.这样查询的时候就可以直接查询预先计算好的结果,速度非常快.…
kylin的核心优势在于使用额外的空间存储预计算的结果,以换取查询时间的缩减. 所以我们要对额外的空间进行优化,并且在空间优化之后,cuboid无法完全命中时,对查询时间进行优化. 空间优化的思路就是试图减少额外空间占用,最常用的就是剪枝优化.去掉那些多余的cuboid,减少预聚合的数量 查询时间优化就是针对存储引擎的优化,以hbase为例,其中包括,维度值的编码优化,rowkey按维度分片,调整rowkey生成的规则,降低精度要求,segment合并和清理,并发优化等. 剪枝优化的"多余&qu…
转自: http://www.bitstech.net/2016/01/04/kylin-olap/ http://www.csdn.net/article/2015-11-27/2826343 http://tech.youzan.com/kylin-mondrian-saiku/ Apache Kylin对传统MOLAP的改进 计算Cube的存储代价以及计算代价都是比较大的, 传统OLAP的维度爆炸的问题Kylin也一样会遇到. Kylin提供给用户一些优化措施,在一定程度上能降低维度爆炸的…
原文地址:https://kylin.apache.org/docs16/howto/howto_optimize_build.html Kylin将一个cube的build过程分解为若干个子步骤,然后串行执行这些子步骤.这些步骤包括Hive操作,MR任务和其他类型的工作.如果每天都有许多cube进行build操作,那么肯定会办法加速这一过程.这里有一些建议可以参考,我们就按照build的顺序依次介绍. Create Intermediate Flat Hive Table 该步骤会从源Hive…
导语 | 当产品的用户量不断翻番时,需求会倒逼着你优化HTTP协议.那么,要想极限优化HTTP性能,应该从哪些维度出发呢?本文将由TVP陶辉老师,为大家分享四个全新维度.「TVP思享」专栏,凝结大咖思考,汇聚专家分享,收获全新思想,欢迎长期关注.(编辑:云加社区 尾尾) 作者简介:陶辉,腾讯云最具价值专家(TVP),杭州智链达数据有限公司 CTO及联合创始人,曾就职于阿里云.腾讯.华为.思科等公司,著有畅销书<深入理解Nginx:模块开发与架构解析>,与极客时间合作畅销视频课程<Web协…