Azure cosmosdb Azure CosmosDB-类似字典的对象集合的分区策略
我们需要从内存缓存中移出大量数据,因为它占用了太多的空间。为此,我们正在考虑CosmosDB。数据结构和用例在底部提供。在测试过程中,我发现了一些无法解决的问题:单个项目检索花费的时间太长(大约2秒),事务似乎比它应该花费的更多,并且无法决定最佳吞吐量。 因此,我有以下问题:Azure cosmosdb Azure CosmosDB-类似字典的对象集合的分区策略,azure-cosmosdb,Azure Cosmosdb,我们需要从内存缓存中移出大量数据,因为它占用了太多的空间。为此,我们正在考虑CosmosDB。数据结构和用例在底部提供。在测试过程中,我发现了一些无法解决的问题:单个项目检索花费的时间太长(大约2秒),事务似乎比它应该花费的更多,并且无法决定最佳吞吐量。 因此,我有以下问题: 如何使用提供的数据结构处理分区?如果它真的有效果呢 一周内的总体吞吐量应该很低(每秒数百个请求),但我们预计,请求会及时出现峰值(几十倍以上)。在使用率较低的情况下,我们如何配置容器以绕过节流风险而不支付过高的费用 我应该
[
{
id:“”,
散列:“”
数据:[{},{},…]
},
...
]
该集合有三个用例:
我有一些问题。您存储了多少数据?您是否正在使用Cosmos SQL API并将id作为分区键?您正在使用id查询数据吗?谢谢。在10GB(大约3GB)下,我只使用SQLAPI查询整个容器,对于特定的项目,我使用方法GetItemAsync。我将id设置为分区键(也尝试使用带有常量值的假字段),是的,我正在按id进行查询。是否在GetItemAsync请求选项中传递分区键值?每个项目平均有多大?谢谢。更准确地说,我使用了ReadItemAsync,是的,我使用分区键作为请求选项“container.ReadItemAsync(id,new PartitionKey(id))”。项目平均应在3kb左右
[
{
id: '<unique_id>',
hash: '<custom_hash>'
data: [{}, {},...]
},
...
]