PrestoSQL, PrestoDB 和 Trino

目录

  • [1. PrestoSQL, PrestoDB 和 Trino](#1. PrestoSQL, PrestoDB 和 Trino)
    • [1.1. PrestoSQL 改名 Trino](#1.1. PrestoSQL 改名 Trino)

1. PrestoSQL, PrestoDB 和 Trino

Presto 社区分家后搞了 2 个项目, 分别为 PrestoDB 和 PrestoSQL, 同时他们都成立了自己的基金会。我们简单梳理下这 2 个分支的主要核心功能:

PrestoDB:

  • Connector: ElasticSearch 及 Druid
  • Master 和 Worker 通信协议支持二进制
  • Orc 及 Parquet 读写性能优化
  • Hive 写数据支持指定压缩格式
  • task 通信协议可以指定 thrift
  • spi pushdown
  • MapReduce-style shuffle, 支持部分 etl 任务及大查询
  • fix bug 及 improve performace

PrestoSQL:

  • Connector: ElasticSearch 和 MemSQL
  • spi pushdown
  • S3 优化读取
  • join 延时物化
  • 大量的 fix bug 及 improve performance

从以上功能实现可以看到, PrestoDB 更符合我对 Presto 未来的定位:

  • 支持大集群
  • 提高并发能力
  • 减少指定场景的查询耗时, 比如 ORC
  • 下推能力存储计算分离, 比如 agg 扔到存储层去做 (2 个分支都有)

除了以上功能外, PrestoDB 还有其他优点:

  • 核心功能会有技术文章输出
  • issue 里技术实现和细节比较全
  • 基金会里包含 Facebook、阿里巴巴、twitter 及 Uber, 有场景支持和实践, 目前 twitter 员工很活跃
  • 老的 PrestoDB 版本升级简单
  • PrestoDB 代码质量比 PrestoSQL 要好, PrestoSQL 有些地方代码改的有些混乱
  • wiki 和文章排版很舒服, PrestoSQL Blog 也没有任何技术输出

PrestoDB 缺点:

  • 主要是 Facebook 员工维护, Facebook 的文化迫使他们员工没有办法花时间在社区上
  • 社区活跃度不如 PrestoSQL
  • Release Notes 上的改动没有对应的 issue 链接

19 年我经常在 slack 上与 PrestoSQL 社区的人打交道, 别人问我选择版本时候, 我都是建议选择 PrestoSQL, 但是目前我有了不同的想法, 如果说只是使用 Presto, 2 个分支其实都无所谓, 如果说公司体量较大, 会有不少二次开发, 我认为 PrestoDB 做的事情和提供的能力更符合国内很多公司的需求, 比如让 Presto 即要支持 ad-hoc, 又要支持 etl(听说目前 Facebook 就在这么搞), 以及很多实时需求等等。

2020.5.20 补充:

我们决定升级到 PrestoSQL 最新版本了 (333), 原因是:

  • 社区活跃度
  • PrestoDB 主要主力还是 Facebook 维护, 不可控, 且有概率被 C++重写
  • PrestoDB 未来方向主要是 ETL 相关的, 我们有 Spark 兜底, ETL 功能靠 Spark、Hive 就好了

1.1. PrestoSQL 改名 Trino

今天, 知名开源项目 Presto 的三位发起人宣布, 将 PrestoSQL 项目的名字改为 Trino。

该项目原本是由 Facebook 运营的, 但 2019 年年初, Presto 团队的三位创始人离开了 Facebook。从此, Presto 项目被一分为二, 由 Facebook 维护 PrestoDB, Martin、Dain、David 三位 Presto 项目最早的发起人维护 PrestoSQL。

目前, PrestoSQL 项目在 GitHub 上的名称已经改为了 Trino, 其官方也在公告中提供了项目的新地址。

相关推荐
@小柯555m2 小时前
MySql(高级操作符--高级操作符练习(1))
数据库·sql·mysql
码农阿豪2 小时前
Python 操作金仓数据库的完全指南(下篇):SQL执行、批量操作与扩展功能
数据库·python·sql
DBdoctor官方2 小时前
DBdoctor v3.3.5.2发布:新增GoldenDB分布式纳管
数据库·sql·polardb·dbdoctor·goldendb
@小柯555m3 小时前
MySql(基础操作符--用where过滤空值练习)
数据库·sql·mysql
鸽芷咕4 小时前
KingbaseES数据库设计规范与SQL开发最佳实践
数据库·sql·设计规范
Java&Develop5 小时前
dbeaver 如何添加 比如 我输入 sf 回车 编辑器会出现 sql select * from 的快捷
数据库·sql·编辑器
Irene199120 小时前
大数据开发语境下,SQL 模式名,映射关系 - - 概念理解
大数据·数据库·sql
ffqws_1 天前
MyBatis 动态 SQL 详解:从原理到实战
java·sql·mybatis
其实防守也摸鱼1 天前
《SQL注入进阶实验:基于sqli-Labs的报错注入(Error-Based Injection)实战解析》
网络·数据库·sql·安全·网络安全·sql注入·报错注入
juniperhan1 天前
Flink 系列第20篇:Flink SQL 语法全解:从 DDL 到 DML,窗口、聚合、列转行一网打尽
大数据·数据仓库·分布式·sql·flink