Azure 数据同步 - 将每个 SQL 行复制到 Blob

Azure Data Sync - Copy Each SQL Row to Blob

我正在尝试了解将大量数据 - ~ 6M 文本行从(Azure 托管)SQL 服务器迁移到 Blob 存储的最佳方法。

在大多数情况下,这些记录是存档记录,很少被访问 - blob 存储作为保存这些记录的地方很有意义。

我看过 Azure 数据工厂,它似乎是正确的选择,但我不确定它是否满足要求。

简单的场景是,对于 table 中的每一行,我想创建一个 blob,其中包含该行中 1 列的内容。

我看到教程(即 https://docs.microsoft.com/en-us/azure/data-factory/data-factory-copy-activity-tutorial-using-azure-portal)擅长解释批量到批量数据管道的迁移,但我想从批量到多数据集迁移。

希望这是有道理的,有人可以提供帮助吗?

截至目前,Azure 数据工厂没有像 SSIS 中的 For Each 循环那样内置任何东西。您可以使用自定义 .net activity 来执行此操作,但它需要大量自定义代码。

我想问,如果你把它转移到另一个数据库,你会创建 600 万个具有相同结构的表吗?拥有单独的物品有什么好处?

另一种替代方法可能是将其转换为 JSON,这使用数据工厂很容易。这是我最近将数据移入 DocumentDB 的示例。

Copy From OnPrem SQL server to DocumentDB using custom activity in ADF Pipeline

带有 Azure Feature Pack 的 SSIS 2016,提供 Azure 任务,例如 Azure Blob 上传任务和 Azure Blob 目标。您可能最好使用它,OLEDB 命令或带有 Azure Blob 目标的 For Each 循环可能是另一种选择。

祝你好运!

Azure 有一个 ForEach activity,它可以放在 LookUp 或 Metadata 之后,以获取从 SQL 到 blob

的每一行

ForEach