Azure cosmosdb 批量插入Azure Cosmos数据库

Azure cosmosdb 批量插入Azure Cosmos数据库,azure-cosmosdb,Azure Cosmosdb,我可以找到一些样品,说明以下应该是批量插入: var options = new CosmosClientOptions() { AllowBulkExecution = true, MaxRetryAttemptsOnRateLimitedRequests = 1000 }; Client = new CosmosClient(ConnStr, options); public async Task AddVesselsFromJSON(List<JObject> vessels

我可以找到一些样品,说明以下应该是批量插入:

var options = new CosmosClientOptions() { AllowBulkExecution = true, MaxRetryAttemptsOnRateLimitedRequests = 1000 };
Client = new CosmosClient(ConnStr, options);

public async Task AddVesselsFromJSON(List<JObject> vessels)
{
    List<Task> concurrentTasks = new List<Task>();
    foreach (var vessel in vessels)
    {
        concurrentTasks.Add(VesselContainer.UpsertItemAsync(vessel));
    }
    await Task.WhenAll(concurrentTasks);
}
var options=new-CosmosClientOptions(){AllowBulkExecution=true,MaxRetryAttemptsOnRateLimitedRequests=1000};
客户端=新的CosmosClient(ConnStr,选项);
公共异步任务AddVesselsFromJSON(列出容器)
{
List concurrentTasks=新列表();
foreach(容器中的var容器)
{
Add(VesselContainer.UpsertItemAsync(容器));
}
等待任务。WhenAll(concurrentTasks);
}

我正在Azure函数(应用程序计划)上运行代码,有10个实例。但是我可以看到它只有4秒左右。使用SQL批量插入,我可以每秒执行数千次。上面似乎不是我遗漏了什么吗?

检查您的Cosmos DB Scale设置。我遇到了同样的问题。从手动更改为自动缩放时,默认最大RU设置为4000。根据您的场景将其更改为适当的数字。你可以用


我还没有在SDK中使用大容量插入,但我想先减少变量,例如,在本地运行CosmosDB emulator时,您会看到什么,以及RU消费的统计数据。对于非常大的文档,RU很快就被写入占用了。您可以使用bulk executor sdk实现大容量插入操作:但bulk应该包含在最新版本和3中。不需要聚会。