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

如何将Azure Cosmos DB固定容量集合改为无限容量?

解决Azure Cosmos DB固定容量集合转无限容量的问题

嘿,我之前也碰到过完全一样的情况!固定容量(10GB)的Cosmos DB集合没法直接转换成无限容量的,核心原因是无限容量集合强制要求配置分区键,而旧的固定大小集合本身没有这个架构设定。不过咱们可以通过数据迁移的方式平滑过渡,下面是具体步骤:

1. 创建新的无限容量集合

  • 登录Azure门户,找到你的Cosmos DB账户,进入「数据资源管理器」
  • 定位到对应的数据库,点击「新建容器」
  • 填写容器名称,重点是设置合适的分区键:选一个在业务查询中频繁用作过滤条件、且值分布均匀的属性(比如/userId、/orderId这类),这会直接影响后续的性能和扩容能力
  • 容量模式选择「无限」,吞吐量可以先设置和旧集合一致的数值,后续再按需调整

2. 迁移旧集合的数据到新容器

这里有几种实用的迁移方式,你可以根据数据量和技术栈选择:

  • 官方数据迁移工具:用Azure Cosmos DB Data Migration Tool,可视化配置源(旧固定集合)和目标(新无限集合)的连接信息,批量完成数据迁移,支持增量同步和错误重试
  • 自定义脚本:如果数据量不大,用你熟悉的SDK(.NET、Python、Java等)写个简单脚本,遍历旧集合的所有文档(注意处理分页,因为Cosmos DB单次查询返回有限),写入新集合
  • 门户复制功能:在Cosmos DB账户的「数据迁移」菜单里,用「复制数据」工具,全程可视化配置,适合不想写代码的场景

3. 切换应用的数据源

  • 修改服务代码中的容器名称,把所有读写请求指向新的无限容量集合
  • 做全面的功能测试,确认数据读取正常、写入无报错,业务流程不受影响

4. 验证并清理旧资源

  • 让应用跑一段时间,观察新集合的性能和数据完整性,确保一切稳定
  • 确认没问题后,删除旧的固定容量集合,避免不必要的成本支出

额外注意事项

  • 分区键一旦设置就没法修改,所以一定要结合业务场景慎重选择,避免后续出现热点分区问题
  • 如果迁移期间应用还在写入数据,建议用**变更馈送(Change Feed)**来同步增量数据,确保没有数据丢失
  • 无限容量集合的最低吞吐量是400 RU/s,你可以根据业务负载随时调整,和固定集合的调整方式一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:35:24