2014-08-28 3 views
0

Предположим, у меня есть 2 набора данных, один для правил, а другой для значений.Как выполнить операцию пересечения двух наборов данных в хранилище ключей?

Мне нужно отфильтровать значения на основе правил.

Я использую хранилище ключей (couchbase, cassandra и т. Д.). Я могу использовать multi-get для извлечения всех значений из одной таблицы и всех правил для другого и выполнения проверки в цикле.

Однако я считаю, что это очень неэффективно. Я перемещаю массивный объем данных (значений) по сети, а клиент занят работой по фильтрации.

Каков общий шаблон для нахождения пересечения между двумя таблицами с хранилищем ключей?

+0

Downvoter, разделить причину? – janetsmith

ответ

1

Идея модели данных nosql заключается в том, чтобы записывать данные денормализованным способом, чтобы таблица могла отвечать на точный запрос. Чтобы представить пример, у вас есть отзывы, сделанные клиентами в магазинах. Вы должны знать отзывы, сделанные пользователем в магазинах, а также отзывы, полученные в магазине. Это будет моделироваться с помощью двух таблиц

ShopReviews
UserReviews

В первой таблице вы запрос, магазин ид в второй по идентификатору пользователя, а данные записываются в два раза и получить доступ непосредственно, используя только ключ доступа.

Точно так же вы должны упорядочивать значения по правилам (не может быть точнее, не зная, какова связь между ними) и т. Д. Еще одно соображение: новые версии nosql db поддерживают коллекции, которые могут помочь моделировать 1 во многих отношениях.

HTH, Carlo

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