本文为博主公司原创文章,仿冒必究,转载请回复留言
开源OLAP引擎测评报告(SparkSql、Presto、Impala、HAWQ、ClickHouse、GreenPlum)
易观CTO 郭炜 序
现在大数据组件非常多,众说不一,在每个企业不同的使用场景里究竟应该使用哪个引擎呢?这是易观Spark实战营出品的开源Olap引擎测评报告,团队选取了Hive、Sparksql、Presto、Impala、Hawq、Clickhouse、Greenplum大数据查询引擎,在原生推荐配置情况下,在不同场景下做一次横向对比,供大家参考。
每年易观都会发布一次这样的大数据开源测评报告,欢迎大家给出更好的测评意见以及想要测试的组件。易观Spark实战营是易观大数据技术团队组织的针对大数据初学者的实战训练营,欢迎搜索访问“易观数据极客社区”,在文章后留言,交流最新最全的大数据技术。
目录
一、测试方案
1.1测试整体方案
本次测试针对现有Olap的7大Sql引擎Hadoop(2.7)、Hive(2.1)、Hawq(3.1.2.0)、Presto(0.211)、Impala(2.6.0)、Sparksql(2.2.0)、Clickhouse(18.1.0-1.El7)、Greenplum(5.7.0) 基础性能测试。我们采用多表关联和单大表性能分别对比不同组件在查询性能、系统负载等方面的情况,测试方案如下:
- 1,多表关联采用Tpc-Ds基准测试工具生成相应测试语句和数据进行测试,
- 2,单大表测试同样选用Tpc-Ds基准测试工具生成的最大数据量的表,并采用我们选用的一些常规性聚合语句进行测试。
1.2 TPC-DS测试与单表测试方案及数据准备
TPC-DS采用星型、雪花型等多维数据模式。它包含7张事实表,17张维度表平均每张表含有18列。其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部分以及OLAP。这个测试集包含对大数据集的统计、报表生成、联机查询、数据挖掘等复杂应用,测试用的数据和值是有倾斜的,与真实数据一致。可以说TPC-DS是与真实场景非常接近的一个测试集,也是难度较大的一个测试集。
TPC-DS的这个特点跟大数据的分析挖掘应用非常类似。Hadoop等大数据分析技术也是对海量数据进行大规模的数据分析和深度挖掘,也包含交互式联机查询和统计报表类应用,同时大数据的数据质量也较低,数据分布是真实而不均匀的。因此TPC-DS成为客观衡量多个不同Hadoop版本以及SQL on Hadoop技术的最佳测试集。
本次测试采用TPC-DS提供的dsdgen命令工具生成指定量级的测试数据,我们指定数据量级为100G。
生成的各个表的数据量如下:
通过使用dsqgen命令根据TPC-DS提供的模板生成不同类型的SQL语句,TPC-DS默认支持以下模板:db2.tpl、netezza.tpl、oracle.tpl、sqlserver.tpl。我们通过命令生成sqlserver.tpl模板的SQL语句,分别对其进行细微的修改使其符合不同的olap引擎支持的语法规则。
对于多表关联测试,我们从中选取了15条有代表性的sql语句(见附件二),几乎所有的测试案例都有很高的IO负载和CPU计算需求,涵盖了几乎所有的业务场景。
对于单大表测试,我们选择TPC-DS生成的测试数据集中数据量最大的表store_sales,并选用了9条使用频率高的常规性聚合sql语句进行测试(见附件三)。
1.3环境准备
本次测试方案的硬件环境使用三台物理机,操作系统为centos7ÿ