Данные на основе местоположения в хранилище таблиц Azure

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

Вопрос в том, как лучше всего спроектировать таблицу так, чтобы она была масштабируемой и имела высокую производительность? Я думал о таблице, содержащей широту в качестве ключа раздела (pk), долготу в качестве ключа строки (rk), затем столбец dataid, который сопоставляется с другой таблицей, которая использует этот dataid в качестве ключа раздела.

Я думаю, что использование двустороннего поиска повысит мою производительность, поскольку оба поиска будут мгновенными. Это правильный образ мыслей? Я где-то читал, что искать ключи разделов, попадающие в какой-то диапазон, плохо. Если это так, как мне подойти к этому? Как обычно реализуются эти функции в картах Google и наборе карт Apple?


person HungryMonkey    schedule 14.02.2015    source источник


Ответы (1)


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

http://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/

Для чтения Azure Table Storage предназначено для быстрых точечных запросов, когда клиент знает ключ секции и ключ строки, поэтому вам необходимо учитывать это в своей модели данных. Для записи вам нужно равномерное распределение и избегать шаблона добавления / добавления для достижения высокого масштаба.

person Vinay Shah - Microsoft    schedule 17.02.2015