正如 MS 支持人员最近告诉我的那样,使用“GET”在 RU 的使用方面比 SQL 查询要高效得多。我想知道是否可以(在 azure.cosmos python 包中或对 REST API 的自定义 HTTP 请求中)通过其唯一的“id”字段(我为其生成了 GUID)获取文档,而无需 SQL 查询。
显示的每个示例都使用文档的链接/路径,该链接/路径是使用文档的“_rid”元数据构建的,而不是创建文档时设置的“id”字段。
我使用自己编写的批量 upsert 存储过程来创建新文档,并且从不检索每个文档的元数据(我有大约 1 亿个文档),因此检索 _rid 相当于检索文档本身。
最佳答案
ReadDocument
方法比 SQL 查询高效得多的原因是它使用 _rid
而不是用户生成的字段,甚至是必需的 id 字段。这是因为 _rid
不仅仅是一个唯一值,它还是 encodes information关于该文档的物理存储位置。
举个例子来说明其工作原理,假设您正在向某人解释本周末的聚会地点。您可以使用房屋名称“我的 friend Ryan's house”,也可以使用地址“123 ThatOne Street Somewhere, WA 11111”。它们都是唯一的标识符,但对于试图到达那里的人来说,其中一个比另一个更有效。
告诉某人去你 friend 家就像使用你自己的id
。它确实映射到一个特定的房子,但人们仍然需要找出该房子的实际位置才能到达那里。使用地址就像使用 _rid
字段一样。仅根据该信息,他们就可以到达聚会地点。当然,在现实世界中,人们可能需要指导,但数据库中的数据存储比大多数城市街道更有组织性,因此地址足以检索文档。
如果您想利用此方法,您需要找到一种使用 _rid
字段的方法。
关于python - "Get"来自 cosmosdb 的 id 文档(不知道 _rid),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57275409/