初次接触OpenLookeng

网友投稿 1246 2022-05-30

openLooKeng是华为的一款性能强大的引擎,基于业界著名的开源SQL引擎Presto来提供交互式查询分析基础能力, openLooKeng用于支持数据探索、即席查询和批处理,具有100+毫秒至分钟级的近实时时延,而无需移动数据。openLooKeng还支持层次化部署,使地理上远程的openLooKeng集群能够参与相同的查询。利用其跨区域查询计划优化能力,涉及远程数据的查询可以达到接近“本地”的性能[1]。

重要概念:

连接器

openLooKeng中的连接器,用于访问不同数据源的数据,不同的数据库对应于不同的Connector。openLooKeng提供的连接器几乎支持市场上各个数据源:HBase、MySQL、SQL Server、CarbonData、Hive等等。

SPI、presto-spi

SPI是JDK内置的服务提供/发现机制,它通过在ClassPath路径下的META-INF/services/目录中定义的文件,自动加载文件里所定义的类。

presto-spi是OpenLookeng的其中一个模块,定义了很多对外暴露的SPI接口。我们可以实现对应的接口,从而实现连接器、类型、函数、系统访问控制等的功能。

通过Maven导入依赖:

io.prestosql

presto-spi

1.10.19

provided

如果我们想做create、insert、drop表的权限校验,只需要实现presto-spi中的ConnectorAccessControl接口即可。

openLooKeng REST API

openLooKeng使用REST进行openLooKeng安装中的所有通信。这也意味着,我们可以直接把SQL语句作为parameter,发送http请求给openLooKeng引擎,然后根据http请求response来得到要查询的结果。

节点资源

GET /v1/node

查询资源

GET /v1/query

GET /v1/query/{queryId}

阶段资源

GET /v1/stage

DELETE /v1/stage/{stageId}

语句资源

POST /v1/statement

任务资源

GET /v1/task

协调节点

负责解析语句、规划查询和管理openLooKeng工作节点的服务器,也是客户端通过REST API连接的节点,提交SQL语句执行的节点

工作节点

初次接触OpenLookeng

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

SQL语法支持:

openLooKeng支持的SQL语法具体可以参考官网,需要注意的,openLooKeng SQL多了很多 Spark SQL不支持的SQL语法,比如SELECT中的offset、FETCH FIRST、TABLESAMPLE BERNOULLI等等。openLooKeng的SQL解析是在presto-parser中执行的。

通过Maven导入依赖:

io.prestosql

presto-parser

1.10.19

provided

io.prestosql.sql.parser中包含了解析SQL的工具,其中SqlParser. createStatement可以将sql解析成Statement,而openLooKeng支持的SQL语法又继承了Statement。

总结:

openLooKeng是基于presto来提供交互式查询分析基础能力的,想要更加的了解openLooKeng,建议可以从presto-spi、presto-parser、presto-plugin、presto-client等源码来了解。

参考文档:

[1] openLooKeng官网: https://openlookeng.io/zh-cn/docs/docs/overview.html

[2] hetu源码:https://github.com/openlookeng/hetu-core

EI企业智能 SQL 大数据 数据湖探索 DLI 智能数据

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【华为云服务之】在华为云ECS上使用Docker部署pgAdmin4
下一篇:ModelArts口罩佩戴模型开发第二版
相关文章