Как получить список физических разделов в Azure CosmosDb, есть ли способ получить список физических разделов? - PullRequest
2 голосов
/ 05 февраля 2020

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

Справочная информация: я работаю над приложением IOT, и, к сожалению, набор ключей раздела очень плохой {deviceID} + {dd / mm / yyyy чч: мм: се c:}, что означает, технически говоря, в каждом логическом разделе будет очень мало элементов (никогда не будет превышать 10 ГБ), но я чувствую, что создано огромное количество физических разделов, что заставляет мои RU выполнять Трещина. Как получить список физических разделов

Ответы [ 3 ]

0 голосов
/ 06 февраля 2020

Мы можем получить список диапазонов ключей секционирования, используя этот API . Диапазоны ключей разделов могут измениться в будущем при изменении данных.

Физические разделы являются внутренними реализациями. У нас нет никакого контроля над размером или количеством физических разделов, и мы не можем контролировать отображение между логическими и физическими разделами.

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

0 голосов
/ 15 февраля 2020

Раньше эта информация отображалась прямо на портале, но она была удалена при редизайне.

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

Информация возвращается в JSON, возвращенном на портал, но не показывается нам. Для коллекций с выделенной пропускной способностью (т. Е. Без использования выделенной пропускной способности базы данных) эта закладка javascript отображает информацию.

javascript:(function () {     var ss = ko.contextFor($(".ext-quickstart-tabs-left-margin")[0]).$rawData().selectedSection();      var coll = ss.selectedCollectionId();      if (coll === null) {         alert("Please drill down into a specific container");     }     else {         alert("Partition count for container " + coll + " is " + ss.selectedCollectionPartitionCount());     } })();

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

enter image description here

Вы также можете увидеть эту информацию из конечной точки REST pkranges. Это используется SDK. Некоторый код, который работает в V2 SDK ниже

var documentClient = new DocumentClient(new Uri(endpointUrl), authorizationKey,
 new ConnectionPolicy {
  ConnectionMode = ConnectionMode.Direct
 });

var partitionKeyRangesUri = UriFactory.CreatePartitionKeyRangesUri(dbName, collectionName);
FeedResponse < PartitionKeyRange > response = null;

do {
 response = await documentClient.ReadPartitionKeyRangeFeedAsync(partitionKeyRangesUri,
  new FeedOptions {
   MaxItemCount = 1000
  });
 foreach(var pkRange in response) {
  //TODO: Something with the pkRange
 }

} while (!string.IsNullOrEmpty(response.ResponseContinuation));
0 голосов
/ 05 февраля 2020

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

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