首页 > 解决方案 > 与 GetMetadata 存在总是返回 true

问题描述

使用 V2,我试图找出 Azure blob 存储中是否存在文件夹(我知道“文件夹”是一个伪名称,因为它只是文件 url 的一部分)。当我尝试这样做时,无论文件夹是否存在,它总是返回 true。

下面是一个应该返回 false 但返回 true 的示例。文件夹路径“test/2018/5/25”不存在,但 Get Metadata 返回“exists: true, itemName: 25”。存在其他文件夹路径,如“test/2018/5/24,但不是以25结尾的那个,因为没有25号的数据。

有任何想法吗?

管道

{
"name": "Testing",
"properties": {
    "activities": [
        {
            "name": "Get Metadata1",
            "type": "GetMetadata",
            "policy": {
                "timeout": "7.00:00:00",
                "retry": 0,
                "retryIntervalInSeconds": 30,
                "secureOutput": false
            },
            "typeProperties": {
                "dataset": {
                    "referenceName": "metdatatest",
                    "type": "DatasetReference"
                },
                "fieldList": [
                    "itemName",
                    "exists"
                ]
            }
        }
    ]
  }
}

数据集

{
"name": "metdatatest",
"properties": {
    "linkedServiceName": {
        "referenceName": "xxx",
        "type": "LinkedServiceReference"
    },
    "type": "AzureBlob",
    "typeProperties": {
        "format": {
            "type": "TextFormat",
            "columnDelimiter": "\t",
            "nullValue": "\\N",
            "treatEmptyAsNull": true,
            "skipLineCount": 1,
            "firstRowAsHeader": false
        },
        "fileName": "",
        "folderPath": "test/2018/5/25"
    }
  }
}

标签: azureazure-data-factoryazure-data-factory-2

解决方案


我可以复制相同的内容,这是一个错误。它当前返回它的容器是否存在,但没有检查这个“虚拟”文件夹的存在。

由于 blob 没有文件夹的概念,为了知道这样的文件夹是否存在,它需要进行文件搜索以检查该文件夹下是否有任何文件,这可能会导致性能问题。我会回到 PROD 团队。敬请期待...


推荐阅读