presto sql 报错_PrestoDB VS PrestoSQL发展比较

最近PrestoDB成立了依托于Linux Fundation之下的一个基金会,到此为止Presto的两大分支: PrestoDB和PrestoSQL都成立了自己的基金会,我比较好奇在这分道扬镳的一年时间内两个分支发展的究竟怎么样,因此从公开的信息做了一些收集统计。

项目活跃度

首先我们从项目活跃度的角度看看两个项目的各项指标,第一个是分道扬镳之后各自的提交次数:

再看看参与贡献的人数

再看看发布的新版本的个数

从以上三个指标可以看出,在项目活跃度上PrestoSQL要比PrestoDB更活跃。

重要的功能特性

Coordinator和Worker之间支持了二进制的通信方式[PrestoDB]

二进制的通信方式使得通信的效率更高,降低Coordinator的CPU和内存的使用率,当集群的QPS上升之后Coodinator与Worker之间通信方式的优化对于查询Latency的降低很重要。

SPI更新支持更多的pushdown[PrestoSQL, PrestoDB]

PrestoDB和PrestoSQL最近都在做的一件事情是把更多的计算pushdown到底层存储,因为底层存储比如mysql都具有一定的计算能力,通过把一些计算pushdown到底层存储可以使得从底层拉取的数据更少,提高整体查询的性能。

更快的S3读取速度 [PrestoSQL]

Presto在云上一个很大的应用场景就是对保存在Object Store里面的数据进行分析,社区发现Presto从S3实际读取的数据量比引擎统计出来的多好多倍,可见是什么地方多读了数据。David Phillips经过一番调研之后发现Presto在读取Parquet数据的时候会指定要读取的数据的具体的字节范围,从哪里开始读,到哪里结束。但是S3文件系统的实现没有做到这一点,它在实际向S3请求数据的时候只传了开始位置,没有传结束位置,因此从S3读取的数据并不是精确的那么多,会造成多读。而且这种Streaming的读取请求,在读取到足够数据之后没办法结束掉,只能把整个连接关掉,使得连接无法被复用,进一步降低了查询性能。PrestoSQL社区对这个问题的修复是实现了精确的按照指定区间读取,降低了扫描数据量的同时也使得连接可以复用。

ORC Reader的进一步优化[PrestoSQL]

在大数据处理里面,特别这种计算存储分离的场景,一个大数据计算相当的时间是花在从存储上扫描数据上,PrestoSQL对于ORC的数据读取进行了进一步优化,主要的优化点在于:对于之前每次单条读取改成了尽量批量读取

对于循环中的方法调用避免dynamic dispatch

这些优化之后测试发现在TPC-H, TPC-DS上,读取速度提升了4% - 5%, CPU使用率降低了8% - 9%。

总结

从上面的分析可以看出,从各个方面的活跃度来看,PrestoSQL要比PrestoDB更活跃一点。两个社区各自都做了一些重大的更新,同时我们也看到两个社区也不是完全隔离的,一个社区作出了一个号的好的改进另外一个社区会及时的吸收过去,比如PrestoSQL对S3的读取速度进行了优化,PrestoDB也Cherry Pick过去了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Presto是Facebook最新研发的数据查询引擎,可对250PB以上的数据进行快速地交互式分析。据称该引擎的性能是 Hive 的 10 倍以上。 PrestoDB 是 Facebook 推出的一个大数据的分布式 SQL 查询引擎。可对从数 G 到数 P 的大数据进行交互式的查询,查询的速度达到商业数据仓库的级别。 Presto 可以查询包括 Hive、Cassandra 甚至是一些商业的数据存储产品。单个 Presto 查询可合并来自多个数据源的数据进行统一分析。 Presto 的目标是在可期望的响应时间内返回查询结果。Facebook 在内部多个数据存储中使用 Presto 交互式查询,包括 300PB 的数据仓库,超过 1000 个 Facebook 员工每天在使用 Presto 运行超过 3 万个查询,每天扫描超过 1PB 的数据。此外包括 Airbnb 和 Dropbox 也在使用 Presto 产品。 Presto 是一个分布式系统,运行在集群环境中,完整的安装包括一个协调器 (coordinator) 和多个 workers。查询通过例如 Presto CLI 的客户端提交到协调器,协调器负责解析、分析和安排查询到不同的 worker 上执行。 此外,Presto 需要一个数据源来运行查询。当前 Presto 包含一个插件用来查询 Hive 上的数据,要求: Hadoop CDH4 远程 Hive metastore service Presto 不使用 MapReduce ,只需要 HDFS 要求: Mac OS X or Linux Java 7, 64-bit Maven 3 (for building) Python 2.4 (for running with the launcher script) 标签:PrestoDB  查询引擎  大数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值