CosmosDB хранит диапазоны IP-адресов и выполняет поиск по IP - PullRequest
1 голос
/ 10 июля 2020

Я пытаюсь сохранить диапазоны IP-адресов в cosmosDB, где, например, у меня есть миллионы записей, включая диапазоны вроде 65.55.243.0–65.55.243.255, связанные с другими данными, которые не имеют значения. Может ли кто-нибудь предложить, как сохранить это в космосе, предполагая, что я буду искать по IP-адресу 100% времени, чтобы добраться до диапазона, к которому он принадлежит? В SQL я сделал это, но мне интересно, можно ли это эффективно сделать в CosmosDB. Спасибо! # cosmosdb

1 Ответ

0 голосов
/ 11 июля 2020

Не видя, как выглядят данные, я думаю, вы сможете использовать Cosmos для получения эффективных запросов с использованием нескольких аспектов. Стоит прочитать , как Cosmos выполняет индексирование , которое включает автоматические c индексы диапазонов для строк, таких как IP-адреса. Это означает, что вы можете эффективно запрашивать эти значения, используя собственные строковые функции , включая STARTSWITH или CONTAINS.

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

Помимо этого, вы можете добавить варианты адресных данных в дополнительные свойства для запроса, например {su bnet: 65.55.243.0/24}. Знание su bnet в этом случае позволяет вам эффективно запрашивать все записи по точному совпадению, что обычно кажется наиболее эффективным типом запроса.

В общем, я нашел:

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