如何解决Azure数据工厂中“源”列/字段中的混合属性
我正在使用Azure数据工厂从其中具有多个文件夹的源文件夹(Azure Blob)复制数据(这些文件夹中的每个文件夹的名称都为一年,并且该文件夹内部是具有以下内容的Excel电子表格数据)到SQL Server表中。我想遍历文件夹,选择文件夹名称,然后将名称插入表的一列中,因此对于在文件夹中的文件内部读取的每个数据,该数据所在的文件夹名称将在表中,例如这个:
Data 1 |Data 2 |Year
------------------------
A |abc |2020
B |def |2020
C |ghi |2021
D |jkl |2022
E |lmn |2023
我的管道是这样的:
我有一个名为Get Metadata1
的Get Metadata活动,该活动指向文件夹,此后,ForEach通过两个活动遍历文件夹:一个“ Set variable”活动设置一个变量名为FolderYear ,其@item()。name为值(用于选择文件夹名称),以及一个Copy活动,该活动使用变量在名为Year的数据集中创建了另外一列。我试图将附加的Year列映射到表中的列,但是当我调试管道时,出现以下错误:
{ "errorCode": "2200","message": "Mixed properties are used to reference 'source' columns/fields in copy activity mapping. Please only choose one of the three properties 'name','path' and 'ordinal'. The problematic mapping setting is 'name': 'Year','path': '','ordinal': ''. ","failureType": "UserError","target": "Copy data1","details": [] }
是否可以将当前正在迭代的文件夹名称插入数据库列中?
解决方法
我进行了相同的测试,并将数据(包括文件夹名称)成功复制到SQL表中。
我在容器中有两个文件夹,每个文件夹包含一个要测试的cvs文件。
以前的设置与您相同。
在 ForEach 活动中,我使用其他列将文件夹名称添加到数据源。
更新:
我的文件结构如下:
您可以使用表达式@concat('FolderA/FolderB/',item().name)
:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。