一、Presto概念
- presto是一个开源的分布式sql查询引擎,数据量支持GB到PB字节,主要用来处理秒级查询场景。
- 注意:虽然presto可以解析SQL,但他不是一个标准的数据库。不是mysql,oracle的替代品,也不能用来处理在线事务(OLTP),同时presto用的是一套自己的SQL语言,程序员的学习成本高,所以市场占有率并不高。
二、Presto架构
presto由一个coordinator和多个worker组成。
三、Presto优缺点
1)优点
- (1)presto基于内存运算,减少了硬盘IO,计算更快
- (2)能够连接多个数据源(对比于同类产品的impala),跨数据源连表查。如从hive查询大量网站访问记录,然后从mysql中匹配出设备信息。
2)缺点
- presto能够处理PB级别的海量数据分析,但presto并不是把PB级数据都放在内存中计算的。而是根据场景,如count,avg等聚合运算是边读数据边运算,再清内存,再读数据再计算,这种消耗内存并不高。但是连表查,就可能产生大量的临时数据,因此数据会变慢。
四、Presto、Impala性能比较
https://blog.csdn.net/u012551524/article/details/79124532
测试结论:Impala性能稍领先于Presto,但是Presto在数据源支持上非常丰富,包括Hive、图数据库、传统关系型数据库、Redis等。