从 azure cosmos db 返回项目列表的有效方法
Efficient way of returning item list from azure cosmos db
我想在 azure cosmos db 中存储以下形式的数据:
{
"id": "guid",
"name": "a name"
"tenantId": "guid",
"filter1": true,
"filter2": false,
"hierarchicalData" :{}
}
每个文档的大小最多为几兆字节。
我需要能够 return {id, name} 列表(每个租户 100 < count < 10k)以通过 {tenantId,filter1,filter2} 进行给定搜索。
从文档中,我看到我可以使用投影进行 SQL 查询,但不确定是否有更好的方法。
有没有一种理想的方法可以在有效使用 RU 的同时完成上述操作?
Is there an ideal way to do the above while making efficient use of
RUs?
也许很难说有一个最好的方法来有效地利用 RU 并提高查询性能。
当然,根据您的情况,您可以使用 SQL 查询来获取具有特定过滤器的数据。我只是提供几种提高查询性能的方法,如下所示:
1.Add 分区键。
如果你的数据是分区的,那么当你用sql提供分区键时,它只能扫描特定的分区,从而节省RU。请参考document.
2.Use最近的sdk.
Azure Cosmos DB SDK 不断改进以提供最佳性能。请参阅 Azure Cosmos DB SDK 页面以确定最新的 SDK 并查看改进。
3.Exclude 未使用的索引路径以加快写入速度。
Cosmos DB 的索引策略还允许您通过利用索引路径(IndexingPolicy.IncludedPaths 和 IndexingPolicy.ExcludedPaths)指定要在索引中包含或排除的文档路径。对于预先知道查询模式的场景,使用索引路径可以提高写入性能并降低索引存储。
4.Use 如果数据太大,继续标记。
使用连续令牌对数据进行分页以改进查询 performance.Doc:
https://www.kevinkuszyk.com/2016/08/19/paging-through-query-results-in-azure-documentdb/
更多详情,请参考here。
我想在 azure cosmos db 中存储以下形式的数据:
{
"id": "guid",
"name": "a name"
"tenantId": "guid",
"filter1": true,
"filter2": false,
"hierarchicalData" :{}
}
每个文档的大小最多为几兆字节。
我需要能够 return {id, name} 列表(每个租户 100 < count < 10k)以通过 {tenantId,filter1,filter2} 进行给定搜索。
从文档中,我看到我可以使用投影进行 SQL 查询,但不确定是否有更好的方法。
有没有一种理想的方法可以在有效使用 RU 的同时完成上述操作?
Is there an ideal way to do the above while making efficient use of RUs?
也许很难说有一个最好的方法来有效地利用 RU 并提高查询性能。
当然,根据您的情况,您可以使用 SQL 查询来获取具有特定过滤器的数据。我只是提供几种提高查询性能的方法,如下所示:
1.Add 分区键。
如果你的数据是分区的,那么当你用sql提供分区键时,它只能扫描特定的分区,从而节省RU。请参考document.
2.Use最近的sdk.
Azure Cosmos DB SDK 不断改进以提供最佳性能。请参阅 Azure Cosmos DB SDK 页面以确定最新的 SDK 并查看改进。
3.Exclude 未使用的索引路径以加快写入速度。
Cosmos DB 的索引策略还允许您通过利用索引路径(IndexingPolicy.IncludedPaths 和 IndexingPolicy.ExcludedPaths)指定要在索引中包含或排除的文档路径。对于预先知道查询模式的场景,使用索引路径可以提高写入性能并降低索引存储。
4.Use 如果数据太大,继续标记。
使用连续令牌对数据进行分页以改进查询 performance.Doc: https://www.kevinkuszyk.com/2016/08/19/paging-through-query-results-in-azure-documentdb/
更多详情,请参考here。