Различайте ключи раздела и диапазоны ключей раздела в Azure Cosmos DB - PullRequest
0 голосов
/ 09 июля 2019

Мне трудно понять разницу между ключами разделов и диапазонами ключей разделов в Cosmos DB.В целом я понимаю, что ключ раздела в cosmos db - это свойство / путь JSON в каждом документе, который используется для равномерного распределения данных между несколькими разделами, чтобы избежать неравномерных «горячих разделов», а ключ раздела решает физическое размещение документов.

Но мне не ясно, каков диапазон ключей разделов ... это просто диапазон буквальных разделов, начиная с первого до последнего, сгруппированного по каждому отдельному разделу в коллекции?Я знаю, что диапазоны можно найти, выполнив запрос GET к конечной точке https://{databaseaccount}.documents.azure.com/dbs/{db-id}/colls/{coll-id}/pkranges, но просто концептуально хочу быть уверенным, что я понимаю.Также до сих пор не ясно, как детально просмотреть конкретный ключ раздела, к которому принадлежит конкретный документ.

https://docs.microsoft.com/en-us/rest/api/cosmos-db/get-partition-key-ranges

1 Ответ

1 голос
/ 09 июля 2019

Вы определяете свойство в ваших документах, которое хотите использовать в качестве ключа раздела. Cosmos db хэширует значение этого свойства для всех документов в коллекции и сопоставляет разные ключи разделов с различными физическими разделами. Со временем ваша коллекция будет расти, и вы можете получить 100 логических разделов, распределенных по 5 физическим разделам.

Диапазоны ключей разделов - это просто наборы ключей разделов, сгруппированных по физическим разделам, которым они сопоставлены. Таким образом, в этом примере вы получите 5 пакетов с min/max значением ключа раздела для каждого.

Обратите внимание, что pkranges может измениться, поскольку в будущем по мере роста вашей коллекции физические разделы будут разделяться, в результате чего некоторые ключи разделов будут перемещены в новый физический раздел, в результате чего часть предыдущего диапазона будет перемещена в новое место.

...