如何在Azure数据复制活动中编写过滤器表达式

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

我在 Azure 数据工厂管道中有一个过滤器,我需要在运算符中编写条件表达式以匹配所有文件格式。但“in”运算符不是常规函数。

物品:

@activity('GetMetadata').output.childItems

条件:

@or(in(item().name, 'file1.txt', 'file03.pdf', 'file113.xml', 'ins222.jpg','AD492.zip','stat2020.csv'))
azure azure-data-factory
1个回答
0
投票

您可以在过滤活动条件中使用以下表达式来实现您的要求。

@and(equals(item().type, 'File'),contains(createarray('file1','file03','file113','ins222','AD492','stat2020'),split(item().name,'.')[0]))

为此,您需要将所有必需的文件名模式作为数组。

由于需要所有格式的文件,上述条件首先检查当前项是否为文件格式。然后它检查当前文件名是否在所需的文件名数组中。

这是我的示例获取元数据子项数组:

"childItems": [
        {
            "name": "AD492.zip",
            "type": "File"
        },
        {
            "name": "file03.pdf",
            "type": "File"
        },
        {
            "name": "file1.json",
            "type": "File"
        },
        {
            "name": "file1.txt",
            "type": "File"
        },
        {
            "name": "file113.xml",
            "type": "File"
        },
        {
            "name": "ins222.jpg",
            "type": "File"
        },
        {
            "name": "stat2020.csv",
            "type": "File"
        },
        {
            "name": "validation.xlsx",
            "type": "File"
        },
        {
            "name": "zip2.rakesh",
            "type": "File"
        }

在过滤器中使用上述条件,如下所示。

enter image description here

它提供了所需的文件:

enter image description here

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