Проблема с выбором правильного ключа раздела в SQLOSI CosmosDB - PullRequest
0 голосов
/ 30 апреля 2020

Я использую Azure Фабрику данных для копирования необходимых данных из озера данных в базу данных космоса.

При копировании выборки размером 100 я вижу, что цикл завершен через ~ 5 минут. При копировании выборки размером в 1 миллион я вижу, что прогон завершен за ~ 1 час.

Пропускная способность, которую я установил для контейнера cosmos db, составляет ~ 2000 RU / с. Я использую только 1 контейнер.

На основании этой документации: https://docs.microsoft.com/en-us/azure/cosmos-db/partitioning-overview#choose -partitionkey

Я установил ключ раздела как / PersonnelNumber (их ~ 1 миллион уникальные значения PersonnelNumber в данных). Не могли бы вы помочь мне понять, если это правильный ключ раздела? Или это вызывает замедление работы?

Эти 2 пункта сбивают с толку - Ключ разделения должен:

Быть свойством, значение которого не изменяется. Если свойство является вашим ключом раздела, вы не можете обновить значение этого свойства. Иметь высокую мощность Другими словами, свойство должно иметь широкий диапазон возможных значений. Спасибо!

1 Ответ

1 голос
/ 30 апреля 2020

В документе нет "PersonnelNumber". Вместо этого у вас есть поле «Person.PersonnelNumber». Таким образом, Cosmos DB не может найти «PersonnelNumber» в документе, поэтому он заполняет поле раздела «PersonnelNumber» пустым значением.

измените имя поля с «Person.PersonnelNumber» на «PersonnelNumber» и затем загрузите.

Если у каждого ключа секционирования есть уникальное значение, это хорошо для записи. В вашем случае PersonnelNumber является хорошим ключом разделения для пропускной способности записи, поскольку он имеет уникальные значения. Но вы не сможете обновить PersonnelNumber.

...