首页 > 解决方案 > 检查存储中是否所有文件都可用 - Azure ADF

问题描述

在 Azure 数据工厂中,如何检查字符串(文件名)数组是否包含值?

我从获取元数据活动中获取文件名,我需要在继续之前检查我拥有的所有 4 个文件名是否在存储帐户中可用。

我希望存储帐户中有 4 个文件,我需要检查所有 4 个文件是否都可用。我需要明确检查文件名而不是文件数 - 这是一个要求

当我尝试使用 get meta data 中的子项对其进行验证时,出现错误"array elements can only be selected using an integer index."这里的问题是该文件可能出现在下一次加载的任何索引处

有没有更好的方法来验证文件名?

感谢您的帮助,在此先感谢

标签: azure-data-factoryazure-data-factory-2azure-data-factory-pipelineazure-adf

解决方案


我的获取元数据输出如下所示

 "childItems": [
    {
        "name": "1.py",
        "type": "File"
    },
    {
        "name": "SalesData.numbers",
        "type": "File"
    },
    {
        "name": "file1.txt",
        "type": "File"
    }

]

我在设置变量活动中使用以下表达式来检查文件名

@if(
contains(activity('Get Metadata1').output.childitems,
json(concat('{"name":"file1.txt"',',','"type":"File"}'))), 

if(
contains(activity('Get Metadata1').output.childitems,
json(concat('{"name":"file2.txt"',',','"type":"File"}'))),

if(
contains(activity('Get Metadata1').output.childitems,
json(concat('{"name":"2.py"',',','"type":"File"}'))),'yes','no')
,'no')
,'no')

这会检查我的 blob 是否有 file1.txt、file2.txt 和 2.py

如果是,我将是分配给变量否则否

您也可以使用 if 条件


推荐阅读