具有多个分区键的 Cosmos DB

ibe*_*bbs 6 azure azure-cosmosdb

我们正在考虑使用单个 Cosmos DB 集合在使用租户 ID 作为分区键多租户环境中保存多种文档类型租户 id路径可能会在每个文档类型中发生变化,因此我正在考虑将分区键暴露给 Cosmos DB 以启用正确的分区/查询。

我注意到 DocumentCollection.PartitionKey 的 Paths 属性是一个集合,因此想知道在创建文档集合期间是否可以传递多个路径以及这可能是什么行为。理想情况下,我希望 Cosmos 扫描这些路径中的每一个,并使用第一个值或值的聚合作为分区键,但找不到任何文档表明这确实是这种行为。

此属性MSDN 文档非常无用,而且相关 文档似乎都没有回答这个问题。有谁知道或以前在集合中使用过多个分区键路径?

明确地说,在创建 DocumentCollection 时,在 PartitionKey.Paths 集合中指定多个分区键时,我正在寻找有关 Cosmos DB 行为和/或直接体验的其他文档的链接。

此问题也已发布在Azure 社区支持论坛中

谢谢,伊恩

Ara*_* R. 3

执行此操作的最佳方法是分配一个通用分区键,例如 \xe2\x80\x9cpk\xe2\x80\x9d,然后根据每个对象类型分配此值。例如,您可以在序列化期间通过为要序列化到 \xe2\x80\x9cpk\xe2\x80\x9d 的每个类设置不同的属性来管理此问题。

\n\n

分区键在 DocumentCollection.PartitionKey 中是一个数组的原因是为了允许我们引入复合分区键,其中多个属性的组合,例如 (\xe2\x80\x9cfirstName\xe2\x80\x9d, \xe2\x80\x9clastName\xe2 \x80\x9d) 形成分区键。这与您需要的有点不同。

\n