What is Presto ?
- Presto是由Facebook开发的分布式sql查询引擎,用来进行高速、实时的数据查询
- Presto的产生是为了解决Hive的MapReduce模型太慢且不能通过BI等工具展现HDFS的问题
- Presto是一个计算引擎,它不存储数据,通过丰富的connector获取第三方服务的数据,并支持扩展。可以通过连接Hive,来实现快速query hive table
- 可以跨数据源进行联合查询
查询例子:
# 联合查询hive的表和mysql的表
select * from hive.testdb.tableA a join mysql.testdb.tableB b
where a.id = b.id
show catalogs
show schemas
Presto 数据模型:
- Catalog: 即数据源,Hive, Mysql都是数据源,Presto可以连接多个Hive,Mysql
- Schema: 类比于database,一个catalog下有多个schema
- table: 数据表,一个schema下有多个数据表
Presto 和Trino的关系
2020年12月PrestoSQL 更名为 Trino,所以Trino实际上是Prestode rebrand,至于为什么? 参考
说到底是Presto在Facebook的几个核心创始人员和公司闹掰了,然后出去后创立了新的公司为了Presto/Trino的发展。但是Facebook已经注册了Presto的商标权,所以不得已只能改名字了。文章来源:https://www.toymoban.com/news/detail-464765.html
Presto架构
- Presto从Hive Metastore获取元数据信息;
- 获取元数据信息后,从HDFS访问数据;
- 最终讲结果返回给client。
- Coordinator负责解析SQL语句,生成查询计划并访问Hive metastore,分发执行任务
- Discovery Server负责维护Coordinator和worker的关系,通常内嵌于Coordinator节点
- Worker负责执行查询任务以及于HDFS进行交互读取数据。
Presto VS Spark
文章来源地址https://www.toymoban.com/news/detail-464765.html
pyhive访问presto
- pip package: presto
- 或者用sqlalchemy
到了这里,关于大数据入门之Presto/Trino的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!