Presto与Spark SQL查询性能比较

本文通过分页查询和全量数据查询对比了Presto与SparkSQL的性能,发现Presto在分页查询中表现出色,但在全量数据与统计查询中,SparkSQL则展现出更优的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 数仓环境

指标名称指标值
数据总量24T
分区数量24
存储类型Text
Spark SQL版本2.2.0-218
Pres同版本Presto CLI 04fb3c3-dirty

2. 分页查询

所有的计算时间都以秒为单位,执行的SQL语句如下:

select * from mydb where year='2018' and month='09' and day='09' and remote_addr='117.136.68.11' and host like '%poi%'  limit 10;
执行环境limit 10limit 100limit 200
Presto22342
Spark SQL34.08237.395120
Hive4413忽略忽略

另外,我注意到Presto自带分页功能,所以在执行查询命令时感觉更快,几乎就是刚输入命令,结果就呈现出来了,交互性领先。

3. 全量结果

相对于分页查询,这次去掉了limit限制,以及增加了计数查询,如下:

#   测试1
select * from mydb where year='2018' and month='09' and day='09' and remote_addr='117.136.68.11' and host like '%poi%';
#   测试2
select count(*) from mydb where year='2018' and month='09' and day='09' and remote_addr='117.136.68.11' and host like '%poi%';

执行结果,如下表所示:

执行环境全量数据
Presto2080
Spark SQL661.493

4. 其他

相比于Spark SQL,Presto有着更快的启动时间。

相比于Presto,Spark SQL更容易指定执行节点的数量,速度提升更容易,下表是Spark SQL节点数量的速度变化情况。

 spark-sql --num-executors 10
节点数量执行时间
100661.493
24662.734
10625.403

从上表可以看出,Spark SQL所需的执行节点应尽可能与分区数量相等(正在做进一步详尽的测试,请稍等),再多也只是资源浪费。

跟Presto相比,Spark SQL即使在执行节点数量相等时(10个),Spark SQL的速度也大幅领先。

5. 结论

在执行分页查询时,Presto具有明显的优势,但需要全量数据与统计时,Spark SQL则将Presto远远甩在身后。

