Presto可以支持MySQL、PostgreSQL、cassandra、Hive、Kafka等多种数据源查询。
Presto支持部分标准SQL对数据进行查询,并提供SQL shell进行SQL查询。但是Presto不支持存储过程,不适合大表Join操作,因为Presto是基于内存的,多张大表关联可能给内存带来压力。
Presto有很好的扩展向,可以自定义开发特定数据源的Connector,使用SQL分析指定Connector中的数据。
在Presto中可以根据业务需要使用特定类型的Connector来读取不同数据源的数据,进行join关联计算。
Presto是基于内存计算的,减少磁盘IO,计算更快。Presto性能是Hive的10倍以上。Presto能够处理PB级别的数据,但Presto并不是把PB级别的数据一次性加载到内存中计算,而是根据处理方式,例如:聚合场景,边读取数据,聚合,再清空内存,再去读取数据加载内存,再聚合计算,再清空内存... 这种方式。如果使用Join查询,那么就会产生大量的中间数据,速度会变慢。
由于Presto是基于PipeLine进行设计的,因此在进行海量数据处理过程中,终端用户不用等到所有的数据都处理完成才能看到结果,而是可以向自来水管一样,一旦计算开始,就可以产生一部分结果数据,并且结果数据会一部分接一部分的返回到客户端。