Apache DolphinScheduler 接入 SQL Server 数据源:配置参数、驱动依赖与底层实现全解析

发布时间:2026/9/15 3:46:30

Apache DolphinScheduler 接入 SQL Server 数据源:配置参数、驱动依赖与底层实现全解析 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),仅供参考
延伸阅读

更多相关文章

2026/9/15 3:46:30

IMM-UPF多目标跟踪:机动建模与存在概率联合估计

简介:本资源是一套面向高校研究生、算法工程师及智能感知方向研究者的多目标跟踪(MTT)MATLAB实战代码包,聚焦非线性非高斯场景下的滤波建模与数据关联核心问题,适用于视频监控、无人系统轨迹估计等实际应用。压缩包共9…

2026/9/15 3:56:31

PHP json_decode返回null?五大根因与排查实战清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/15 3:56:31

大模型应用三层架构:LLM基础、RAG增强与Agent编排实战解析

1. 项目概述:这不是一个“清单”,而是一张大模型应用的实战地图你搜“awesome-llm-apps”,点开 GitHub 上那个星标破万的仓库,第一眼看到的是一长串链接——LangChain、LlamaIndex、DSPy、RAGFlow、Dify、FastRAG、PrivateGPT………

2026/9/15 3:56:31

Flutter+OpenHarmony家庭相册App开发实战指南

1. 项目概述:FlutterOpenHarmony家庭相册App开发实战家庭相册类应用一直是移动开发中的经典场景,这次我们尝试用Flutter框架在OpenHarmony系统上实现一个功能完整的家庭相册应用。不同于普通的相册应用,我们需要特别关注家庭成员间的照片共享…

2026/9/15 3:56:31

PHP原生短视频H5源码拆解:移动端滑动手势与视频播放器实战

简介:这份完整的仿抖音、快手的移动端网页短视频播放源码,定位为一套轻量 H5 短视频交互示例,面向前端初学者、移动端适配开发者和需要快速搭建竖屏播放界面的工程师。压缩包共 53 个文件,以 PHP 后端接口脚本、HTML/CSS 静态页面…

2026/9/15 3:51:30

HarmonyOS七巧板拼图:ArkTS+Canvas实现拖拽旋转与命中检测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/14 2:17:50

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/15 0:01:16

AI英语单词APP开发:自适应学习算法与移动端优化实践

1. 项目概述 作为一名在移动应用开发领域摸爬滚打多年的老手,我最近完成了一个AI英语单词APP的开发项目。这个项目将传统单词记忆方法与现代AI技术相结合,打造了一款能够智能适应不同用户学习习惯的英语学习工具。 市面上大多数单词APP都存在一个通病&a…

2026/9/15 0:01:16

Flutter与OpenHarmony结合开发手语学习APP实战

1. 项目背景与核心价值作为一名同时接触过Flutter和OpenHarmony的开发者,最近我完成了一个基于Flutter for OpenHarmony的手语学习APP实战项目。这个项目最大的特点在于实现了跨平台框架与国产操作系统深度结合的创新实践——用Flutter开发的应用能完美运行在OpenHa…

2026/9/15 0:01:16

六个月成为机器人工程师:从ROS2到SLAM的实战路径

1. 六个月的紧迫感从哪来:先搞清楚你要成为哪种机器人工程师说实话,六个月的期限并不是一个宽松的时间线。市面上任何一本正经的机器人学教材都超过五百页,ROS2的官方文档可以翻到你怀疑人生,再加上ABB、KUKA这些工业机器人厂家动…

2026/9/14 11:59:31

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/14 13:53:59

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/14 11:22:57

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码