如何在ADF中通过复制数据将整个Cosmos文档映射至单列?
在ADF中把整个Cosmos DB文档存入SQL单列的两种实现方法
方法一:用复制数据工具快速实现
- 配置源与目标
- 源选择Cosmos DB SQL API,指定目标容器,别选查询或投影选项,保证读取完整文档。
- 目标选SQL数据库,提前在目标表中创建一个
NVARCHAR(MAX)类型的列(比如命名为FullDocument),用来存完整JSON。
- 设置映射关系
- 进入「映射」标签页,点击**「导入架构」**,源端会出现根级的
Document节点(这就是整个文档的代表)。 - 把这个
Document节点直接拖到目标表的FullDocument列上,清空其他多余的映射关系即可。
方法二:用数据流灵活实现
- 配置数据源和接收器
- 数据源选Cosmos DB SQL API,设置为「读取整个文档」模式。
- 接收器选SQL数据库,目标表同样要有
NVARCHAR(MAX)类型的存储列。
- 添加派生列转换
- 在数据源之后加一个「派生列」转换,新建列名设为
FullDocument,表达式写toString(())——这个表达式会把整行数据转换成JSON字符串。
- 完成映射
- 在接收器的「映射」里,只把派生出来的
FullDocument列映射到目标表的对应列,其他字段直接忽略。
注意事项
- 务必用
NVARCHAR(MAX)类型的SQL列,防止大文档被截断。 - 不管用哪种方法,ADF都会自动处理JSON的转义字符,不需要额外操作。
内容的提问来源于stack exchange,提问作者Alan
相关产品推荐
相关产品推荐

