我正在尝试将图片文件(jpg或png)的文件夹(大约7300项)从文件系统上传到名为DocumentBinary的内部部署SQL数据库表:
DocumentBinary table
我希望为此使用数据工厂管道。我正在使用自承载的集成运行时连接到SQL Server数据库。
我找遍了所有地方,但找不到一个如何做到这一点的例子。
我曾尝试使用“复制数据”活动,其中文件系统中的文件使用二进制源数据集(指向文件夹),数据库表使用SQL Server接收数据集,但数据工厂显示以下错误消息:
当源是二进制数据集时,接收器必须是二进制
(both源和宿需要是二进制的)。
我曾尝试使用不带分隔符的DelimitedText数据集作为源,但收到以下错误:
复制数据活动名称中引用数据集时,行/列分隔符不能为空字符串...
1条答案
按热度按时间eblbsuwk1#
当源是二进制数据集时,接收器必须是二进制
错误原因是在Azure数据工厂中如果您尝试复制二进制文件,则源和接收器都应为二进制数据集
根据您的要求,我想向您建议一个解决此问题的变通方法或替代方案。
Get Metadata activity
并将Field list设置为Childitems
,以从文件系统中获取所有图片文件(jpg或PNG)。用于获取元数据的数据集:
获取元数据设置:
@activity('Get Metadata1').output.childItems
将GetMetadata的输出传递给ForEachSet Variable activity
,其中我创建了一个具有字符串数据类型的Demo变量,在值中,我将路径与文件名(如@concat('E:\images\',item().name)
)连接起来。指令集
输出