Azure cosmosdb 宇宙数据库“;在;运算符SQL查询
我需要根据批处理请求中的唯一密钥按文档(cosmos DB)进行查询 我对上述要求的态度Azure cosmosdb 宇宙数据库“;在;运算符SQL查询,azure-cosmosdb,Azure Cosmosdb,我需要根据批处理请求中的唯一密钥按文档(cosmos DB)进行查询 我对上述要求的态度 因为我的密钥说customerId是唯一的,所以我将customerId设为Id,分区密钥也设为/Id 由于它的批读取请求(每个请求25次调用,每秒10次批处理请求),我在SQL查询中使用“in”操作符,并通过CosmosClient.CreateDocumentQuery函数提取所有文档 例如:我的SQL查询看起来像“Select*fromc,其中c.Id位于('a1','b1')) 以下是我的提要选项:
enableCrospartitionQuery=true
以确保在查询id
列时查询可以扫描所有分区
2.我是否真的很好地利用了按Id查询功能来实现
更快的响应时间?我的分区是否正确
根据您在问题中提到的场景,我相信您已经阅读了的概述。由于您设置了MaxItemCount=-1
(返回所有筛选数据而不分页),您必须按照上述链接中提到的规则平衡RUs设置:
Azure Cosmos容器的最小吞吐量为400个请求单元
每秒(RU/s)。在数据库上设置吞吐量时,
每个容器的最小RU为每秒100个请求单位(RU/s)。
对同一分区密钥的请求不能超过
分配给分区。如果请求超过分配的吞吐量,
请求是有速率限制的。因此,选择分区键很重要
这不会导致应用程序中出现“热点”
如果您不想提高RUS设置,您可以考虑设置<代码> MaxItMeCalt =一些页< /代码>大小,并通过<代码>继续令牌< /代码>加载所有数据。
3.有没有更好的方法可以利用提取数据的能力 数据是键值对的时尚吗如果您的设备ID有一些常见的命名规则,也许您可以考虑以下2个想法:
1.根据本文件调整DeviceID的索引策略:2.尝试按照以下链接创建一个合成分区键:例如,在设备ID之前添加一些后缀。谢谢@Jay Gong。我将详细介绍这些links@Sushma当然,有什么问题,请告诉我。