Presto-[13]-Connectors

Connectors

Connectors是Presto queries的’数据源’,即便查询数据源中没有table表,只要实现Presto所需的API,也可以查询数据。

ConnectorFactory

plugin调用getConnectorFactory()–>得到ConnectorFactory–>建立Connector实例:

ConnectorMetadata
ConnectorSplitManager
ConnectorHandleResolver
ConnectorRecordSetProvider

ConnectorMetadata

为Presto提供大量方法列举特定数据的schemas列表,tables列表, columns列表, 和其他元数据metadata,例程实现可参见: Example HTTP Connector和Cassandra connector

ConnectorSplitManger

SplitManger将table数据分块chunks,供Presto向workers分发处理。
例如:

  • Hive connector 列举hive的每个partition的文件files,为每个文件建立一到多个split。
  • 对于没有分区(partitioned)的数据,一个相对好的策略是整个表作为一个split(Example HTTP connector 即为该类实现)

ConnectorRecordSetProvider

给定一个split和一组columns列表,RecordSetProvider负责将数据传输到Presto的执行引擎execution engine。
它会构建一个RecordSet记录集,继而建立RecordCursor游标,供Presto行行读取各行中的列值(类似于JDBC)

猜你喜欢

转载自blog.csdn.net/hjw199089/article/details/81210028