有什么方法可以在查询 Cosmos Db 时对数据进行逻辑分区?就像您可以使用散列和模函数一样

Is there any way to logically partition data in Cosmos Db while quering them? like you can do with hashing and modulo functions

我需要 运行 一组从特定 cosmos 数据库容器获取数据的持久数据处理活动。我在容器中看不到可以帮助我在 azure 函数之间或多或少均匀地分配负载的字段。我想知道是否有任何哈希函数可以让我使用 mod 函数进行经典分区,假设我决定 运行 喜欢来自 orchestrator 的 10 个活动并查询数据

select * from c where hash(c.id) % 10 = {functionNumber}.

我知道它会对 10 个功能中的每一个进行全面扫描,但没关系,在这种情况下均匀分布负载更为重要。持久不是因为数据量大,而是因为数据处理的复杂性

替代按字段散列的方法,这似乎不是 Cosmos 的一部分SQL我决定使用模函数和 _ts,它是 Cosmos Db 中的时间戳

例如,总共 10 个中的第 5 个 activity 将查询这样的数据:SELECT VALUE root FROM root WHERE (root["_ts"] % 10) = 5)