首页 > 解决方案 > 将图像从 SQL 图像字段复制到 Azure Blob 存储作为 blob 块

问题描述

我有一个 SQL 表,其中存储了很多图像,结构如下:

CREATE TABLE [dbo].[DocumentsContent](
    [BlobName] [varchar](33) NULL,
    [Content] [varbinary](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

我需要将所有图像从数据库复制到 Azure Blob。问题是有 3TB 的图像,所以一个将一个一个地读取它们(从 SQL)并复制到 Azure 的脚本不是理想的解决方案。

我已经尝试过使用SSISData Factory,但是两者都只创建一个包含所有信息的文件,而不是我需要的每一行的一个文件(或者至少按照我的方式)。

有什么工具可以在适当的时候做吗?或者有什么方法可以为此使用 SSIS 或数据工厂?

谢谢!

标签: ssisdatabase-migrationazure-data-factoryazure-blob-storage

解决方案


您可以使用 Azure 数据工厂中的 2 个活动来实现它:

  1. 使用查找活动来获取行数
  2. 使用以行数作为输入的 foreach 活动,并且由于每一行都是独立的,因此您可以保持启用并行执行。

在 foreach 中,使用源为 SQL 的复制活动,过滤条件为行号,目标为 blob。

这将为每一行生成单独的文件并并行发生


推荐阅读