批量插入Azure Cosmos DB

时间:2020-07-10 06:48:43

标签: azure-cosmosdb

我发现一些样本表明以下内容应为大容量插入内容:

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);
}

我正在具有10个实例的Azure功能(应用程序计划)上运行代码。但是我可以看到它大约只有4次插入/秒。使用SQL批量插入,我可以每秒完成数千次。看来上面不是批量插入我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

检查您的Cosmos DB Scale设置。我遇到了同样的问题。当您从手动更改为自动缩放时,默认的最大RU设置为4000。根据您的方案将其更改为适当的数字。您可以使用https://cosmos.azure.com/capacitycalculator/

enter image description here