导语:Apache Linkis生态全景图中集成了OceanBase,这个集成为Linkis生态带来了更强大的数据存储和管理能力,进一步提升了平台的功能和性能。通过集成OceanBase,Linkis生态不仅可以提供高度可靠和高性能的数据存储,还能够更好地支持海量数据处理和分析。用户可以在Linkis平台上轻松地访问和管理OceanBase中的数据,实现数据的实时查询、分析和挖掘。
近日,计算中间件 Apache Linkis 在其新版本中通过数据源功能,支持用户通过 Linkis 去对接使用 OceanBase 数据库。OceanBase是由蚂蚁集团完全自主研发的国产分布式数据库,用一套引擎同时支持TP和AP的混合负载, 具有数据强一致、高可用、高性能、在线扩展、高度兼容SQL标准和主流关系数据库、低成本等特点。
本文主要介绍 Linkis v1.3.2 中 OceanBase 数据库的集成。由于 OceanBase 数据库兼容 MySQL 5.7/8.0 的大部分功能和语法。因此,OceanBase 数据库可以当作 MySQL 使用。
想了解更多的功能特点和应用实践,请参与6月13日Linkis与OceanBase的联合Meetup,详情点击文章:《活动直播 | Apache Linkis集成OceanBase的探索与实践》
准备工作
1. 环境安装
安装和部署 OceanBase 数据库,请参阅
部署文档
https://www.oceanbase.com/docs/common-oceanbase-database-cn-10000000001687861
一文讲透|如何部署OceanBase社区版
https://open.oceanbase.com/blog/2235967744
2. 环境验证
你可以使用 MySQL 命令来验证 OceanBase 数据库的安装情况。
mysql -h${ip} -P${port} -u${username} -p${password} -D${db_name}
连接成功,如下图所示:

1. 通过 linkis-cli 提交
sh ./bin/linkis-cli -engineType jdbc-4 -codeType jdbc -code "show tables"
-submitUser hadoop -proxyUser hadoop -runtimeMap
wds.linkis.jdbc.connect.url=jdbc:mysql://${ip} :${port}/${db_name} -runtimeMap
wds.linkis.jdbc.driver=com.mysql.jdbc.Driver -runtimeMap
wds.linkis.jdbc.username=${username} -runtimeMap wds.linkis.jdbc.password
=${password}
2. 通过 Linkis Java SDK 提交任务
Linkis 提供 Java 和 Scala 的 SDK,用于向 Linkis 服务器提交任务。有关详细信息,请参阅 JAVA SDK Manual 👇
https://linkis.apache.org/docs/latest/user-guide/sdk-manual
对于 OceanBase 任务,用户只需要在 Demo 中修改 EngineConnType 和 CodeType 参数:
Map<String, Object> labels = new HashMap<String, Object>();
labels.put (LabelKeyConstant.ENGINE_TYPE_KEY, "jdbc-4"); // required engineType Label
labels.put(LabelKeyConstant.USER_CREATOR_TYPE_KEY, "hadoop-IDE");// required execute user and creator
labels.put(LabelKeyConstant.CODE_TYPE_KEY, "jdbc"); // required codeType
3. 多数据源支持
路径:登录管理平台-->数据源管理
第一步:创建新的数据源


第二步:连接测试
单击测试连接按钮进行测试

第三步:发布数据源


第四步:通过指定数据源名称提交 OceanBase 任务
请求 URL:
http://${gateway_url}:${port}/api/rest_j/v1/entrance/submit
方法:POST
请求参数:
{
"executionContent": {
"code": "show databases",
"runType": "jdbc"
},
"params": {
"variable": {},
"configuration": {
"startup": {},
"runtime": {
"wds.linkis.engine.runtime.datasource": "ob-test"
}
}
},
"labels": {
"engineType": "jdbc-4"
}
}
回应:
{
"method": "/api/entrance/submit",
"status": 0,
"message": "OK",
"data": {
"taskID": 93,
"execID": "exec_id018017linkis-cg-entrance000830fb1364:9104IDE_hadoop_jdbc_0"
}
}

Linkis 作为中间计算层,使各个上层应用以紧耦合的方式直接连接和访问各种底层引擎如 OceanBase、MySQL 等。实现了统一变量等用户资源的互通,脚本、UDF、函数和资源文件,并通过 REST 标准接口提供数据源和元数据管理服务。
Linkis 强大的连接、重用、编排、扩展和治理能力,通过应用层和引擎层的解耦,以标准化可重用的方式解决了扩展难、应用孤岛、重复造轮子等复杂的连接问题。简化了复杂的网络调用关系,从而降低了整体的复杂度,也节省了开发和维护成本。
未来, Linkis 计划进一步和 OceanBase 进行集成,包括 Linkis ETL 功能支持 OceanBase,完成 OceanBase 和其他数据源的导入导出等,并支持将 Linkis 的元数据存储到 OceanBase。
本文分享自微信公众号 - WeDataSphere(gh_273e85fce73b)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。