电话咨询

0571-89852485

工作日 9:30-18:00

在线咨询

架构师咨询

【大数据之数据仓库】GreenPlum优化器对比测试

2018-07-10     作者:何李夫
本篇文章仅限本站分享,如需转载,请联系网易获取授权。
欢迎技术交流和讨论:bigdata@service.netease.com

在《 【大数据之数据仓库】选型流水记》一文中有提及,当时没有测试GreenPlum的quicklz压缩算法和ORCA查询优化器,考虑到quicklz压缩算法因为版权问题不会开源(详情请参阅: https://github.com/greenplum-db/gpdb/blob/master/src/backend/catalog/quicklz_compression.c),今天我们就来补上已开源的ORCA查询优化器这一段。

GreenPlum有2个查询优化器:legacy query optimizer(简称LQO)和pivotal query optimizer(简称PQO),而后者就是传说中的ORCA,我把之前LQO和PQO的TPCH对比测试做了简要汇总,整理在本文,以飨各位同学。测试拓扑延续《【大数据之数据仓库】基准测试之TPCH》中的测试环境,选择了10GB和100GB两种规格的数据集,以达到测试纯内存、内存+磁盘这样两种场景。

10GB

10GB数据集的数据基本都在内存里,没有了磁盘IO开销:


100GB


两个测试结果显示,PQO并没有比LQO占明显优势啊, 为什么?

这里有一篇关于PQO的历史: https://www.pivotalguru.com/?p=971,简单来说就是:LQO源自postgreSQL的查询优化器,并对其进行了分布式改造,而PQO是对LQO的重构,增强了性能和可维护性。可是,还是回答不了前面的问题......

又翻到一篇关于GreenPlum 4.3版本发布信息的博文: https://www.pivotalguru.com/?p=614,我把其中比较重要部分截图出来如下:

这里有对PQO(ORCA)做了比较具体的描述:1.优化了某些边缘用例;2.优化了某些带分区表、子查询等特殊场景的性能。

看到这里,顿悟了一下,我正在做的TPCH测试,属于Ad-Hoc类型,才22个用例,相对于TPCDS决策支持类型来讲属于比较比较常用和常见的,而且对数据集中的事实表,我也确实没有分区(想知道原因可以留言)......哦哦哦,难怪没有优势=_____=

那,如果换用TPCDS来对比测试,PQO会不会有优势呢?我想这篇HAWQ测试可以告诉我们一些答案: https://www.pivotalguru.com/?p=1045

看这里:

【大数据之数据仓库】选型流水记