本教程是关于Presto数据查询引擎的简介内容,作为整个树懒中整个Presto教程的开端,我们会在这篇教程中为您介绍Presto的特点、架构以及这个数据查询引擎的基本原理。
1 Presto简介
Presto是一种OLAP数据查询引擎,它由Facebook于2012年开发,并于2013年正式开源。
Presto支持多种数据源,且支持数据规模达GB至PB量级的运算处理,是大规模并行处理模型(Massively parallel processing,MPP)。
2 Presto的特点
Presto数据查询引擎的架构是由关系型数据库延伸而来的,之所以Presto能够被Facebook誉为“性能比Hive好10倍之多”,是因为它具备以下几个特点:
1)支持不同数据源:Presto支持Mysql、PostgreSQL、Cassanda、Hive、Kafka、JMX等多种数据源的Connector。
2)支持SQL查询:Presto支持SQL查询,并提供SQL Shell脚本语言,用户可直接使用Shell脚本语言进行查询。
3)扩展性强:支持开发人员对Presto进行二次开发,如用户可以根据特定的数据源去开发相对应的Connector。
4)支持混合计算:指用户可配置多个查询目录,进行混合目录的数据查询操作。
5)高性能:Facebook称Presto性能是Hive的10倍之好。
6)PipeLine式设计:Presto支持数据处理的流水过程显式化,即用户可以在操作终端看到数据处理的整个流程。
由于Presto数据查询引擎是基于内存来进行数据处理的,因此对于大量的数据查询而言,Presto并不适用于多表间的Join操作。
3 Presto的架构
Coordinator负责解析语句、规划查询和管理Presto工作节点的服务器。它是Presto的“大脑”,也是客户端连接以提交执行语句的节点。每个Presto进程都必须有一个Coordinator和一个或多个Worker。
Worker负责执行任务和处理数据。Worker节点从connector处获取数据并相互交换中间数据。Coordinator负责从Worker那里获取结果并将最终结果返回给客户端。
Presto以插件形式对数据存储层进行了抽象,它叫做connector。connector用于让Presto适配Hive或关系性数据库等不同的数据源。
Presto包含多个内置connector:用于JMX的connector、提供对内置系统表的访问的系统connector、Hive connector和设计用于提供TPC-H基准数据的TPCH connector。
用于协调Coordinator和Worker之间的服务。
4 Presto教程
本教程将对Presto这一强大的OLAP数据查询引擎进行由简入深的介绍,教会您包括基本概念、安装配置、操作过程等内容,因此零基础的小白也可放心大胆地食用~