在 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。
我正在使用 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。