首页 > 解决方案 > 使用 ADF v2 将“获取元数据”活动输出到 SQL 表

问题描述

我在管道中使用“GetMetadata”活动来获取所有文件夹、子项和项类型。但是此活动以 JSON 格式提供输出,我无法将值存储到变量中,以便我可以遍历它们。我需要将文件夹元数据存储在 sql 表中

获取元数据活动示例输出如下所示。

{
    "itemName": "ParentFolder",
    "itemType": "Folder",
    "childItems": [
        {
            "name": "ChildFolder1",
            "type": "Folder"
        },
        {
            "name": "ChildFolder2",
            "type": "Folder"
        },
        {
            "name": "ChildFolder3",
            "type": "Folder"
        }
    ],
    "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (North Europe)",
    "executionDuration": 187
}

可以帮我将上面的“获取元数据”活动的 json 输出存储到如下所示的 sql 表中。

在此处输入图像描述

标签: azureazure-devops

解决方案


最简单的方法是将 Get MetaData 输出作为字符串传递给存储的 proc,并使用 OPENJSON 在 sql db 中对其进行解析。

这是将输出转换为字符串的方法。@string(activity('获取元数据').output)

现在您只需将其传递给存储过程,然后使用 OPENJSON 对其进行解析。

我见过许多其他人使用 ADF foreach 来执行此操作,但是如果您有 1000 个文件/文件夹,您最终会为这种方法加班付出很多。(每个循环都算作一个活动)


推荐阅读