azure - 使用 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 表中。
解决方案
最简单的方法是将 Get MetaData 输出作为字符串传递给存储的 proc,并使用 OPENJSON 在 sql db 中对其进行解析。
这是将输出转换为字符串的方法。@string(activity('获取元数据').output)
现在您只需将其传递给存储过程,然后使用 OPENJSON 对其进行解析。
我见过许多其他人使用 ADF foreach 来执行此操作,但是如果您有 1000 个文件/文件夹,您最终会为这种方法加班付出很多。(每个循环都算作一个活动)
推荐阅读
- python - Django Rest Framework - 创建和更新父子关系
- javascript - 如何防止开关 e.which 内部的默认值
- python - Tensorboard 调试器图消失,只剩下队列,为什么?
- python - PyQt4 Adding a custom widget derived from another custom widget to layout
- angular - 如何在 Angular 中分配 formControlName?
- hadoop - 在 Cloudera Manager 中没有“启动”服务的情况下,Hadoop 服务仍在运行
- java - 生成 shim `.so` 以重命名现有 `.so` 的符号
- angular - 订阅基类中的行为主题时,Rxjs 订阅不起作用
- c - Update cell in struct list and return the list
- oracle - Double Pivot across columns is failing