2013-03-04 4 views
0

Я хотел бы попросить информацию о том, какую модель данных в cassandra я могу использовать для своего проекта. Позвольте мне рассказать об этом подробнее. Как объектно-ориентированная модель в java, у меня есть 2 класса, Events и Locations. Events имеет пару атрибутов, таких как event_title, event_description, event_time, event_locations и так далее. Locations также имеет несколько атрибутов, таких как address_name, longitude, latitude, city и т. Д. И существует связь между Events и Locations. На самом деле у меня есть идея о моей модели данных. но я не уверен, что это может быть реализовано или нет. Я думал, что могу использовать только один CF с составной rowkey (DoubleType: DoubleType) для долготы, latidute и подколонки для метаданных Events в кадре из упорядоченного пространства ключей для разделителя. Было бы лучше, если бы я также привел пример, как это сделать с помощью hector API. В результате мне необходимо внедрить модель данных в cassandra для обработки ниже требований.Модель данных в cassandra

  1. С заданной долготой и широтой мне нужно вернуть события, близкие к данной заданной долготе и широте.
  2. С заданной долготой и широтой и строкой поиска для event_title мне нужно вернуть события, соответствующие указанной строке поиска, и приблизиться к указанной заданной долготе и широте.
    Спасибо.

ответ

0

1) Сохранение всех в отдельном семействе столбцов не сработает. Для более быстрого чтения вам действительно необходимо денормализовать данные и создать семейство столбцов для каждого типа запросов.

2) В вашем случае это немного сложно, поскольку вы хотите вернуть события, близкие к заданной «долготе и широте». Для этого вам нужно найти способ обхода (например, вы можете взять некоторый диапазон долготы и широты в качестве ключа строки), но убедитесь, что у вас есть долгота и широта как часть ключа.

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

+0

Спасибо samarth за ответ. Я прочитал о кассандре, но некоторые части до сих пор не ясны для меня. Итак, могу ли я использовать долготу и широту вместе для ключа строки? – gabby

+0

Поскольку я не располагаю достаточными знаниями о требовании, долготе и широте, я не могу прокомментировать это, но для упрощения вещей возьмем пример страны, вы хотите найти события, которые находятся в конкретной стране, для этого вы должен иметь весь список событий и их данные против rowkey "country". Теперь решите, как вы могли бы управлять одним и тем же материалом, когда речь заходит о долготе и широте – samarth

Смежные вопросы