
Apache DolphinScheduler PostgreSQL 数据源接入指南参数配置、插件依赖与底层原理【免费下载链接】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 的 PostgreSQL 数据源展开完整讲解在 Web 界面中创建 PostgreSQL 数据源所需的每一项参数含义说明该数据源插件为何默认不随二进制包提供、以及如何通过插件依赖安装将其激活。阅读并动手实践后你将能够独立完成 PostgreSQL 数据源的创建、连接校验与任务使用并理解数据源插件在源码层面的构建与连接原理。PostgreSQL 数据源在 DolphinScheduler 中的定位DolphinScheduler 通过「数据源中心」统一管理各类数据库连接SQL、Procedure、DataX 等任务在执行时可以引用已创建的数据源从而复用连接信息、避免在任务参数中重复暴露账号密码。PostgreSQL 是其中一类由独立插件承载的数据源类型对应仓库中的插件模块为 dolphinscheduler-datasource-postgresql其 Maven 插件标识为datasource.postgresql见 pom.xml。从插件架构上看PostgreSQL 数据源由以下几部分组成均位于 postgresql 插件源码目录PostgreSQLDataSourceProcessor参数 DTO 与连接参数之间的转换、JDBC 驱动与校验查询声明、真实连接的获取PostgreSQLConnectionParam继承BaseConnectionParam承载最终连接所需的 user、password、address、database、jdbcUrl、driverClassName、validationQuery 等字段PostgreSQLDataSourceParamDTO承接前端表单数据其getType()返回DbType.POSTGRESQLPostgreSQLDataSourceChannel及对应的PostgrePooledSQLDataSourceClient/PostgreAdHocSQLDataSourceClient分别提供池化连接供执行任务使用与临时连接供界面测试连通性等场景使用的创建入口。创建 PostgreSQL 数据源核心参数一览在 DolphinScheduler 前端界面进入「数据源中心」点击「创建数据源」在类型下拉框中选择POSTGRESQL即进入下述表单。原文档定义的核心参数及含义如下表所示参数Datasource说明DescriptionDatasource选择数据源类型为 POSTGRESQL。Datasource name输入数据源名称供任务引用时识别。Description输入数据源的描述信息。IP/Host Name输入 PostgreSQL 服务的 IP 或主机名。Port输入 PostgreSQL 服务的端口默认通常为 5432。Username设置 PostgreSQL 连接用户名。Password设置 PostgreSQL 连接密码。Database name输入 PostgreSQL 连接的数据库名。Jdbc connection parametersPostgreSQL 连接的参数设置以 JSON 格式填写。其中「IP/Host Name」「Port」「Username」「Password」「Database name」五项构成了最基本的连接三要素地址 账号 数据库而「Jdbc connection parameters」是进阶选项用于追加额外的 JDBC 连接属性详见下一节。Jdbc connection parametersJSON 格式的高级连接参数在填写连接参数时可以按 JSON 格式补充额外的 JDBC 属性。以源码实现为准PostgreSQLDataSourceProcessor.createConnectionParams 会先拼接出基础 JDBC URLjdbc:postgresql://{host}:{port}/{database}其中前缀jdbc:postgresql://定义于 DataSourceConstants。当表单中填入了 JSON 格式的额外参数后getJdbcUrl会调用transformOther将 JSON 的键值对转换为key1value1key2value2的查询串拼接到 URL 末尾见 PostgreSQLDataSourceProcessor.getJdbcUrl / transformOther例如{ connectTimeout: 10, socketTimeout: 60, stringtype: unspecified }最终生成的连接 URL 形如jdbc:postgresql://127.0.0.1:5432/dolphinscheduler?connectTimeout10socketTimeout60stringtypeunspecified这些参数最终会作用于 PostgreSQL JDBC 驱动的连接行为可用于控制超时、字符类型处理、SSL 等连接属性。连接建立时getConnection 通过JdbcDriverConnectionProvider使用声明的驱动类与上述 URL 完成真实连接的获取。原生支持说明为什么需要手动激活插件依赖原文档在「Native Supported」一节明确指出PostgreSQL 数据源默认不随二进制发行包原生提供需要读者参考伪集群部署文档的「Download Plugins Dependencies」章节来激活该数据源。这是因为从 3.3.0 版本起DolphinScheduler 二进制发行包不再内置插件依赖需要用户按需自行下载。激活 PostgreSQL 数据源的推荐方式是使用安装脚本在发行包根目录执行bash ./bin/install-plugins.sh 3.3.0脚本会将版本号作为参数通过 Mavendependency:get拉取指定版本的插件见 install-plugins.sh。如果只希望安装部分插件可以在conf/plugins_config中按需裁剪仓库中对应配置样例为 config/plugins_config其中--datasource-plugins--段落已包含dolphinscheduler-datasource-postgresql这一行即表示该数据源插件属于可选的数据源插件集合--datasource-plugins-- ... dolphinscheduler-datasource-postgresql ... --end--提示插件依赖包通常不包含在二进制发行包内。如果启动服务或使用数据源时出现ClassNotFoundException请先检查对应插件类型的依赖是否缺失。PostgreSQL 数据源插件的驱动依赖为org.postgresql:postgresql见 pom.xml即 PostgreSQL JDBC Driver。源码级的连接细节与行为说明驱动与校验查询PostgreSQL 数据源插件声明的 JDBC 驱动类与连接校验查询均定义在数据源 API 常量中驱动类org.postgresql.DriverDataSourceConstants.ORG_POSTGRESQL_DRIVER校验查询select version()DataSourceConstants.POSTGRESQL_VALIDATION_QUERY用于连接池健康检查。密码加密存储创建数据源时密码不会以明文写入数据库createConnectionParams中通过PasswordUtils.encodePassword对密码进行加密后再存入连接参数见 PostgreSQLDataSourceProcessor.createConnectionParams获取连接时再使用PasswordUtils.decodePassword解密见 PostgreSQLDataSourceProcessor.getConnection保证凭据的落盘安全。两种连接获取方式PostgreSQLDataSourceChannel定义了两种客户端创建入口见 PostgreSQLDataSourceChannel.javacreateAdHocDataSourceClient创建PostgreAdHocSQLDataSourceClient用于一次性/临时的查询场景createPooledDataSourceClient创建PostgrePooledSQLDataSourceClient用于任务执行等高频率使用场景通过连接池复用连接、降低建连开销。兼容 PostgreSQL 特性的 SQL 拆分PostgreSQL 支持以$tag$ ... $tag$形式书写的美元引用dollar-quoted字符串函数体、存储过程等内容常依赖该语法。PostgreSQLDataSourceProcessor.splitAndRemoveComment在按分号拆分多条 SQL 时会先借助 Druid 解析器去除注释再通过splitSqlRespectingDollarQuotes识别$...$包裹的块确保美元引用内的分号不会被误判为语句分隔符见 PostgreSQLDataSourceProcessor.splitAndRemoveComment。这意味着在使用 SQL 任务执行含函数定义等多语句脚本时拆分结果能保持 PostgreSQL 语义正确。实践建议与常见问题创建前先确认插件已激活若界面「数据源中心」的创建列表中找不到 POSTGRESQL 类型说明插件依赖尚未安装请先按上文「原生支持说明」执行install-plugins.sh并重启相关服务。连通性测试创建数据源时界面提供的连通性测试走临时连接通道PostgreAdHocSQLDataSourceClient而任务执行走池化连接通道PostgrePooledSQLDataSourceClient两者都应保证目标主机与端口在网络层面可达。连接参数的使用场景当需要设置超时、SSL 或特殊类型映射等驱动级属性时优先通过「Jdbc connection parameters」的 JSON 配置完成无需修改任务脚本。密码安全数据源密码在落库前会经过加密处理任务侧引用数据源时无需也无法直接读取明文密码。小结通过本文你已经掌握了 Apache DolphinScheduler 中 PostgreSQL 数据源从「界面参数填写」到「插件依赖激活」再到「源码级连接原理」的完整链路核心参数类型、名称、主机、端口、账号、密码、数据库、JSON 连接参数决定了连接的基础信息install-plugins.sh与plugins_config决定了插件能否被加载而 PostgreSQLDataSourceProcessor 在幕后负责 JDBC URL 组装、密码加解密、驱动加载、校验查询与兼容 PostgreSQL 的 SQL 拆分。据此即可在实际环境中顺利接入 PostgreSQL并让 SQL 等任务安全复用该数据源。【免费下载链接】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),仅供参考