如何解决将图像从 SQL 图像字段复制到 Azure Blob 存储作为 Blob 块
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 个活动来实现:
- 使用查找活动获取行数
- 使用以行计数作为输入的 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 举报,一经查实,本站将立刻删除。