запросить базу данных космоса без включения перекрестного запроса - PullRequest
1 голос
/ 15 октября 2019

При запросе cosmos db, есть опция установки enableCrossPartitionQuery как true. Мне интересно, что произойдет, если я не установил его? Какой раздел будет использоваться для запроса?

спасибо

1 Ответ

1 голос
/ 15 октября 2019

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

Если вы не установили, возможно, вы могли увидеть ниже ошибку:

enter image description here

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

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


Я протестировал пример проекта: https://github.com/Azure-Samples/azure-cosmos-db-sql-api-nodejs-getting-started.git и для него не требуется ключ разделадействительно, когда контейнер разбит на части.

Однако, на основе утверждений в cosmos db rest api :

enter image description here

Я протестировал Java SDK, и он требует ключ разделения, когда я запрашиваю многораздельный контейнер. В любом случае, я хочу сказать, что если вы встретили ошибку, которая указывает на отсутствие ключа раздела, вы можете попытаться добавить свойство enableCrossPartitionQuery = true для ее решения. В основном я все же предлагаю вам предоставить ключ раздела для производительности запросов.

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