如何在Azure Data Factory中为Azure Cosmos DB添加指定嵌套字段?
在Azure Data Factory Data Flow中为嵌套JSON添加派生字段的正确方法
要在嵌套路径properties->execution下新增items字段且不覆盖原有属性,你需要使用ADF Data Flow的merge()函数来合并原有嵌套对象与新字段,具体步骤如下:
操作步骤
- 配置数据源:连接到Cosmos DB的
orders容器,确保数据源能正确读取根级的properties字段(默认配置通常即可满足)。 - 添加派生列转换:在数据流中插入「派生列」组件。
- 设置嵌套派生规则:
- 在派生列的名称输入框中,直接指定嵌套路径:
properties.execution - 在表达式框中输入:
merge(properties.execution, createMap('items', array(properties.execution.item)))merge()函数会保留execution原有所有字段,同时合并新创建的items字段array(properties.execution.item)将item的字符串值转换为数组格式(如"abc"转为["abc"])
- 在派生列的名称输入框中,直接指定嵌套路径:
- 配置目标数据集:
- 连接到Cosmos DB目标容器,写入行为选择Upsert(确保更新原有文档而非完全替换)
- 在映射面板中,保持根级
properties字段的默认映射即可,无需单独配置嵌套字段的映射
关键说明
- 不要直接派生根级的
properties字段,否则会覆盖该对象下的所有原有属性 merge()函数是核心:它能在保留原有嵌套对象结构的前提下,新增或修改指定字段- 如果容器有分区键,需在数据流中确保分区键字段被正确传递,避免写入失败
内容的提问来源于stack exchange,提问作者Nikita Christie
相关产品推荐
相关产品推荐

