You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory仅复制JSON中metadata节点至Blob存储的问题

Azure Data Factory 实现匹配条件后仅复制JSON的metadata节点到Blob存储

要实现满足匹配条件时仅复制JSON中的metadata节点,无法直接通过复制活动完成,需借助**数据流(Data Flow)**做数据筛选与转换,具体操作步骤如下:

1. 创建源数据集

配置指向源Blob存储的JSON数据集,关键设置:

  • 文档类型选择Single document(适配多单文件JSON的场景)
  • 路径指向存放源JSON的容器或指定文件夹

2. 构建处理数据流

2.1 添加源转换

关联刚创建的源数据集,ADF会自动解析JSON结构,若未识别可手动导入Schema

2.2 添加筛选转换

设置匹配条件,仅保留符合要求的文件。比如示例中要匹配distribution.code = "A",表达式写:

record.metadata.markings.document.distribution.code == 'A'

2.3 添加派生列转换

新建派生列(名称可设为output),用表达式提取并包装metadata节点:

{metadata: record.metadata}

这一步确保输出是合法可解析的JSON对象,仅包含目标节点内容

2.4 添加接收器转换

配置指向目标Blob存储的JSON数据集:

  • 文档类型选择Single document
  • 接收器设置中勾选**"写入单个文件"**,可通过参数自定义文件名(比如保留原文件名后缀,如@concat(item().name, '_metadata.json'),需配合管道参数传递源文件名)
  • JSON格式设置:根路径设为$,保证输出内容为完整的metadata节点结构

3. 搭建执行管道

  • 管道中添加数据流活动,关联上述构建的数据流
  • 若需批量处理多文件,可搭配Get Metadata活动获取文件列表,再用For Each活动遍历每个文件,将文件名作为参数传递给数据流的源/接收器数据集

示例输出验证

以你提供的JSON为例,处理后目标Blob中生成的文件内容为:

{
  "metadata": {
    "an": "file6.json",
    "markings": {
      "document": {
        "distribution": {
          "code": "A"
        }
      }
    },
    "publicationDate": {
      "date": "2022-11-25"
    }
  }
}

内容的提问来源于stack exchange,提问作者thichxai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:37:18