ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Apache DolphinScheduler DB2 数据源接入指南:参数配置、插件激活与底层实现解析

Apache DolphinScheduler DB2 数据源接入指南:参数配置、插件激活与底层实现解析 Apache DolphinScheduler DB2 数据源接入指南参数配置、插件激活与底层实现解析【免费下载链接】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 中DB2 数据源的接入与使用展开完整覆盖数据源创建表单中每一项参数的语义与填写建议并给出 DB2 数据源插件在 3.3.0 之后二进制发行包中的激活方式install-plugins.shplugins_config。同时结合仓库内dolphinscheduler-datasource-db2插件的真实源码与单元测试剖析 JDBC URL 的拼接规则、连接参数模型与校验查询语句帮助读者从会填表单深入到理解底层连接如何被构建为实际部署与排障提供依据。DB2 数据源在 DolphinScheduler 中的定位DolphinScheduler 采用数据源插件化设计每种数据库对应一个独立的dolphinscheduler-datasource-*模块通过 SPIAutoService机制注册到数据源 API 层。DB2 数据源的实现位于 dolphinscheduler-datasource-db2其模块名由 pom.xml 中的plugin.namedatasource.db2/plugin.name声明构建时通过maven-shade-plugin打成独立插件 Jar。该插件以DbType.DB2作为类型标识见 Db2DataSourceParamDTO.java统一交由数据源 API 层调度因此 DB2 与 MySQL、PostgreSQL 等数据源在 DolphinScheduler 的 SQL 任务、数据源管理界面中的使用方式完全一致。数据源参数详解在 DolphinScheduler Web UI 的数据源中心中数据源类型选择DB2后需要填写以下参数对应官方文档 db2.md参数说明Datasource数据源类型选择 DB2。Datasource Name数据源名称在项目中唯一标识该数据源。Description数据源描述便于团队维护与识别。IP/Host NameDB2 服务所在的主机 IP 或主机名。PortDB2 服务监听端口。Username连接 DB2 的用户名。Password连接 DB2 的用户密码。Database Name要连接的 DB2 数据库名称。jdbc connect parametersDB2 连接的附加参数以 JSON 格式填写。界面截图可参考 docs/img/new_ui/dev/datasource/DB2.png。附加参数jdbc connect parameters如何生效表单中的 JSON 参数对应源码里的other字段见 Db2ConnectionParam.java。在构建 JDBC 连接时Db2DataSourceProcessor.java 的transformOther方法会把 JSON 键值对转换为keyvalue形式并用分号;连接追加到 JDBC URL 末尾。例如填写{currentSchema:TESTSCHEMA,sslConnection:true}最终生成的 JDBC URL 为jdbc:db2://host:port/database:currentSchemaTESTSCHEMA;sslConnectiontrue这一行为由单元测试 Db2DataSourceProcessorTest.java#L80-L89 明确验证当other中传入{other:other}时期望的 JDBC URL 为jdbc:db2://localhost:5142/default:otherother。JDBC URL 与连接参数模型源码级DB2 数据源连接的完整参数由Db2ConnectionParam继承自BaseConnectionParam承载包含address、database、jdbcUrl、user、password、driverClassName、validationQuery、other等字段。从 Db2DataSourceProcessor.java#L68-L85 可以看到 URL 的拼接逻辑String address String.format(%s%s:%s, DataSourceConstants.JDBC_DB2, db2Param.getHost(), db2Param.getPort()); String jdbcUrl String.format(%s/%s, address, db2Param.getDatabase());对应到常量定义见 DataSourceConstants.java即JDBC URL jdbc:db2://host:port/database驱动类与校验查询DB2 数据源使用的驱动与校验语句同样定义在DataSourceConstants中常量值用途COM_DB2_JDBC_DRIVERcom.ibm.db2.jcc.DB2DriverDB2 JDBC 驱动类名JDBC_DB2jdbc:db2://JDBC URL 前缀DB2_VALIDATION_QUERYselect 1 from sysibm.sysdummy1连接池校验查询语句其中select 1 from sysibm.sysdummy1是 DB2 官方推荐的连接有效性探测语句在 Db2DataSourceProcessor.java#L129-L132 中通过getValidationQuery()返回由 Db2DataSourceProcessorTest.java#L96-L99 断言验证。SQL 解析支持Db2DataSourceProcessor重写了splitAndRemoveComment方法见 Db2DataSourceProcessor.java#L134-L138借助 Alibaba Druid 的 SQL 解析器按 DB2 方言对 SQL 进行注释剔除与语句切分保证多语句 SQL 任务在 DB2 上可以正确执行。连接通道与密码处理连接的真实建立由DB2DataSourceChannel完成见 DB2DataSourceChannel.java它按场景提供两种客户端createAdHocDataSourceClient临时即席连接客户端适用于一次性 SQL 执行createPooledDataSourceClient池化连接客户端适用于频繁复用的数据源场景。该通道由DB2DataSourceChannelFactoryDB2DataSourceChannelFactory.java通过AutoService(DataSourceChannelFactory.class)注册并以DbType.DB2的名称对外暴露。在 Db2DataSourceProcessor.java#L107-L117 的getConnection方法中可以看到密码存储时经PasswordUtils.encodePassword加密L79使用时再通过PasswordUtils.decodePassword解密随后交给JdbcDriverConnectionProvider完成真正的连接建立。激活 DB2 数据源插件Native Supported 说明官方文档明确标注 DB2 数据源Native Supported: No即二进制发行包默认不内置 DB2 连接所需的驱动与插件依赖需要手动激活。激活方式在 pseudo-cluster.md 的Download Plugins Dependencies一节中有详细说明。背景3.3.0 起插件依赖独立下载从 DolphinScheduler 3.3.0 开始二进制包不再附带插件依赖需要用户自行下载。官方提供一键安装脚本bash ./bin/install-plugins.sh 3.3.0该脚本会根据 config/plugins_config 中的插件清单从 Maven 中央仓库拉取对应版本的插件依赖包。按需裁剪插件清单通常不需要安装全部连接器插件可以通过修改conf/plugins_config只保留所需插件。以仅保留 DB2 数据源插件为例plugins_config的--datasource-plugins--段只需保留--datasource-plugins-- dolphinscheduler-datasource-db2 --end--仓库根目录的 config/plugins_config 展示了完整的--datasource-plugins--段其中默认已包含dolphinscheduler-datasource-db2条目第 44 行其他数据源插件可按需取舍。排障提示Note:插件依赖包通常不包含在二进制包中。如果启动服务时遇到ClassNotFoundException异常请检查对应插件类型的依赖包是否缺失。对于 DB2 数据源典型缺失项即 IBM DB2 JDBC 驱动com.ibm.db2.jcc.DB2Driver对应db2jcc系列驱动 Jar需确保其已被install-plugins.sh正确安装。在任务中使用 DB2 数据源激活插件并在数据源中心创建 DB2 数据源后即可在 SQL 任务dolphinscheduler-task-sql中选择该数据源编写 SQL。由于数据源 API 层对插件做了统一抽象DB2 与项目内其他数据源MySQL、PostgreSQL、Oracle 等参见 dolphinscheduler-datasource-all的使用方式完全一致SQL 解析、连接复用、密码加解密等能力开箱即用。总结创建数据源在数据源中心选择 DB2填写主机、端口、用户名、密码、数据库名附加参数以 JSON 形式追加到 JDBC URL以;分隔键值对激活插件DB2 数据源非 Native 支持3.3.0 起需在 config/plugins_config 中保留dolphinscheduler-datasource-db2并执行bash ./bin/install-plugins.sh 版本号安装依赖底层机制JDBC URL 由jdbc:db2://host:port/database拼装驱动为com.ibm.db2.jcc.DB2Driver校验语句为select 1 from sysibm.sysdummy1密码加密存储、解密使用具体实现可参见 Db2DataSourceProcessor.java 及配套单元测试。【免费下载链接】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),仅供参考
返回列表