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

如何在适用于MongoDB API的Cosmos DB中执行批量数据上传

100GB JSON文件导入Cosmos DB(MongoDB API)解决方案

关于直接上传JSON的功能说明

Cosmos DB本身没有内置单步直接上传整份JSON文件的功能,所有批量数据导入都需要通过兼容MongoDB生态的工具、官方迁移工具或者自定义代码实现。

批量上传实现方案

你可以根据自己的技术栈和预处理需求选择以下方案:

  • 官方数据迁移工具导入
    适配MongoDB API的Cosmos DB官方迁移工具支持本地JSON文件批量导入,你只需要提前配置Cosmos DB的MongoDB连接字符串,根据你预配的RU(请求单元)容量调整批量写入批次大小、并发数即可。针对100GB的超大JSON文件,建议提前拆分为100MB~1GB的小分片文件,避免单文件处理时内存溢出。
  • MongoDB原生mongoimport工具导入
    Cosmos DB MongoDB API完全兼容MongoDB原生协议,你可以直接用mongoimport命令行工具完成导入,参考命令如下:
    mongoimport --uri "cosmos-db-mongodb-连接字符串" --collection 目标集合名 --file 本地JSON文件路径 --batchSize 1000 --numInsertionWorkers 8
    
    如果你的JSON是单个数组合集格式,需要追加--jsonArray参数;如果是每行存储一个独立JSON文档的行存格式,无需额外参数。导入前建议临时调高集合的RU吞吐量,导入完成后再调回日常值降低成本。
  • 自定义代码批量写入
    如果你需要在导入前做字段校验、分片键赋值、数据清洗等预处理操作,可以使用任意语言的MongoDB驱动实现流式写入:逐批读取JSON文件中的文档,每批积累1000~5000条后调用insert_many接口批量提交,同时添加429限流错误的重试逻辑,捕获到限流响应后按返回的重试等待时间延迟后再提交下一批。100GB大文件一定要用流式读取,不要一次性加载全量文件到内存。

导入优化建议

  • 导入前提前设置好集合的分片键,创建必要的查询索引,避免导入完成后再建索引消耗大量时间
  • 导入期间关闭集合的非必要索引、诊断日志功能,降低写入额外开销
  • 尽量在和Cosmos DB账户同区域的设备上运行导入任务,减少网络传输延迟

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 08:06:04