openLooKeng,Make Big Data Simplified
openLooKeng是一款开源的高效数据虚拟化分析引擎。本期,来自光大银行的小伙伴将为我们分享一篇博客,[基于Hive Connector的openLooKeng Connector创建复用机制剖析],非常感谢这位小伙伴的投稿。
基于Hive Connector的openLooKeng Connector 创建复用机制剖析
本文作者 / 程一舰 中国光大银行总行信息科技部
前言
openLooKeng作为一种跨多源数据的联邦计算引擎,天然的支持第三方数据源Connector的开发。如何进行简单的Connector的开发这里就不具体介绍了,具体可以参考自带的example示例。最近由于业务需要,需要对Hive Connector进行改造以支持我们的场景。为了避免对社区原生Hive Connector的侵入,我通过复用并自定义的方式创建了一个新的Mpp Connector。这里就以此为例,谈一谈这其中的机制。
1. 执行逻辑
上图是一个Hive Connector的整体执行逻辑,一条查询语句到了openLooKeng,会通过Coordinator进行解析,然后通过Thrift接口访问Hive的Metastore获取相关的元数据信息,这其中包括有哪些数据库,每个库里有哪些表以及表的数据位置及字段等信息。拿到这些信息后就会通过调度任务去HDFS上的具体位置拉取数据,最后将数据返回Coordinator进行聚合并返回。这整个过程最重要的就是获取元数据和拉取数据两个过程。话又说远了,如何创建一个新的Connector并复用Hive Connector的功能呢?
2. Plugin加载机制
上图是我用手画的一个大体的加载机制的加载图,可能不