复制数据活动Azure synapse

问题描述 投票:0回答:1

大家好,我们正在研究使用 foreach 循环来自动化复制数据活动。 Metadata1 获取文件名列表,从这里我们使用 Bronze/@activity('Get Metadata1').output.childItems / * 获取要迭代的文件路径。

但不幸的是,它似乎出错了,有什么想法吗?我觉得命名约定有点奇怪

azure-synapse azure-synapse-analytics azure-synapse-pipeline
1个回答
0
投票

Metadata1 获取文件名列表,从这里我们使用 Bronze/@activity('Get Metadata1').output.childItems / * 来获取要迭代的文件路径。

“获取元数据”活动将提供如下所示的子项目。

"childItems": [
        {
            "name": "LOWfixthree.csv",
            "type": "File"
        },
        {
            "name": "Table2.csv",
            "type": "File"
        },
        {
            "name": "sample_blank.csv",
            "type": "File"
        }
    ]

你可以看到它是一个数组,你不应该在文件路径中使用它。

为了实现您的要求,请将子项数组

@activity('Get Metadata1').output.childItems
赋予 for-each 活动表达式。

enter image description here

在 for-each 内的复制活动中,使用此数组迭代来给出当前文件名。在源通配符路径中输入

@item().name
,如下所示。

enter image description here

如果您的

bronze
容器的任何文件夹中都有数据,您也可以在上面给出该文件夹路径。

在接收器数据集中提供目标位置并调试管道。管道将在获取元数据子项数组的每次迭代中将每个文件从源复制到目标。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.