在 CosmosDB SQLAPI 中选择正确的分区键的问题

Issue with selecting the right partition key in CosmosDB SQLAPI

我正在使用 Azure 数据工厂将所需数据从数据湖复制到 cosmos db。

在复制样本大小为 100 时,我发现 运行 在大约 5 分钟内完成。 在复制 100 万的样本量时,我看到 运行 在大约 1 小时内完成。

我为 cosmos db 容器设置的吞吐量是 ~2000 RU/s。我只使用了 1 个容器。

基于此文档:https://docs.microsoft.com/en-us/azure/cosmos-db/partitioning-overview#choose-partitionkey

我已将分区键设置为 /PersonnelNumber(数据中大约有 100 万个唯一的 PersonnelNumber 值)。你能帮我理解这是否是正确的分区键吗?还是导致 运行 变慢?

这两点令人困惑 - 分区键应该:

是一个 属性 具有不变的值。如果 属性 是您的分区键,则无法更新 属性 的值。 具有高基数。换句话说,属性 应该具有广泛的可能值。 谢谢!

文档中没有"PersonnelNumber"。相反,您有 "Person.PersonnelNumber" 字段。因此,Cosmos DB 无法在文档中找到 "PersonnelNumber",因此它用空值填充 "PersonnelNumber" 的分区字段。

将字段名称从 "Person.PersonnelNumber" 更改为 "PersonnelNumber" 然后上传。

如果每个分区键都有一个唯一的值,那么它有利于写入。在您的情况下,PersonnelNumber 是写吞吐量的一个很好的分区键,因为它具有唯一值。但是,您将无法更新 PersonnelNumber。