Apache DolphinScheduler 接入 Databend 数据源:参数配置、JDBC 连接原理与插件激活指南
2026/9/15 13:23:05 网站建设 项目流程

Apache DolphinScheduler 接入 Databend 数据源:参数配置、JDBC 连接原理与插件激活指南

【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler

本文以 Apache DolphinScheduler 中 Databend 数据源的官方中文文档为主体,结合dolphinscheduler-datasource-databend插件源码(位于 dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-databend),系统讲解 Databend 数据源的全部配置参数、JDBC URL 的构建规则、jdbc 连接参数的 JSON 写法,以及从 3.3.0 开始如何下载插件依赖激活该数据源。读完本文,你将能够独立在 DolphinScheduler 中正确创建 Databend 数据源,并理解其底层连接链路的实现细节。

一、Databend 数据源在 DolphinScheduler 中的定位

Databend 是一款云原生数仓产品,支持通过 JDBC 对外提供 SQL 查询能力。DolphinScheduler 将 Databend 作为内置数据源类型(DATABEND)提供给用户,用于在工作流中以 SQL 任务形式对 Databend 中的数据进行读取、加工与分析。

从插件工程结构看,Databend 数据源是一个独立的插件模块,遵循 DolphinScheduler 数据源 SPI 规范实现,包含以下核心类(见 dolphinscheduler-datasource-databend/src/main/java/org/apache/dolphinscheduler/plugin/datasource/databend):

类名职责
DatabendDataSourceParamDTO页面表单参数模型,getType()返回DbType.DATABEND
DatabendConnectionParam连接参数模型,继承BaseConnectionParam,保存地址、库名、JDBC URL、驱动类、验证查询等
DatabendDataSourceProcessor核心处理器,负责参数转换、JDBC URL 构建与连接创建,通过@AutoService(DataSourceProcessor.class)注册
DatabendDataSourceChannel数据源通道,统一创建 AdHoc(临时)与 Pooled(连接池)两种客户端
DatabendAdHocDataSourceClient/DatabendPooledDataSourceClient实际执行连接与查询的客户端

插件对应的 Maven 坐标为org.apache.dolphinscheduler:dolphinscheduler-datasource-databendpom.xml中声明的插件名为datasource.databend,其依赖核心 JDBC 驱动为com.databend:databend-jdbc,并额外引入org.lz4:lz4-java以支持 Databend 协议中的数据压缩,详见 插件 pom.xml。

二、数据源参数详解

在 DolphinScheduler 前端界面进入"数据源中心",点击"创建数据源"并选择DATABEND类型后,需要填写以下参数(内容继承自 databend.md):

数据源描述
数据源选择 DATABEND
数据源名称输入数据源的名称
描述输入数据源的描述
IP/主机名输入 DATABEND 服务的 IP 地址
端口输入 DATABEND 服务的端口
用户名设置 DATABEND 连接的用户名
密码设置 DATABEND 连接的密码
数据库名称输入 DATABEND 连接的数据库名称
jdbc 连接参数DATABEND 连接的参数设置,以 JSON 格式表示

其中"数据源名称"是工作流中引用该数据源的唯一标识,"数据库名称"会被拼接到 JDBC URL 中作为默认连接的库。其余参数中,jdbc 连接参数最为灵活,下面重点展开。

关于 JDBC 连接参数

jdbc 连接参数采用JSON 格式填写键值对,例如:

{ "ssl": "true" }

其可配置项以 Databend 官方 JDBC 驱动(databend-jdbc)支持的连接属性为准,常见用途包括:

  • ssl:是否启用 TLS/SSL 加密连接(true/false);
  • connect_timeout/socket_timeout:连接超时与读写超时;
  • batch_load:控制是否使用批量加载模式,影响大数据量写入时的性能表现;
  • 其他驱动支持的属性均可按需补充。

提示:jdbc 连接参数中不要重复填写主机、端口、用户名、密码、数据库等已在表单中填写的连接要素,这些字段由表单独立管理。

三、源码视角:JDBC URL 是如何构建的

理解jdbc 连接参数如何生效,关键在于阅读 DatabendDataSourceProcessor.java 中的createConnectionParamsgetJdbcUrl两个方法。

1. 基础 JDBC URL 构建createConnectionParams):

jdbc:databend://{host}:{port}/{database}

代码中的地址前缀常量取自 DataSourceConstants.java 中的JDBC_DATABEND = "jdbc:databend://"。也就是说,你在表单里填写的IP/主机名端口数据库名称会被组合成类似下面的连接串:

jdbc:databend://10.0.0.8:8000/default

2. 驱动类与校验语句

  • 驱动类为com.databend.jdbc.DatabendDriver(常量COM_DATABEND_JDBC_DRIVER);
  • 连接池健康校验语句为select 1(常量DATABEND_VALIDATION_QUERY),这也是 Databend 数据源默认的 validation query。

3. 附加参数拼接getJdbcUrl):

