Azure Cosmos db:批量删除记录时请求超过速率限制

Azure Cosmos db:批量删除记录时请求超过速率限制,azure,azure-cosmosdb,Azure,Azure Cosmosdb,我有一个用户使用从一个容器中批量删除大约50K个文档 同时,另一个用户正在尝试登录web应用程序(连接到同一cosmos db),但由于超过了速率限制,请求失败 在这种情况下,最好的做法是什么,以避免所述的服务短缺 a) 我应该按收款方式付款吗? b) 我可以在发出请求时设置代码中的批量操作消耗的RU的上限吗? c) 还有别的办法吗 有关我当前(幼稚/新手)实现的更多详细信息: 两个集合:RawDataCollection和TransformedDataCollection 分区键值是客户帐号

我有一个用户使用从一个容器中批量删除大约50K个文档

同时,另一个用户正在尝试登录web应用程序(连接到同一cosmos db),但由于超过了速率限制,请求失败

在这种情况下,最好的做法是什么,以避免所述的服务短缺

a) 我应该按收款方式付款吗? b) 我可以在发出请求时设置代码中的批量操作消耗的RU的上限吗? c) 还有别的办法吗

有关我当前(幼稚/新手)实现的更多详细信息:

  • 两个集合:RawDataCollection和TransformedDataCollection
  • 分区键值是客户帐号
  • 在数据库级别设置RU(当前开发人员部署至少有400RU)
  • 两个集合中都需要大容量插入/删除操作
  • 用户配置文件数据(用于登录等)存储在RawDataCollection中
  • 就服务级别而言,批量操作的优先级较低,这意味着如果有更高优先级的任务出现,它可能会被搁置
  • 通常,当用户登录时,检索少量信息。这是服务级别方面的高优先级

  • 建议不要将存储过程用于批量删除操作。存储过程仅在主副本上运行,这意味着它们只能利用已配置的总RU/s的1/4。在中使用SDK客户端进行批量操作将获得更好的吞吐量利用率和更高的效率

    您是在数据库级别还是在容器级别提供吞吐量取决于以下几点。如果有大量容器获得大致相同数量的请求和存储,那么数据库级别的吞吐量就可以了。如果请求和存储是不对称的,那么就用它们自己的专用吞吐量提供那些与其他容器有很大差异的容器

    不能直接限制容器上的请求。您需要在应用程序中实现

    总的来说,如果您已经设置了400 RU/s并尝试批量删除50K条记录,那么您的设置不足,需要提高吞吐量。此外,如果你的工作负荷很高,长时间的小到没有要求的短时间的高容量,你可能想考虑使用或