【问题标题】:How to set throughput (RUs) for the whole database in CosmosDB using spring-data-cosmosdb?如何使用 spring-data-cosmosdb 为 CosmosDB 中的整个数据库设置吞吐量(RU)?
【发布时间】:2020-05-01 18:31:57
【问题描述】:

我在我的 Java 项目中使用 spring-data-cosmosdb 依赖项。我想通过属性设置我的数据库的吞吐量,但在现有属性中没有找到这样的选项。您可以在 Azure 门户中看到此选项:

目前我只能使用azure.cosmosdb.database=Core属性设置我的数据库名称。

编辑:

根据容器创建时的信息,如果你在容器级别设置吞吐量,它会在数据库费率的基础上进行收费。 因此,每当我使用 @Document(collection = "Collection1") 运行我的 Spring Boot 应用程序并且容器不存在时,除了数据库吞吐量之外,它还会创建一个具有默认 4000 RU 的容器......

所以我的问题是:我如何需要创建一个具有固定吞吐量的数据库而不是创建具有任何吞吐量的容器,而是使用数据库级 RU 设置?

【问题讨论】:

  • 你想为 wjole 集合设置它吗?
  • 是的,我想为整个集合设置,因为设置容器的吞吐量会增加我的数据库使用的总 RU,根据他们的信息:“您可以选择为容器提供专用吞吐量在已配置吞吐量的数据库中。此专用吞吐量量不会与数据库中的其他容器共享,并且不计入您为数据库配置的吞吐量中。此吞吐量量将与您配置的吞吐量量一起计费数据库级别。”
  • 我现在一头雾水,collection和container是一样的
  • 对不起,我的意思是数据库。编辑了帖子。

标签: azure spring-boot spring-data-jpa azure-cosmosdb


【解决方案1】:

我快速浏览了 SDK 代码。目前似乎没有办法使用 SpringBoot+Spring-Data-Cosmos 为数据库设置 RU。

您为创建的容器看到的 4000 RU 是默认值。 您可以使用以下注释为单个容器设置 RU。

@Document(collection = "collection1", ru="1000")

【讨论】:

    【解决方案2】:

    我猜你可以用下面的代码实现同样的效果,

     // Java Sync SDK implementation for creating and the replacing the throughput of a Database
    DatabaseOfferReplace databaseLevelSyncImplementation = new DatabaseOfferReplace();
    databaseLevelSyncImplementation.createSharedThroughputDatabase();
    databaseLevelSyncImplementation.executeOfferReplace();
    

    这是sample

    【讨论】:

    • 如何使用 spring-boot 做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 1970-01-01
    • 2020-02-15
    • 2023-03-22
    相关资源
    最近更新 更多