如何使用Azure Data Factory查询并转移符合特定条件的JSON文件
使用Azure Data Factory筛选并转移符合条件的JSON文件
以下是实现筛选markings>document>code="B"且metadata>"publication date:">date="2020-01-01"的JSON文件并转移的具体步骤:
1. 配置源与目标数据集
- 创建源数据集:类型选择JSON,关联存储账户(如Blob Storage)的源容器,设置文件名动态参数(后续用于遍历)。
- 创建目标数据集:同样选择JSON,关联目标存储账户的目标容器,文件名参数与源保持一致。
2. 获取待处理文件列表
添加Get Metadata活动:
- 关联源数据集,在"字段列表"中勾选
Child Items,用于获取源容器下的所有JSON文件信息。
3. 遍历所有文件
添加For Each活动:
- 设置迭代项为
@activity('Get Metadata').output.childItems,遍历每个文件。 - 可选勾选"Sequential"以按顺序处理文件。
4. 读取单个JSON文件内容
在For Each内部添加Lookup活动:
- 关联源数据集,将文件名设置为
@item().name,动态读取当前迭代的文件。 - 在"设置"中勾选"First row only",确保只读取JSON根对象。
5. 条件判断筛选文件
在Lookup之后添加If Condition活动:
- 输入判断表达式:
注意:示例JSON中@and( equals(activity('Lookup JSON').output.firstRow.record.record.markings.document.code, 'B'), equals(activity('Lookup JSON').output.firstRow.metadata['publication date:'].date, '2020-01-01') )publication date后带冒号,需用['publication date:']的方式访问该字段。
6. 转移符合条件的文件
在If Condition的True分支中添加Copy活动:
- 源数据集:关联源数据集,文件名设为
@item().name。 - 目标数据集:关联目标数据集,文件名设为
@item().name。 - 运行管道时,符合条件的文件会自动复制到目标存储位置。
内容的提问来源于stack exchange,提问作者thichxai
相关产品推荐
相关产品推荐

