azure-cosmosdb - 从 azure cosmos db 返回项目列表的有效方法
问题描述
我想在 azure cosmos db 中存储以下形式的数据:
{
"id": "guid",
"name": "a name"
"tenantId": "guid",
"filter1": true,
"filter2": false,
"hierarchicalData" :{}
}
每个文档的大小将达到几兆字节。
我需要能够为 {tenantId,filter1,filter2} 的给定搜索返回一个 {id, name} 列表(100 < count < 10k,每个租户)。
从文档中,我看到我可以使用投影进行 SQL 查询,但不确定是否有更好的方法。
在有效利用 RU 的同时,是否有理想的方法来完成上述工作?
解决方案
在有效利用 RU 的同时,是否有理想的方法来完成上述工作?
也许很难说有没有一种最好的方法可以有效地利用 RU 并提高查询性能。
当然,根据您的情况,您可以使用 SQL 查询来获取具有特定过滤器的数据。我只是提供了几种提高查询性能的方法,如下所示:
1.添加分区键。
如果你的数据是分区的,那么当你用 sql 提供分区键时,它只能扫描特定的分区,以便保存 RU。请参阅文档。
2.使用最近的sdk。
Azure Cosmos DB SDK 不断改进以提供最佳性能。请参阅 Azure Cosmos DB SDK 页面以确定最新的 SDK 并查看改进。
3.从索引中排除未使用的路径以加快写入速度。
Cosmos DB 的索引策略还允许您通过利用索引路径(IndexingPolicy.IncludedPaths 和 IndexingPolicy.ExcludedPaths)来指定要从索引中包含或排除的文档路径。对于预先知道查询模式的场景,使用索引路径可以提高写入性能并降低索引存储。
4.如果数据太大,使用延续令牌。
使用延续令牌对数据进行分页以提高查询性能。文档: https ://www.kevinkuszyk.com/2016/08/19/paging-through-query-results-in-azure-documentdb/
更多详情,请参阅此处。
推荐阅读
- keras - 图像分割 - Keras 中的自定义损失函数
- r - 如何使用空间多边形数据框制作反应性闪亮地图
- reactjs - React Router 组件安装两次
- .net - 如何在 CIL 中解码呼叫元数据令牌?
- android-studio - 添加新的材料设计依赖项后出现 APPT2 错误
- multi-tenant - Hybris 多租户配置冲突
- python - TimeoutError: [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应
- hyperledger - 如何将订单过滤器应用于超级账本作曲家 rest api
- python-2.7 - if语句麻烦——python
- sql - 使用到列到两列的递归查询