gpt4 book ai didi

azure-cosmosdb - Cosmos DB Continuation Token 如何工作?

转载 作者:行者123 更新时间:2023-12-04 14:44:48 35 4
gpt4 key购买 nike

乍一看,延续 token 在 Cosmos DB 中的作用很明显:将它附加到下一个查询会为您提供下一组结果。但是“下一组结果”究竟是什么意思?
是不是意思:

  • 下一组结果就好像原始查询在第一次查询时没有分页完全执行一样(跳过适当数量的文档)?
  • 下一组结果就好像现在已经执行了原始查询(跳过了适当数量的文档)?
  • 完全不同的东西?

  • 答案 1. 似乎更可取,但不太可能,因为服务器需要存储无限量的状态。但是答案 2. 也有问题,因为它可能会导致不一致,例如如果底层数据在页面查询之间发生了变化,则同一文档可能会跨页面多次提供。

    最佳答案

    Cosmos DB 查询执行在服务器端是无状态的。继续 token 用于重新创建索引的状态并跟踪执行进度。
    “下一组结果”意味着,从上次执行的“书签”再次执行查询。此书签由延续 token 提供。

  • 在延续过程中创建的文档

  • 根据正在执行的插入和查询的位置,它们可能会或可能不会返回。
    示例:
    SELECT * FROM c ORDER BY c.someValue ASC
    让我们假设书签的 someValue = 10,查询引擎使用 someValue = 10 的延续标记恢复处理。
    如果您要在查询执行之间插入一个 someValue = 5 的新文档,它 不会出现 在下一组结果中。
    如果新文档插入到 > 书签的“页面”中,则 会出现在下一组结果中
  • 延续期间更新的文档

  • 与上述相同的逻辑也适用于更新
    (见#4)
  • 继续期间删除的文档

  • 他们 不会出现 在下一组结果中。
  • 重复的机会

  • 在以下查询的情况下,
    SELECT * FROM c ORDER BY c.remainingInventory ASC
    如果在第一组结果之后更新了剩余库存,并且它现在满足第二页的 ORDER BY 标准,则文档 会出现再次。

    Cosmos DB 不提供跨查询页面的快照隔离。
    但是,根据产品团队的说法,这是一种非常罕见的情况,因为对延续的查询非常快,并且在大多数情况下,所有查询结果都在第一页上返回。

    关于azure-cosmosdb - Cosmos DB Continuation Token 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63457763/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com