源码学习(二)–Presto-Connector机制

导读:终于把年终的事情忙完了,也趁这半个多月的时间回顾总结了这一年的工作,同时也给自己充了充点,把Presto的源码捋了一下,后续几期可以跟大家分享Presto源码的内容。
在源码学习(一)–Presto编译与调试中我们即席查询计算引擎Presto的源码开发环境搭建。Presto可以支持不同数据源的联邦查询,主要就在于它有基于不同数据源的适配器Connector,每个Connector来支持Presto对其数据源的数据读取。本期来介绍一下,一个数据源适配器主要包含的重点类、方法。
导读:终于把年终的事情忙完了,也趁这半个多月的时间回顾总结了这一年的工作,同时也给自己充了充点,把Presto的源码捋了一下,后续几期可以跟大家分享Presto源码的内容。
在源码学习(一)–Presto编译与调试中我们即席查询计算引擎Presto的源码开发环境搭建。Presto可以支持不同数据源的联邦查询,主要就在于它有基于不同数据源的适配器Connector,每个Connector来支持Presto对其数据源的数据读取。本期来介绍一下,一个数据源适配器主要包含的重点类、方法。
来源:DLab数据实验室
1.请看图

上图是一个数据源适配器最重要的三个部分:适配器名字、处理表和字段等的具柄以及进行数据源各种信息获取的连接器。
2.整体介绍
本例是根据PrestoSQL提供的http数据适配器示例进行分析的。我们进行数据表的查询,最终要的无非两个步骤:找到数据位置读取数据、将数据根据schema信息进行组装形成表。那Presto的Connector也是这个思路。
我们通过图片就可以看到,描述的最多的几个类分别是ExampleSplitManager、ExampleSplit、ExampleRecordSetProvider和ExampleMetadata。这几个类就依次完成了这几个功能任务,ExampleSplitManager来管理数据源的不同分片,将不同的分片包装成ExampleSplit。对于每个分片,都包含该分片的数据所在的位置,通过ExampleRecordSetProvider来读取,读取后的数据根据ExampleMetadata中的元数据信息进行解析,形成一张表。
3.总结
所以到这里,我们可以从整体上来了解Presto的一个最简单的数据源适配器要包括那几个方面,那后面我们将会详细的来讲,每个模块的具体作用~
夜雨聆风
