SSIS 迁移至 Databricks ― 加速器

10 Nov 202610 分钟阅读views 0comments 0
SSIS 迁移至 Databricks ― 加速器 — Innovational Office Solution

SSIS → Databricks 迁移加速器

― 不是“换个运行环境”,而是把十几年的 ETL 资产重新梳理一遍

阅读本指南,你将了解

  • 为什么现在是迁移 SSIS 的合适时间点
  • Databricks 免费工具 Lakebridge 能自动完成哪些部分,哪些仍需人工
  • SSIS 组件与 Databricks 的对照关系,以及最容易出错的五类场景
  • 并行运行与对账的判定标准
  • 联系邮箱:Admin@innovationalofficesolution.com

一、时间窗口

SQL Server 2016 的扩展支持已于 2026 年 7 月 14 日结束,SQL Server 2017 也将在 2027 年 10 月 12 日到期。SSIS 随 SQL Server 一起发布,很多企业的 SSIS 包至今仍运行在这两个版本上。继续使用意味着要么购买付费的扩展安全更新(ESU),要么升级到更新的 SQL Server 版本——而后者通常还要连带改造包的部署方式和连接配置。

如果企业的分析负载本来就计划向湖仓迁移,那么与其为 SSIS 再升级一次,不如借这个窗口把 ETL 一并迁走。

二、Lakebridge 与本加速器的分工

Databricks 提供免费的迁移工具 Lakebridge,其中 SSIS 转换基于 BladeBridge 转换器,可以把 .dtsx 包转换为 Databricks Notebook。根据官方文档,该功能目前标注为“实验性”,支持 SQL Server 2012 至 2022 以及 ADF 的 SSIS 集成运行时,覆盖 50 个 SSIS 组件中的 38 个。脚本任务和脚本组件中的 C# / VB.NET 代码无法自动转换,需要用 Python 重写;Analysis Services 处理、FTP、Send Mail、Web Service、XML 等任务也需要手工处理。

环节Lakebridge本加速器
包与依赖关系评估支持支持,并结合执行历史和业务重要度排定迁移批次
标准控制流 / 数据流转换支持(实验性)支持
C# / VB.NET 脚本任务保留结构,需人工重写AI 解析脚本意图并生成 PySpark,专家逐段复核
不支持的组件需人工处理提供标准替代模式(见第四节)
包配置、项目参数、环境变量部分映射为作业参数与密钥范围(Secret Scope)
业务口径对账结构、行、列级校验生成业务可签字确认的 KPI 级对账报告

两者可以组合使用:先用 Lakebridge 完成标准部分,再由本加速器处理“剩下的难点”。

三、迁移步骤

1. 导出与盘点

从 SSISDB 目录或文件系统导出全部 .dtsx 包,结合 SQL Server 代理作业历史,识别长期未运行或重复的包。

2. 依赖关系梳理

解析“执行包任务”的父子调用链、优先约束(成功 / 失败 / 完成分支)以及表级读写关系,生成血缘图。

3. 自动转换

  • 数据流任务 → Spark SQL / PySpark DataFrame
  • 执行 SQL 任务 → Spark SQL 语句;T-SQL 存储过程 → Databricks SQL 或 PySpark
  • Foreach / For 循环容器 → 参数化 Notebook 或文件通配读取
  • 包变量与表达式 → 作业参数与 Python 变量

初始自动转换准确率为 70%~90%。

4. 编排与运维

将 SQL Server 代理作业与包之间的调用关系转换为 Lakeflow Jobs 的任务依赖;失败重试、告警通知改用作业内置机制。

5. 并行运行与对账(PulseQA)

新旧两套流程使用相同的源数据运行,自动比对目标表的行数、合计值、主键差异和拒绝记录数量。

四、最容易出错的五类场景

① 脚本任务 / 脚本组件(C#、VB.NET)

常用于调用接口、解析非标准文件、写日志。建议先归纳“这段脚本到底做了什么”,再用 Python 重新实现,而不是逐行翻译。

② 慢变维(SCD)组件

SSIS 自带的 SCD 向导生成的是逐行处理逻辑,性能较差。迁移时统一改为 Delta Lake 的 MERGE INTO,一次性处理。

③ 排序规则与字符串比较

SQL Server 默认排序规则通常不区分大小写、忽略尾随空格,而 Spark 默认区分。这是迁移后“查不到数据”“关联不上”的常见原因,需要在关联键上统一处理。

④ 中文编码

从旧系统导出的平面文件常用 GBK / GB18030 编码,SSIS 的平面文件连接管理器里设置了代码页 936。迁移到 Spark 后必须显式指定编码,否则会出现乱码。

⑤ 整数除法与数据类型

T-SQL 中两个整数相除结果仍为整数,而 Spark SQL 默认返回小数。涉及比率、单价计算的字段需要逐一核对。

五、组件对照表

SSISDatabricks
数据流任务Spark SQL 临时视图 / DataFrame
OLE DB / ADO.NET 源spark.read(JDBC)
派生列 / 条件拆分withColumn / when / filter
查找(Lookup)join / 广播关联
聚合 / 排序groupBy().agg() / orderBy
合并联接 / 全部合并join / unionByName
慢变维(SCD)Delta Lake MERGE INTO
执行 SQL 任务Spark SQL 语句
执行包任务dbutils.notebook.run() / 作业任务依赖
Foreach 循环容器参数化 Notebook / 通配读取
脚本任务(C# / VB.NET)PySpark / Python 函数
包配置 / 项目参数作业参数 / 密钥范围
SQL Server 代理作业Lakeflow Jobs

六、中国区部署提示

在由世纪互联运营的 Azure 中国区使用 Azure Databricks 时,根据 Azure 中国文档,Lakeflow Connect 的托管连接器目前不可用。从 SQL Server 增量抽取数据,可改用 JDBC 读取配合变更跟踪(Change Tracking)或时间戳字段的增量方案。设计前请以所选区域的功能清单为准。

七、应用示例:Emulus Consulting

Emulus Consulting 使用本加速器对 280 个 SSIS 包进行了盘点,下线和合并了其中 35%,其余迁移至 Databricks。

  • 迁移周期:8 周
  • 夜间批处理时长:5.5 小时 → 25 分钟
  • 运维服务器数量:8 台 → 0 台
  • TCO 降低 45%

先拿最难的包试一试

挑选 5 个包含脚本任务和 SCD 的 SSIS 包,我们免费提供转换代码与对账结果。

免费 POC(概念验证)
Microsoft Solution Partner

将 SSIS 包与 ETL 迁移至 Databricks

SQL Server 2016 停止支持后的现代化首选。把 .dtsx 控制流、数据流、脚本任务转换为高可靠的 PySpark / Spark SQL。初始自动转换准确率 70%~90%。

初始自动转换准确率 70%~90%针对 5 个高难度 SSIS 包提供免费 POCSCD 慢变维与复杂脚本智能转写为 Delta Lake MERGEPulseQA 端到端数据与业务指标一致性校验
申请免费 POC联系 ETL 现代化专家
🔒 Zero Risk•⚡ 24h Response
发布方:Office Solution AI Labs(Microsoft 解决方案合作伙伴 - Data & AI)
#中文#SSIS#Databricks#PySpark#Lakeflow#ETL迁移#案例研究

Contact Us

Advance Analytics of next generation

We are an authorized implementation partner of Snowflake, Databricks, Amazon, Automation Anywhere, Denodo, DataDog, New Relic, and Elastic.

Copyrights © 2026 Office Solution AI Labs