jdbc 连接参数(内部字段名为other,即"其他参数")非空时,处理器会将 JSON 中的每个键值对转换为key=value形式,并用&连接后追加到 JDBC URL 之后,例如上文的{"ssl": "true"}最终生成:

jdbc:databend://localhost:8000/default?ssl=true

这一点同样有单元测试覆盖:在 DatabendDataSourceProcessorTest.java 的testGetJdbcUrl中,{"ssl": "true"}被断言拼装为jdbc:databend://localhost:8000/default?ssl=true

4. 密码处理与连接创建

表单中的明文密码在落库前会经过PasswordUtils.encodePassword加密保存;真正建立连接时再通过PasswordUtils.decodePassword解密还原,并通过JdbcDriverConnectionProvider加载com.databend.jdbc.DatabendDriver完成java.sql.Connection的创建。从源码结构可以推断,该插件走的是与 MySQL、PostgreSQL 等数据源一致的"表单 DTO → 连接参数 → JDBC Provider"统一链路。

四、Databend 数据源是否原生支持

否。官方文档明确说明:Databend 数据源不是二进制发行包默认内置的插件,从 3.3.0 版本开始,二进制包不再随包提供插件依赖,需要用户自行下载激活。具体步骤见 伪集群部署文档中的"下载插件依赖"章节。

激活方式:下载插件依赖

在 DolphinScheduler 安装目录下执行:

bash ./bin/install-plugins.sh 3.3.0
  • 该脚本实现在 script/install-plugins.sh,其默认版本为dev-SNAPSHOT,也可以像上面一样显式传入目标版本号;
  • 脚本通过 Maven 命令mvnw dependency:get下载org.apache.dolphinscheduler:dolphinscheduler-datasource-databendshade分类构件到本地plugins/datasource-plugins目录;
  • 如果不需要全部插件,可以编辑插件清单文件 config/plugins_config,在--datasource-plugins--段中保留dolphinscheduler-datasource-databend一行、注释或删除其他不需要的数据源插件,从而只下载 Databend 相关依赖,加快部署速度并减小体积。

注意:若跳过该步骤直接启动服务并尝试使用 Databend 数据源,运行时会因缺少databend-jdbc等依赖而抛出ClassNotFoundException,这也是官方文档特别强调"使用前需激活数据源"的原因。

五、创建与验证 Databend 数据源

完成插件下载并重启 DolphinScheduler 服务后,按以下步骤操作:

  1. 登录 DolphinScheduler UI,进入数据源中心
  2. 点击创建数据源,类型选择DATABEND
  3. 填写上文的参数表格:名称、描述、IP/主机名、端口、用户名、密码、数据库名称,并按需填写jdbc 连接参数(JSON 格式);
  4. 点击测试连接,系统会使用select 1校验语句(DATABEND_VALIDATION_QUERY)验证连通性;
  5. 测试通过后保存,即可在 SQL 类任务中通过"数据源"下拉框选择该 Databend 数据源执行查询。

关于测试用例的佐证:在 DatabendDataSourceProcessorTest.java 中可以看到,DbType.DATABEND的枚举编码为19testBuildConnectionParams验证了jdbc:databend://localhost:8000形式地址的构建,testCreateConnectionParams2验证了jdbc:databend://localhost:8000/default形式 JDBC URL 的解析,这些用例可以作为你排查连接串拼接问题时的对照参考。

六、常见问题排查

  • 测试连接报ClassNotFoundException: com.databend.jdbc.DatabendDriver:插件依赖未下载,回到第四节执行bash ./bin/install-plugins.sh 3.3.0并确认plugins/datasource-plugins下存在dolphinscheduler-datasource-databend相关构件。
  • 连接超时或握手失败:核对IP/主机名端口是否正确,确认 Databend 服务端 JDBC 端口已对 DolphinScheduler 所在机器开放,必要时在jdbc 连接参数中补充超时类参数。
  • 需要加密/指定数据仓库时:确认"数据库名称"填写正确;涉及 SSL 或认证增强时,通过jdbc 连接参数传入驱动支持的相关属性(JSON 键值对形式)。
  • 地址解析异常:检查jdbc 连接参数是否为合法 JSON,避免出现缺少引号、多余的逗号等格式错误,否则参数在getJdbcUrl阶段无法被正确解析拼装。

总结

Databend 数据源是 DolphinScheduler 数据源插件体系中对云原生数仓 Databend 的标准接入方式。本文完整覆盖了官方的参数表格、jdbc 连接参数的 JSON 写法,并结合插件源码还原了jdbc:databend://{host}:{port}/{database}?k=v的底层构建链路、驱动类与select 1校验逻辑。同时提醒:该数据源非原生内置,使用前务必通过 install-plugins.sh 配合 plugins_config 完成插件依赖下载。掌握上述内容后,即可在 DolphinScheduler 中稳定接入并使用 Databend 数据源。

【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询