Ключ раздела Azure Cosmos DB - PullRequest
0 голосов
/ 05 марта 2019

В основном нам нужно выполнить поиск по PublisherId и PlanId в нашей текущей системе, где структура модели выглядит следующим образом: -

Модель издателя: Идентификатор издателя Имя издателя… ..

Модель плана:Идентификатор плана Имя плана Идентификатор издателя… ..

Отношение между издателем и моделью плана равно 1: M.

Сценарий: мы не можем использовать Идентификатор издателя или Идентификатор плана в качестве ключа раздела, поскольку у нас есть 3-5 издателей, которые использовали для отправки массовых данных, которые в скором времени могут превысить ограничение в 10 ГБ.

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Ограничение в 10 ГБ для логического раздела, и вам не стоит об этом беспокоиться, если вы выбираете достаточно широкий ключ ключа ключа.

Я предположил, что ваш документ будет выглядеть примерно так, и создал новый синтетическийключ раздела - publisherIdentifier.

{
  "publisherIdentifier": "1.Content.USA",
  "publisherId": "1",
  "publisherName": "A",
  "publisherType": "Content",
  "publisherCountry": "USA",
  "plans": [{"planId": "P1"},{"planId": "P2"},{"planId": "P3"}]
}

Затем вы можете запросить издателей на основе их плана

SELECT VALUE publisher.publisherName
FROM publisher
JOIN plans IN publisher.plans
where plans.planId = "P1"
0 голосов
/ 06 марта 2019

Исходя из того, что дано, Publisher Id звучит как хороший кандидат в качестве ключа раздела, но недостаточно.

Я бы предложил объединить с другим значением для создания вашего раздела для распространения данных.Тот, который может хорошо работать, это год.Это означает создание идентификатора, который объединяет идентификатор издателя с годом, когда был создан рассматриваемый документ, например <PublisherId>.2019 (можно указать месяц, если у вас имеется очень большое количество документов на издателя в год).

ЭтоПозволяет довольно легко вовремя архивировать старый контент и может обеспечить преимущества для запросов, хотя это зависит от вашей системы.

Как вы заметили, вам нужно будет посмотреть на распространение ваших данных и выбрать раздел, который будет работатьпо мере масштабирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...