ADF 与 SSIS 数据迁移建议

ADF vs SSIS recommendation for data migration

希望可以在这里提问。我一直在浏览这么多网站,但仍然无法做出决定。 这是场景。我有一个遗留应用程序,它的数据在 Sql 服务器数据库中。现在已经创建了一个新的应用程序,它也将在 Sql 服务器数据库中存储数据。我现在需要将数据从遗留应用程序迁移到新应用程序。遗留数据库结构已在新应用程序中进行了修改,以遵循最佳实践并提高效率(例如:使用 PK、FK、索引、查找、更好的 table 结构等)。因此,从源到目的地将发生很多转换(查找、数据清理、merging/splitting 数据等)。最初我们只会处理 5 年的数据,但稍后我们可能需要移动其余数据。
该公司使用 Azure 进行存储,没有本地资源。
鉴于这种情况,数据迁移的最佳选择是什么? SSIS 还是 ADF?一个比另一个有什么优势(除了 ADF 是基于 Azure 云的事实之外,MS 将来可能会更多地转向 ADF)。如果重要的话,我们还需要 Dev/Test/Prod 个环境。

考虑到公司没有本地资源,我会考虑在 Azure 数据工厂上实施数据迁移。以下是需要考虑的几点:

优点:

  1. ADF 与其他 Azure 资源的集成,例如SQL 数据库是无缝的,不需要连接器设置等
  2. 您可以利用 Microsoft 的网络来改进您的数据传输,您的数据不会通过网络传输,一切都在 MS 数据中心内。
  3. 更安全可靠的传输,您可以利用 ADF Managed Identity 对源和目标进行身份验证。
  4. 由于会有很多更改、拆分等,您可以利用 ADF 的功能从管道失败的地方开始。另一方面,在 SSIS 中,您需要重新开始。
  5. 更好的监控能力

缺点

  1. 您需要一个基础架构来开发、部署和 运行 您的 SSIS 包,这将增加实施时间和维护开销。
  2. 您可以 运行 使用 ADF 的 SSIS 包,但它需要更大的实现来托管您的包和 运行 它们。而且,它会更昂贵。
  3. 如果计划使用 VM,则设置 VM 和 SSIS 会产生额外的开销。此外,与启动新 VM 和 SQL 服务器相关的成本。
  4. 监控和重试能力不强

“没有本地资源”

这将使使用 SSIS 变得相当困难,因为您将需要一个 SQL 服务器实例 某处 (本地或 Azure VM 中)到 运行 SSIS 包,或通过 ADF 执行它们,这确实非常昂贵。如果您仅为 SSIS 启动一个实例,您还将复制所有数据,然后退出该实例以供 SSIS 处理它。 Everton Barciela 在他们的回答中更详细地概述了这些问题。


我会亲自编写 SQL 脚本来转换数据,将它们包装在现有 SQL 实例之一的临时区域中的存储过程中。然后,您可以从 ADF 调用它们并将输出复制到新 SQL 实例上的新表中。

在这样做时,您正在利用 SQL 的重要数据转换能力来完成繁重的工作(您可能已经在您的组织中拥有专业知识)并让 ADF 将输出复制到新的目的地。这意味着您的 ADF 管道简单、易于管理,因此具有成本效益。

为什么不考虑使用 Azure 数据库迁移服务。 Azure 数据库迁移服务是一种工具,可帮助您简化、指导和自动执行数据库到 Azure 的迁移。轻松地将您的数据、模式和对象从多个来源大规模迁移到云端。