Прежде всего, ваше предположение о 2 ^ 128 целочисленных ключах неверно, так как вы упомянули, что хотите хранить IP V6-адреса. Адрес IP V6 имеет длину 128 бит. Чтобы сохранить его как целое число, вам нужно 128/32 или 4 32-битных целых числа на адрес. Таким образом, правильная оценка составляет 2 ^ 128 возможных адресов * 4 целых числа для общего количества 2 ^ 128 * 4 ключей 32-битных целых чисел ....
В любом случае я хочу, чтобы это было в байтах, поэтому мы просто перейдем на 2 ^ 128 возможных адресов * 4 целых числа * 4 байта на целое число = 5,44 * 10 ^ 39 байтов. После этого просто следуйте расчетам Андреаса, и вы получите больше ...
Как говорится, идея IP V6 заключается в том, что у нас больше адресов, чем нам когда-либо понадобится. Поэтому я очень сомневаюсь, что где-то около 2 ^ 128 будет назначено на многие годы. Самое большее, если мы перейдем к IP V6 прямо сейчас, у нас будет назначено адресное пространство IP V4 и ничего больше, и хотя число IP-адресов увеличивается с каждым годом не так сильно.
В любом случае кажется, что вы не знаете, что храните, поскольку схема не определена, поэтому таблица Azure может быть тем, что вам нужно. В основном это ключ / значение. Для каждого IP-адреса вы можете хранить совершенно разные свойства. И действительно легко добавить другое свойство / удалить другое свойство, используя операции обновления / вставки / слияния. Но если вы хотите, чтобы к вашим данным применялась некоторая единообразие, используйте SQL. Это правда, что вам придется изменять схему по мере их изменения, но это приведет к тому, что каждая строка (и, следовательно, IP-адрес) будет иметь одинаковые данные. В противном случае легко пропустить «обязательные» столбцы / свойства или ввести их с ошибкой, если у вас несколько приложений. Но это действительно зависит от того, что вы хотите сделать. Больше вы цените целостность данных или гибкость свойств? Даже если схему нужно изменить, есть команды для добавления / удаления столбцов из схемы. Более того, вы хотите, чтобы на каждом IP-адресе хранились одинаковые свойства или каждый из них имел разные свойства. Я считаю, что способ таблицы Azure, вероятно, занимает меньше памяти на адрес, чем способ SQL, если вы не используете большинство свойств для данного IP-адреса. Так что все зависит от того, что вы ищете.