Вероятность столкновения подстроки? - PullRequest
0 голосов
/ 10 января 2020

Как можно рассчитать вероятность того, что два гида начнут с одинакового числа символов N?

Ситуация:

Мы рассматриваем использование первых n символов из guid в качестве ключа раздела коллекции cosmosdb. Мы не хотим использовать весь guid, потому что не хотим, чтобы каждый документ находился в своем собственном логическом разделе, но мы также, вероятно, не хотим просто использовать первый символ guid в качестве ключа раздела, потому что мы могли бы затем сохраните слишком много документов в разделе и превысите лимит раздела.

Пример:

Так что, если мы используем первые 4 (число, выбранное случайным образом из воздуха) символы guid в качестве ключа разделения, как мы можем приблизительно рассчитать, сколько документов будет храниться в каждом разделе в месяц? Для этого примера давайте предположим, что мы говорим о разделении 4 миллионов документов в месяц.

Обновление

Похоже, что у каждого символа guid есть 16 потенциальных значений. 0-9 и af (набор шестнадцатеричных символов). Предполагая, что символы Guid являются случайными (я не уверен, что это правда), должно быть 16 ^ 4 возможных четырехгидарных запусков guid (~ 65k комбинаций). Следовательно, самое большее, у нас будет 65 тыс. Разделов. И если предположить, что при случайном распределении 4 000 000 документов на 65 000 разделов должно быть примерно 61 документ на раздел, верно?

1 Ответ

0 голосов
/ 10 января 2020

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

Нет встроенной функции предварительного просмотра в cosmos db, чтобы показать использование раздела раньше хранение данных. Если вы относитесь к ним перед использованием, вы можете сначала рассчитать самостоятельно. Например, используйте GROUP BY для разделения данных по первым 4 символам с помощью guid.

...