当前位置:首页 >> 中药养生 >> 美团关于 Apache Doris 存储层向量化改造的设计与发挥作用

美团关于 Apache Doris 存储层向量化改造的设计与发挥作用

发布时间:2023-04-29

的读过取、可可执行文件之外,还要要用些原于的原因,原于就是因为均请注意数学方法必须次序的演可知。

行一个浏览的例证,比如一个更加简单的浏览 Select key,value from table,如果在存储上有两个机密文件,每个机密文件检索形态是 key 和 value 两加,要用原于就是把 value 加的这两个值开展覆盖,这就是浏览演可知,Compaction 的演可知更加相同,在检索原于完最后就交由科学微分开展近似值了。

总的来说,检索的浏览流程就是先为去读过盘,然后解码,日后按照请注意数学方法去要用原于,有些明细请注意是不必须原于的,主要就是这三个无论如何。

--

04

Apache Doris 打印层向假设改扩建

Doris 打印层主要要用了后面这两个指导:

① 检索的读过取,比如真值的下推冗余

② 检索的可用,比如根据请注意数学方法要用检索的原于

Doris 打印层向假设改扩建就其必须要用后面这些事情:

① 对编译器开展推敲,告诉他出可向假设的编译器演可知,因为 SIMD 呼叫仅仅可执行均的演可知,比如累进、比起、应用软件的读过和读到,它不是所有的演可知都可以用 SIMD 的,只受限制于检索密集的桥段。

② 告诉他出来最后,必须对这些模块要用改扩建,比如对这些编译器用于 SIMD 呼叫要用更换。

③ 要用 SIMD 改扩建的两大意在是希望降低机动性,所以对于没法有办法要用向假设改扩建的演可知必须去直觉究竟有其他方法要用冗余。

上图中所白色的均是待实地调查的,绿色的是仍然完如此一来的,我们这里主要看一下读过取检索是如何冗余的。

(1)有参考资料

Doris 大力支持一些参考资料形态,比如前缀参考资料,所以这里可以开展一些检索的裁剪,就实际上现是转用 Bitmap,对检索裁剪完如此一来最后剩下一批商业机构,有了商业机构就可以减不算检索的 seek,读过取的检索不算了,就可以降低机动性。这里考虑到到下述几个解决办法:

① 参考资料本身究竟有蒙受,比如参考资料本身的检索形态究竟有冗余内部空间。

② 读过取检索的时候又可以开展一个归纳,读过取由此可知短类别和大变短类别的检索,这两个处理事件演可知是不一样的。

由此可知短类别包括 int、float、double,可以用于 SIMD 呼叫要用应用软件读过大变短类别一般是表达式类别,无法要用 SIMD 冗余,这种冗余是无论如何消除一些不必要的复本,另一个是把表达式映射如此一来数值类别,这样就能用于 SIMD 冗余了

③ 读过取检索的另一个冗余侧向是,读过取位置的冗余。

从 Cache 读过,因为 Cache 也是一个检索形态,所以这里也亦会有可以冗余的以前从存储读过,存储读过取究竟尽可能要用一些冗余

(2)无参考资料

没法有参考资料就必须读过取所有的检索,所以这里就和有参考资料读过取检索的解决办法一样了,这里可以考虑到一个解决办法,就是究竟也可以生如此一来一个 Bitmap,事实上这里是没法必要,因为读过取 Bitmap 也是有一由此可知的费用的。

这是一个直觉的演可知,从一个点开始一步步向下,逐步分析哪里可以要用冗余。

对看看的主旨要用一些细化,比如参考资料的蒙受,参考资料是可以提高机动性的,可以减不算检索的读过取幅度,但是考虑到就实际上现的话,我们用于 roaringBitmap 付诸,读过取参考资料也是有一些费用的。

另一个比起为最重要的点就是在处理事件检索的时候必须来得关注由此可知短和大变短的检索类别,大变短类别的读过读到费用是要大于由此可知短类别的,就是表达式要大于 int、float 这些由此可知短类别,不光是读过,比起操作也是一样的,所以我们针对大变短类别适度去转如此一来数列来要用。

这就是看看说的注解,Doris 打印层原先只有机密文件的注解,还没法有全局的,机密文件的注解,我们暂时可以来进行机密文件的注解要用一些层面的冗余,这个原先仍然提到社区了。

这里主要看一下读过完检索最后,还是要要用一些额外的冗余,就是真值下推,比如把一些真值下推到打印层来要用,可以减不算访问的检索幅度,这里主要是用过短变态来要用的,原来的演可知是可以载入过一次的,有了过短变态最后,实际上检索必须读过取两次,这里有个解决办法就是过短变态的蒙受,载入过一次实际上还是要要用真值近似值,就又离开了这两个大变短类别和由此可知短类别的解决办法了。

这里来解释一下过短变态其实是什么,这里没法有加出官方的由此可知义,而是从 Doris 仍然付诸的打印层冗余来说的,以图片中所的 SQL 为例:

什么不是过短变态:也就是原模式,就是载入过一次,比如 SQL 中所 a 加和 b 加的检索了了全部读过取走来。什么是过短变态:就是先为读过 b 加,要用真值近似值,获得商业机构,日后读过 a 加,所谓只不过好像读过取检索的幅度来得不算了,但事实上并一般而言,原先 Doris 中所是读到死的,就是先为读过真值,日后读过非真值,相符合并不是所有桥段都很迟。

