首批通过分布式安全可靠测评,为关键业务系统打造
Linkis 集成 OceanBase 数据库
更新时间:2024-10-10 21:40:45
Linkis 是一个开源的分布式计算中间件,提供统一的计算资源管理、任务调度和执行服务。Linkis 创建了一个中间层,允许不同的数据处理应用程序(如 Apache Spark、Hadoop 和 TensorFlow 等)与数据存储和计算资源交互。
Linkis V3.1.2 支持 OceanBase 数据库。本文介绍如何在 Linkis 创建 OceanBase 数据库任务。 OceanBase 数据库兼容 MySQL 5.7 的绝大部分功能和语法。因此您可以将 OceanBase 数据库当成 MySQL 使用。
前提条件
在集成 OceanBase 数据库之前,确认以下信息:
- 您已安装并部署 OceanBase 数据库。更多信息,参考 快速体验 OceanBase 数据库。
- 安装并部署 Linkis。 更多信息,参考 Linkis 部署指南。
通过 shell 提交任务
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}
通过 Linkis SDK 提交任务
Linkis 提供了 Java 和 Scala 的 SDK 向 Linkis 服务端提交任务。更多信息,参考 JAVA SDK 操作文档。对于 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
通过 Linkis 控制台 OceanBase 提交任务
添加 OceanBase 数据源
登录 Linkis 控制台。
在左侧导航栏,单击 数据源管理。
在 数据源管理 页面,单击右上角的 新增数据源。
在 新建数据源 对话框,选择 数据源类型 为 MySQL。
配置各项参数。
参数 描述 数据源名称 数据源标识 Host OceanBase 数据库宿主机的 IP 端口 OceanBase 数据库宿主机 IP 的端口号 用户名 OceanBase 数据库的用户名称 密码 OceanBase 数据库用户的密码 单击 测试连接,验证 Linkis 和数据库的网络连接,以及用户名和密码的有效性。
测试连接通过后,单击 完成。
发布数据源。
在 数据源管理 页面,单击 OceanBase 数据源 版本,在 编辑版本列表 弹窗,点击 发布。
提交 OceanBase 任务
通过指定数据源名称提交 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"
}
}
参考
更多信息,参考以下文档: