Presto 相关概念


上一教程中我们提到了Presto的架构,里面涉及到一些关键的概念,本篇教程将重点展开讲述Presto的一些基本概念,这对于后续的Presto学习都是十分有帮助。

1 服务器节点类型(ServerType)

Presto中有两类的服务器节点,分别是Coordinator和Worker。上一节Presto 简介中我们有提到过,本节来重温一下~

1)Coordinator

该服务器节点主要负责解析SQL语句管理Worker节点。它是Presto运行的“大脑”,同时也是客户端提交SQL语句的节点。每个运行的Presto集群包含1个Coordinator节点和1到多个Worker节点。Coordinator节点会一直跟踪着每个Worker节点的状态和协调查询操作的执行。

2)Worker

Worker负责执行任务处理数据。工作节点从连接器获取数据并相互交换中间的数据。协调器负责从Worker那里获取结果并将最终结果返回给客户端。

2 数据源(DataSources)

1)Connector(连接器)

Connector使Presto适应Hive或关系数据库等数据源。

您可以像理解数据库驱动程序一样来理解连接器,它允许Presto使用标准API与资源进行交互。

Presto包含多个内置Connector:用于JMX的Connector、提供对内置系统表的访问的系统连接器、Hive Connector和设计用于提供TPC-H基准数据的TPCH Connector。

第三方的开发人员提供了许多Connector,这使得Presto可以访问各种数据源中的数据。

每个Catalog都与一个特定的Connector相关联。如果您检查Catalog配置文件,您会看到每个文件都包含一个必选的属性:connector.name,Catalog管理器会使用该属性为给定的Catalog创建Connector。

可能有多个Catalog使用相同的Connector来访问类似数据库的两个不同实例。例如,如果您有两个Hive集群,您可以在一个Presto集群中配置两个都使用Hive连接器的目录,从而允许您从两个Hive集群中查询数据(甚至在同一个SQL查询中)。

2)Catalog(目录)

Presto中的Catalog包含Schema,并通过Connector引用数据源。例如,您可以配置一个JMX目录,以便通过JMX Connector提供对JMX信息的访问。

当您在Presto中运行SQL语句时,您将针对一个或多个Catalog运行它。其他Catalog示例包括连接到Hive数据源的Hive Catalog。

在处理Presto中的表时,完全限定的表名总是植根于目录。例如,hive.test_data.test的完全限定表名将引用Hive Catalog中的test_data模式中的测试表。Catalog存储在Pressto配置目录中的属性文件。

3)Schema(模式)

Schema是组织表的一种方式。Catalog和Schema一起定义了一组可以查询的表。

当使用Hive或使用Presto访问MySQL等关系型数据库时,Schema将在目标数据库中转换为相同的概念。其他类型的Connector可以选择以一种对底层数据源有用的方式将表组织成Schema。

4)Table(表)

Table是一组无序的行,它们被组织为具有类型的命名列。Connector定义了从数据源到Table之间的映射。