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

使用Azure Data Factory迁移CosmosDB数据时遇MultiHash转换错误

解决ADF复制Cosmos DB MultiHash分区容器数据的错误

问题根源

你的源Cosmos DB容器使用了MultiHash类型的多属性分区键,而Azure Data Factory的内置复制活动目前不支持这种分区键类型,导致预览数据时触发类型转换错误。

解决方案

1. 使用Cosmos DB原生数据迁移工具

这是最直接的方案,该工具完全支持MultiHash分区容器:

  • 下载并运行Cosmos DB官方数据迁移工具
  • 配置源为你的源Cosmos DB容器(指定账户、数据库、容器)
  • 配置目标为目标Cosmos DB容器(确保目标容器分区键配置与源一致,若未创建需先在Cosmos门户完成)
  • 启动迁移任务,工具会自动处理MultiHash分区的复制逻辑

2. 通过ADF自定义活动调用Cosmos DB SDK

如果必须依赖ADF,可通过自定义活动实现:

  • 在ADF中创建自定义活动,关联Azure Function或Batch服务
  • 使用C#/Python的Cosmos DB SDK编写数据读写逻辑:
    • 用Container.GetItemQueryIterator(C#)或对应Python方法读取源数据
    • 写入目标容器时,确保分区键值正确映射,SDK原生支持MultiHash类型
  • 配置活动的输入输出后运行任务

3. 临时转换分区类型(仅限测试环境)

仅适用于非生产场景,操作有风险:

  • 导出源容器数据到Blob Storage
  • 删除源容器,重新创建单属性Hash分区的容器并导入数据
  • 用ADF内置复制任务完成迁移
  • 迁移完成后再将源容器改回MultiHash分区(注意会中断业务)

关键注意点

  • 目标容器的分区键配置必须与源完全匹配,否则会导致写入失败
  • 生产环境优先选择方案1或2,避免影响业务运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 11:46:07