微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将图像从 SQL 图像字段复制到 Azure Blob 存储作为 Blob 块

如何解决将图像从 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 并不是理想的解决方案。

我已经尝试使用 SSIS数据工厂,但两者都只创建一个包含所有信息的文件,而不是我需要的每一行创建一个文件(或在以免像我那样)。

有什么工具可以在合适的时间内完成?或者有什么方法可以为此使用 SSIS 或数据工厂?

谢谢!

解决方法

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

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

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

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

,

其他想法:

选项 1)

  • SSIS 数据流任务 - “Export Column”到本地磁盘
  • 使用 Filezilla Pro(或同等产品)将多线程传输到 Azure

选项 2)

  • 通过 NFS3.0 挂载 Azure Blob
  • SSIS 数据流任务 - “导出列”到挂载磁盘

拆分工作负载以并行执行

WHERE CHECKSUM([BlobName]) % 5 = 0
WHERE CHECKSUM([BlobName]) % 5 = 1
WHERE CHECKSUM([BlobName]) % 5 = 2
WHERE CHECKSUM([BlobName]) % 5 = 3
WHERE CHECKSUM([BlobName]) % 5 = 4

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。