创建无分区收集时,预配置的吞吐量收集应具有分区键错误

时间:2019-07-29 06:58:45

标签: c# azure-cosmosdb

我创建了一个文档db数据库,其中RU在数据库级别而不是在容器级别共享。是否可以在同一数据库下创建没有分区的集合?当我尝试对下面的代码执行相同操作时,出现错误“已配置的吞吐量收集应具有分区键”。

 private async Task CreatePartitionLessCollection()
 {
        try
        {


            DocumentClient documentClient = new DocumentClient(new Uri(EndpointUrl), PrimaryKey);
            DocumentCollection myCollection = new DocumentCollection();
            myCollection.Id = "MyCollection";
            await documentClient.CreateDocumentCollectionAsync(
                UriFactory.CreateDatabaseUri("MyDB"), myCollection, new RequestOptions { OfferThroughput = 400 });
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.GetBaseException().Message);
        }
 }

1 个答案:

答案 0 :(得分:0)

从我的角度重现您的问题,它表明没有分区键我们无法创建预配置的吞吐量集合。因为数据库级别的吞吐量设置将在所有内部共享 集合:

enter image description here

请参阅此document以了解有关设置数据库级别或容器级别吞吐量的选择。如果要创建一些分区集合和一些非分区集合,则可以尝试将其设置为集合级别

一些关键声明:

  

为单个容器配置吞吐量将确保   保留该特定Cosmos DB容器的吞吐量(即,   表,集合或图形)由吞吐量SLA支持   该容器。这使您可以对   您在任何给定时间点所需的容器吞吐量。上   另一方面,在Cosmos DB数据库上配置吞吐量,   允许您在所有容器之间共享吞吐量   属于那个数据库。这使您可以集中配置的资源   Cosmos数据库数据库中一组容器的吞吐量。