精选 | Apache Impala引领传统分析数据库技术的发展

大数据

作者:Greg Rahn和Mostafa Mokhtar

与传统的分析数据库(Greenplum)相比,未经修改的基于TPC-DS的性能基准测试表现出了Impala的领导地位,特别是对于多用户并发工作负载而言。此外,基准测试还进一步证明了分析数据库与Hive LLAP、Spark SQL和Presto等SQL-on-Hadoop引擎之间存在的显著性能差距。

过去一年是Apache Impala(正在孵化中)发展变化最大的一年。Impala团队不仅继续努力不断扩大其规模和稳定性,而且还推出了一系列的关键功能,进一步巩固了Impala作为高性能商务智能(BI)和SQL分析的开放标准地位。对于云计算和混合部署而言,Impala现在可以提供云端-本地部署弹性、灵活性,以及直接从Amazon S3对象存储中(以及为未来一年制定的其他对象存储)读取/写入的能力。随着Apache Kudu的GA,用户现在可以使用Impala对接收到或更新的数据立即进行高性能分析。另外,也很容易将现有的商务智能(BI)工作负载从传统分析数据库或数据仓库迁移至由Impala构建的Cloudera分析数据库中,同时可以使用Navigator Optimizer优化其性能。而且如同以往一样,对于更大的并发性工作负载的性能改进仍然是全年工作的重中之重。

除了这些性能改进之外,随着越来越多的企业机构(例如纽约证券交易所(NYSE)和奎斯特诊断公司(Quest Diagnostics))已经注意到Cloudera现代分析数据库(而不是传统分析数据库)的灵活性、可扩展性和支持SQL及非SQL工作负载(例如数据科学、机器学习和操作性工作负载)的开放式架构,Impala的采用率也在不断增长。

对于该基准测试而言,我们使用未经修改的多用户TPC-DS查询对具有Impala的Cloudera现代分析数据库与传统分析数据库(Greenplum)进行了性能比较。我们还研究了分析数据库与SQL-on-Hadoop引擎,例如:Hive LLAP、Spark SQL和Presto的对比。总的来说,我们发现:

● Impala相对于传统分析数据库而言性能更为先进,包括超过8倍的高并发工作负载性能。

● 分析数据库和其他SQL-on-Hadoop引擎之间存在显著的性能差异,使用Impala可以使多用户工作负载的性能提高近22倍。

● 其他SQL-on-Hadoop引擎也无法完成大规模基准测试来与分析数据库进行比较,因此需要一个简化的、规模较小的基准测试(Hive甚至还需要修改,Presto无法完成多用户测试)。

比较集分析数据库(采用10TB和1TB级别的数据进行测试,未经修改的查询)。● Impala 2.8 from CDH 5.10;

● Greenplum Database 4.3.9.1。

附加的SQL-on-Hadoop引擎(采用1TB级别的数据进行测试,并对Hive进行了一些查询修改)。

● Spark SQL 2.1;

● Presto 0.160;

● Hive 2.1 with LLAP from HDP 2.5。

配置每一个集群由七个工作节点组成,每个节点采用以下配置:● CPU:2 块E5-2698 v4 @ 2.20GHz;

● 存储器:8 块2TB硬盘;

● 内存:256GB内存。

我们配置了三个由相同硬件组成的集群,其中一个用于Impala、Spark和Presto(负责运行CDH),另一个用于Greenplum,还有一个用于具有LLAP(负责运行HDP)的Hive。每个集群都装载了相同的TPC-DS数据:针对Impala和Spark的Parquet/Snappy,以及针对Hive和Presto的ORCFile/Zlib,而Greenplum使用内部的柱状格式与QuickLZ压缩文件。

查询工作负载:● 数据:TPC-DS 10TB和1TB(比例系数);

● 查询:TPC-DS v2.4查询模板(未经修改的TPC-DS)。

我们运行了77个查询,所有引擎的运行都具有语言支持,无需修改TPC-DS规范(Hive除外)。1其中22个已排除的查询都使用以下几个不常见的SQL功能:

● 使用ROLLUP进行的11个查询(TPC-DS允许的变体在本测试中未使用);

● 3个INTERSECT或EXCEPT查询;

● 8个具有高级子查询位置的查询(例如HAVING子句中的子查询等)。

由于Hive对子查询位置的更大限制,我们被迫进行了一些修改以创建语义上等同的查询。我们针对Hive运行了这些经过修改的查询。

虽然Greenplum、Presto和Spark SQL也声称支持所有99个未经修改的查询,但是即使没有并发执行,Spark SQL和Presto也无法成功完成10TB级别的99个查询。Greenplum随着多用户并发性的增加而出现越来越多的查询失败(详见下文)。

分析数据库基准测试结果10 TB级别上Impala与Greenplum的比较我们使用常见的77个未修改的TPC-DS查询在10TB级别数据下对Impala和Greenplum进行了测试。在单用户测试和更实际的多用户测试集上比较了两个、四个和八个并发流。总结如下:● 总体来说,Impala在单用户和多用户并发测试方面优于Greenplum。

● 相比Greenplum而言,Impala 线性扩展表现更优异,随着并发度增加,Impala与Greenplum的性能比率从2倍上升到了8.3倍,,同时保持了更高的成功率。

在单用户测试中,当比较查询中的几何平均值时,Impala的性能是Greenplum的2.8倍;完成查询流的总时间是Greenplum的1.8倍:

用户喜欢...

开源大数据引擎:Greenplum 数据库架构分析

Greenplum 数据库是最先进的分布式开源数据库技术,主要用来处理大规模的数据分析任务,包括数据仓库、商务智能(...


Pivotal开源Greenplum数据仓库软件

Pivotal今天宣布在Apache2开源授权协议下开源Greenplum数据仓库软件。源代码已经上传到Github。IT经理网...


Greenplum 推出统一的分析平台

数据仓库设备制造商Greenplum透露说,他们准备将他们的数据仓库软件和OEMed分布的 Hadoop大数据处理器进行混合以建立...