这里行几个 case,两个很顽固的例证,但是能说明解决办法,就是假如这个请注意有 10 亿行检索,结论这个 b=1 只有偷偷地,那么毫无疑问,第二次读过取检索只必须读过取一次,只必须 seek 一次,这个过短变态一由此可知是很迟的;另一个情况就是如果 b=1 这个检索如果有 9 亿行,这就一般而言了,因为过短变态必须多 seek 一次,是有额外费用的,过滤可以抵消这个费用,所以过短变态可以应用的两大结论如下:

读过检索的费用要大于 seek 检索的费用读过检索费用如何衡幅度,大变短类别要远大于由此可知短类别的seek 费用如何衡幅度,读过检索亦会二叉树商业机构,取走连续的均,而过短变态要读过取两次,亦会多 seek真值选项费用如何衡幅度,比如只seek偷偷地就亦会很迟

以这个 SQL 为例:

select a from table where b=x

如果有条件 x 的游离比起差,且很给由此可知,也就是 seek 次数亦会比起多如果 a 和 b 加都是由此可知短类别,seek 的费用亦会大于读过费用,那么不要用过短变态亦会来得优,即减不算 seek 次数如果 a 和 b 加都是大变短类别,读过取检索的费用>seek费用,那么过短变态可能亦会来得优

两大的无论如何在于,我们必须基于真值的游离,以及开始运行时 SQL 的读到法,可知出一个蒙受,要求究竟选项过短变态。

日后一一均就是检索可用如何冗余,并不是所有的数学方法都必须要用原于,比如明细数学方法,检索读过出来最后就必要发到科学微分层了,不必须要用原于,也不必须要用支链,另外就是也就是说和支链数学方法,它们都要有原于的现实生活,这里有个解决办法就是用于的是标准库,究竟有冗余内部空间并不确认,必须在此之后研究成果。另外,支链数学方法究竟真是必须原于,因为原先是先为次序,后支链,日后可用,那么究竟可以不次序,必要支链,然后日后可用,究竟有关联。还有,所有数学方法近似值,亦会先为攒一批的检索,日后要用应用软件的支链,之前是来偷偷地可知偷偷地,那样近似值费用是来得大的,比较而言 SIMD 是可以一次可知一批的,这个是检索可用均。

原先由于是验证联合开发阶段,浏览流程向假设实质上仍然完如此一来,原先主要在要用准确性的验证,所以原先能拿出来的验证主要是 SSB 的宽请注意机动性验证,数学方法是明细请注意,不涉及原于的演可知,这个验证可以分如此一来两层看:

① 打印层机动性降低是比起大的。

② SQL 也有所降低,不过这里还是有冗余内部空间的,因为打印层机动性降低了,而应用层鼓动而好像还有一些机动性下降,所以原先还是东南面验证阶段,必须来得多的线上环境打磨。

小结一下向假设改扩建的指导:

① 我们期待和可执行层程序要用一个统一的检索形态,因为向假设改扩建是 Apache Doris对整体流程浏览交换机的改扩建,也就是亦会统一用于一个检索形态,所以要前提打印层和浏览层的检索形态是对齐的,否则检索形态不一样亦会有一个类比的费用。

② 向假设改扩建实际上是比起单纯的,比起容易想到哪些以前尽可能要用向假设改扩建,比如真值近似值和检索复本,但是我们的一本书改扩建完如此一来最后,发现机动性并不是很符合预期,也就是向假设确实可以降低一均机动性,但是主要还是编译器演可知相关的冗余。

③ 注解、过短变态等其他的以前也必须考虑到。

--

05

论述

如何要用机动性冗余?

1.了解你的编译器,就是要了解你的编译器在要用什么事情,编译器演可知是根本,要求了可执行演可知和新科技FS。

2.了解电脑的行为,要就其告诉他它其实在不行,SIMD 本身也是电脑在转变现实生活中所,缺不算的一种新科技手段,这个新科技究竟能用于你的编译器,还是取决于编译器究竟有这种演可知,SIMD 也有自己的受限制桥段。

3.了解机动性基本功能,可以帮助你要用一些证明。

这块功能原先即将要用一些发板验证,喜爱有兴趣的老师来作准备到我们社区,图中所是GitHub 的地址和 Doris 公众号,以及联合开发者邮箱,喜爱大家来咨询和争论。

今天的互动就到这里,忘了大家。

|互动香港艺人|

王博|美团 OLAP联合开发工程公司

肄业后在搜狐超市要用检索报请注意联合开发;

直到现在在美团要用OLAP涡轮联合开发,主要作准备过Apache Doris的Spark Load联合开发以及向假设改扩建。

|DataFun电子媒体等价|

|关于DataFun|

不感兴趣于大检索、人工智能新科技应用的互动与交流。发起于2017年,在沈阳、北京、广州、杭州等城市行办超过100+线下和100+线上追随者、新闻网站及峰亦会,已邀请超过2000位专家和学者作准备互动。其公众号 DataFunTalk 累计生产原创文章800+,百万+阅读过,15万+得心应手网路上。

上火了喉咙痛吃什么药
胃肠型感冒怎么引起的
营养不良能吃江中多维元素片吗
治疗腰疼的药物有哪些
眼睛干涩疼痛有什么办法可以缓解
标签:
友情链接: