Presto是什么
Presto是分布式SQL查询引擎,用来进行高速、实时的数据分析
Presto的产生是为了解决Hive的MapReduce模型太慢且不能通过BI等工具展现HDFS数据结果的问题
- Presto是一个计算引擎,它不存储数据,通过丰富的Connextor获取第三方服务的数据,并支持扩展。
- 比如通过链接HIVE的matestore来获取hive的源数据信息。从而读取hdfs上面hive的数据,
- 通过MySQL的connector获取MySQL的数据。
Presto的优点
- Presto支持标准的SQL,降低了分析人员和开发人员的使用门槛。
- Presto支持可插拔的Connector,可以链接多种数据源,包括Hive,DBMS,Kafka、MongoDB等等。而且还支持不同数据源之间的联合查询。
- Presto是一个低延迟,高并发的内存计算引擎,比Hive的计算效率要高的多。
Preesto的数据模型
通过一条hive的查询语句进行分析
Select *
From hive.testdb.tableA a JOIN mysql.testdb.tableB b
WHERE a.id = b.id
SHOW CATALOGS
SHOW SCHEMAS
- Catalog:即数据源。Hive、MySQL都是数据源。Presto可以链接多个Hive和多个MySQL
- Schema:类比于DataBase,一个Catalog下有多个Schema
- Table:数据表,与我们常用的数据库表意义相同。一个Schema下有多个数据表。
我们平常使用的数据源都是两级 一个是 db一个是table
在Presto中因为我们可以链接多个数据源hive,所以这里面是三级的语句。
从语句中我们可以发现,一个Catalog是Hive一个Catalog是MySQL,