从Azure Cosmos DB返回项目列表的有效方法

时间:2018-10-01 08:13:22

标签: azure-cosmosdb azure-cosmosdb-sqlapi

我想将以下形式的数据存储在azure cosmos db中:

{
  "id": "guid",
  "name": "a name"
  "tenantId": "guid",
  "filter1": true,
  "filter2": false,
  "hierarchicalData" :{}
}

每个文档的大小最多为几兆字节。

我需要能够通过{tenantId,filter1,filter2}返回给定搜索的{id,name}列表(100

从文档中,我看到可以使用投影进行SQL查询,但是不确定是否有更好的方法。

在有效利用RU的同时,是否有理想的方法来完成上述操作?

1 个答案:

答案 0 :(得分:0)

  

有没有一种理想的方法可以有效地利用   RU?

也许很难说有一种有效利用RU并提高查询性能的最佳方法。

当然,根据您的情况,您可以使用sql查询来获取具有特定过滤器的数据。我只是提供几种改善查询性能的方法,如下所示:

1。添加分区键。

如果数据已分区,则在为分区键提供sql时,它只能扫描特定分区,以便保存RU。请参阅document

2。使用最近的SDK。

Azure Cosmos DB SDK不断得到改进,以提供最佳性能。请参阅Azure Cosmos DB SDK页面以确定最新的SDK并查看改进。

3。从索引中排除未使用的路径,以加快写入速度。

Cosmos DB的索引策略还允许您利用索引路径(IndexingPolicy.IncludedPaths和IndexingPolicy.ExcludedPaths)指定要包括在索引中或从索引中排除的文档路径。使用索引路径可以提高写入性能,并降低索引存储量事先知道查询模式的方案。

4。如果数据太大,请使用延续令牌。

使用延续令牌分页数据以提高查询性能.Doc: https://www.kevinkuszyk.com/2016/08/19/paging-through-query-results-in-azure-documentdb/

更多详细信息,请参阅here。希望对您有帮助。