### 回答1: Druid、Impala、PrestoSpark SQL、Kylin和Elasticsearch都是大数据处理领域的常见工具,它们都有自己的特点和优势。 Druid是一种高性能、列式存储的数据仓库,适用于实时数据分析和查询。它支持速的聚合查询和多维分析,可以处理大规模的数据集。 Impala是一种基于内存的分布式SQL查询引擎,适用于交互式查询和数据分析。它可以直接查询Hadoop中的数据,支持复杂的SQL查询和高并发查询Presto是一种分布式SQL查询引擎,适用于交互式查询和数据分析。它可以查询多种数据源,包括Hadoop、关系型数据库和NoSQL数据库,支持复杂的SQL查询和高并发查询Spark SQL是一种基于SparkSQL查询引擎,适用于大规模数据处理和分析。它可以查询多种数据源,包括Hadoop、关系型数据库和NoSQL数据库,支持复杂的SQL查询和高并发查询。 Kylin是一种OLAP引擎,适用于多维分析和查询。它可以处理大规模的数据集,支持复杂的多维查询和聚合查询。 Elasticsearch是一种分布式搜索和分析引擎,适用于实时数据分析和查询。它可以处理大规模的数据集,支持复杂的搜索和聚合查询。 总的来说,这些工具都有各自的特点和优势,根据具体的需求和场景选择合适的工具是很重要的。 ### 回答2: Druid、Impala、PrestoSpark SQL、Kylin和Elasticsearch,这些都是当前流行的数据存储和分析工具。它们都具备不同的分析功能和优点,适合于不同的数据分析场景。下面将从数据处理能力、性能、数据存储结构等方面对这些工具进行详细对比。 1. 数据处理能力 Druid是一种基于列存储的分布式实时分析系统,支持速的离线批处理和流式数据处理。Druid是专门用于OLAP(在线分析处理)场景的数据存储和查询工具,支持高速聚合、过滤、分组、排序和多维查询等。Druid的查询速度非常,适合于需要速响应的实时分析场景。 Impala是一种基于内存的MPP(Massively Parallel Processing)分布式数据库管理系统,可以速处理大量数据查询请求。Impala支持完整的SQL语言,而且其查询速度很,是一种适合于SQL分析的工具。 Presto是一种分布式SQL查询引擎,Impala类似,支持完整的SQL语言,并具有很高的查询速度。Presto可以查询多个数据源,例如Hadoop、MySQL、Hive等,是一个很好的数据分析工具。 Spark SQL是Apache Spark中的SQL引擎,支持完整的SQL语言和查询,并具有较高的处理速度。Impala和Presto不同,Spark SQL可以处理离线和实时数据,并且提供了丰富的机器学习和图形处理功能。 Kylin是一个开源的分布式分析引擎,适用于大数据下的OLAP分析场景。Kylin使用多层架构来处理超大型数据,支持多维查询,并且可以处理PB级别的数据。 Elasticsearch是一个开源的全文搜索引擎,其功能包括文档索引并支持分布式实时搜索和分析。Elasticsearch具有高度的可伸缩性和性能,可以很好地处理PB级别的数据,适用于文本分析和实时搜索等场景。 2. 性能 Druid、Impala、PrestoSpark SQL、Kylin和Elasticsearch在处理大数据时都具有优异的性能。而Impala、PrestoSpark SQL的处理速度较,且具有较好的并行计算能力和内置的压缩算法,支持并行多核计算和数据分片。 3. 数据存储结构 Druid采用了列存储的数据结构,而且使用了一种称为“旋转位图”的优化技术,这种技术可以大大提高查询性能。 Impala、PrestoSpark SQL采用的都是行级数据存储结构,这种结构可以使数据的读写效率更高。 Kylin使用多层架构的方式来缓存数据,以达到速响应和计算,并且支持OLAP的多维度查询。 Elasticsearch采用倒排索引和分片式数据存储结构,以提高数据搜索的效率,并且支持实时查询和聚合查询功能。 综上所述,Druid、Impala、PrestoSpark SQL、Kylin和Elasticsearch都具有独特的优点和应用场景,可以满足不同的数据存储和分析需要。对于处理海量数据并需要实时响应的场景,可以选择Druid;对于SQL分析场景,可以选择Impala、PrestoSpark SQL;对于多维度OLAP分析场景,可以选择Kylin;而对于全文搜索和实时分析场景,则可以选择Elasticsearch。 ### 回答3: Druid/Impala/Presto/Spark SQL/Kylin/Elasticsearch都是非常流行的分布式查询引擎,它们可以在处理大规模数据时提供非常好的性能和速度。以下是它们的功能对比。 1. Druid由于其高速的查询引擎和极高的查询效率在实时大数据处理方面非常突出,它主要支持OLAP查询,而且提供了高度的可伸缩性和可扩展性,支持海量数据的查询和分析。 2. Impala是一种支持SQL的高速分析工具,内存存储,利用Hadoop内存进行查询,具有高度的并行度和可扩展性,可以速处理大规模数据。 3. Presto是一种由Facebook开发的分布式SQL查询引擎,它使用内存来处理数据,支持多个数据源,提供了高度的扩展性和可伸缩性,具有非常好的性能和速度。 4. Spark SQL是Apache Spark的一部分,主要用于大规模数据处理,同时支持SQL和非SQL语言,它的查询引擎建立在Spark的内存计算引擎之上,支持多种数据存储器。 5. Kylin是一个OLAP引擎,它使用Apache Hadoop构建,具有高效的查询处理能力,可通过多种方式查询数据,支持多个数据源,提供的查询速度非常。 6. Elasticsearch是一种搜索引擎,它使用Lucene搜索库,主要用于全文搜索、日志分析和复杂数据分析,提供了高效的搜索和聚合功能,可以在实时或批量处理模式下使用。 综上所述,Druid、Impala、PrestoSpark SQL、Kylin、Elasticsearch各有优缺点,不同的场景和需求需要结合实际情况选择使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值