
Apache DolphinScheduler 接入 SQL Server 数据源配置参数、驱动依赖与底层实现全解析【免费下载链接】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 数据源中心中SQL Server数据源的使用展开涵盖 UI 配置参数逐项说明、JDBC 驱动与插件依赖的下载激活方式并结合当前仓库中dolphinscheduler-datasource-sqlserver插件的源码与测试用例讲解 SQL Server 连接串如何被组装、校验与使用。读完本文你将掌握在 DolphinScheduler 中正确创建 SQL Server 数据源、规避ClassNotFoundException依赖缺失问题并理解其底层 JDBC URL 生成机制。SQL Server 数据源概述DolphinScheduler 采用「数据源即插件」的设计每种数据库对应一个独立的 datasource 插件。SQL Server 数据源由仓库中的dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver模块提供实现插件名artifactId为dolphinscheduler-datasource-sqlserver在 config/plugins_config 的--datasource-plugins--段中登记供安装脚本按需解析并下载对应 Jar 包。在数据源中心「数据源中心」菜单 → 新建数据源选择SQLSERVER类型后即可填写如下参数完成创建。数据源参数详解SQL Server 数据源的创建表单包含以下字段其含义与填写要求如下表所示数据源说明数据源固定选择 SQLSERVER数据源名称输入数据源的名称用于在 DolphinScheduler 中唯一标识该数据源描述输入数据源的描述信息可选IP/主机名输入 SQL Server 服务所在主机的 IP 或主机名端口输入 SQL Server 服务监听端口默认通常为 1433用户名设置 SQL Server 连接使用的用户名密码设置 SQL Server 连接使用的密码数据库名输入要连接的 SQL Server 数据库名称JDBC 连接参数SQL Server 连接的附加参数设置以 JSON 格式填写其中「JDBC 连接参数」是关键的自定义入口。DolphinScheduler 会把用户填写的 JSON 对象解析为键值对并按keyvalue;的形式追加到 JDBC URL 之后。例如在测试用例 SQLServerDataSourceProcessorTest.java 中通过props.put(serverTimezone, utc)构造了一个额外参数serverTimezoneutc最终会被合并进连接串。参数如何被转换为 JDBC URL从源码 SQLServerDataSourceProcessor.java 可以看到填写完表单后处理器按如下规则生成地址与连接串地址addressjdbc:sqlserver://{host}:{port}前缀常量JDBC_SQLSERVER jdbc:sqlserver://定义于 DataSourceConstants.java连接串jdbcUrljdbc:sqlserver://{host}:{port};databaseName{database}即以分号追加databaseName属性附加参数other若用户在「JDBC 连接参数」中填写了 JSONgetJdbcUrl()会将其转换为keyvalue;格式并追加到连接串末尾例如jdbc:sqlserver://host:1433;databaseNamemydb;serverTimezoneutc。密码加密与连接建立创建数据源时用户密码会通过PasswordUtils.encodePassword()加密后存储见 SQLServerDataSourceProcessor.java真正建立连接时再通过PasswordUtils.decodePassword()解密并交由JdbcDriverConnectionProvider使用驱动类名、连接串、用户名、解密后的密码创建java.sql.Connection见同文件 L112-L122。连接池与即席查询SQL Server 数据源同时支持两类客户端池化连接SQLServerPooledDataSourceClient继承自BasePooledDataSourceClient供工作流中的 SQL 任务复用连接即席连接SQLServerAdHocDataSourceClient继承自BaseAdHocDataSourceClient用于数据源测试等一次性查询场景。两者均由 SQLServerDataSourceChannel.java 统一创建该 Channel 则由 SQLServerDataSourceChannelFactory.java 通过 SPI 机制AutoService(DataSourceChannelFactory.class)注册工厂名称即数据库类型SQLSERVER。驱动类与校验查询该插件使用微软官方驱动类com.microsoft.sqlserver.jdbc.SQLServerDriver常量定义见 DataSourceConstants.java连接存活校验查询为select 1见 DataSourceConstants.java。这些行为均被单元测试覆盖例如 SQLServerDataSourceProcessorTest.java 断言了驱动名与校验查询返回值。SQL 拆分与注释处理当用户在 SQL 任务中编写多语句脚本时处理器通过splitAndRemoveComment()使用 Druid 的 SQL Server 方言解析器拆分语句并移除注释每条子语句末尾自动补充分号;见 SQLServerDataSourceProcessor.java。测试用例验证了select * from table;以及带MERGE复杂语法含注释与换行的多行语句均能被正确切分为单条语句。激活 SQL Server 数据源驱动与插件依赖下载官方文档明确指出SQL Server 数据源默认不随二进制包原生提供Native Supported: No需要在部署阶段手动下载并激活插件依赖否则启动或使用时会抛出ClassNotFoundException。插件依赖下载方式自版本 3.3.0 起DolphinScheduler 二进制发行包不再内置插件依赖需要用户自行下载。仓库中的 install-plugins.sh 脚本封装了依赖安装流程在伪集群部署场景下详见 伪集群部署文档 的「Download Plugins Dependencies」小节可执行bash ./bin/install-plugins.sh 3.3.0实际使用时应将3.3.0替换为当前安装的 DolphinScheduler 版本号。如果你只需要少数几个插件可以先编辑conf/plugins_config配置文件仅保留所需插件再执行安装。例如只保留 SQL Server 数据源插件时plugins_config中--datasource-plugins--段应配置为--datasource-plugins-- dolphinscheduler-datasource-sqlserver --end--仓库根目录下的 config/plugins_config 给出了完整格式参考文件以--alert-plugins--、--datasource-plugins--、--storage-plugins--、--task-plugins--分段段内列出插件 artifactId段尾以--end--结束其中--datasource-plugins--段已包含dolphinscheduler-datasource-sqlserver条目。该映射用于在无版本号artifactId层面解析 Jar 包名称帮助 DolphinScheduler 加载正确的 Jar 包。驱动 Jar 包下载dolphinscheduler-datasource-sqlserver插件的 Maven 依赖声明了com.microsoft.sqlserver:mssql-jdbc见 pom.xml并排除了传递依赖azure-keyvault但该 Jar 并不会被打入官方二进制发行包。官方文档给出了驱动下载地址驱动下载链接mssql-jdbc-11.2.1.jre8SQL Server JDBC Driver 11.2.1适用于 Java 8 运行时Jar 包名为mssql-jdbc-11.2.1.jre8.jar下载后需将驱动 Jar 放入 DolphinScheduler 安装目录对应的libs依赖目录即执行install-plugins.sh后插件依赖所落盘的目录通常位于 DolphinScheduler 二进制包的libs/plugin/datasource/sqlserver下确保服务启动时驱动类com.microsoft.sqlserver.jdbc.SQLServerDriver可被类加载器找到。激活后的使用前提完成插件依赖与驱动 Jar 的部署后需重启 DolphinScheduler 的相关服务API Server / Worker 等使新增依赖生效。随后在数据源中心创建 SQL Server 数据源并点击「测试连接」即可以select 1作为校验查询验证连通性。若未完成上述步骤便尝试连接会因缺少mssql-jdbc依赖而出现ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver之类的异常。小结SQL Server 数据源是 DolphinScheduler 数据源插件体系中的一员从 UI 参数填写到底层连接的完整链路为表单参数SQLServerDataSourceParamDTO→ 连接参数SQLServerConnectionParam含加密密码与 JDBC URL→SQLServerDataSourceProcessor组装并校验 →SQLServerDataSourceChannel提供池化/即席客户端 → 驱动com.microsoft.sqlserver.jdbc.SQLServerDriver建立真实连接。由于官方发行包不内置其驱动依赖使用前务必按照 伪集群部署文档 的「Download Plugins Dependencies」章节下载mssql-jdbc-11.2.1.jre8.jar并激活dolphinscheduler-datasource-sqlserver插件这是避免运行时ClassNotFoundException的关键一步。【免费下载链接】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),仅供参考