Работа UNION в Aerospike или Couchbase

Я пытаюсь выполнить операцию UNION в Aerospike (база данных No-Sql). Однако язык запросов не обеспечивает такой операции.

Как мы можем выполнить операцию UNION в базе данных без SQL, такой как Aerospike. Я считаю, что это также применимо к другой базе данных NoSql, такой как Couchbase, поскольку я также не могу найти в них поддерживаемую конструкцию.

В качестве примера предположим, что у меня есть коллекция {ключ1: значение1, ключ2: значение2, ключ3: значение3}. Мне было бы интересно получить следующий набор коллекций.

SELECT * from  namespace.collections where key2 = someValue and key1=someValue
UNION
SELECT * from namespace.collections where key1 = someValue and key3=someValue

person Love Hasija    schedule 05.11.2013    source источник
comment
объединение двух разных коллекций / таблиц?   -  person Asya Kamsky    schedule 05.11.2013
comment
да объединение набора коллекций из запроса   -  person Love Hasija    schedule 05.11.2013
comment
Вам нужно предоставить больше информации о своих данных, привести несколько примеров, и вам будет легче помочь.   -  person scalabilitysolved    schedule 06.11.2013
comment
Возможно, мне что-то не хватает, но не можете ли вы просто создать представление, которое испускает значение, и вы передаете 3 ключа для фильтрации представления? Если вы включите json и полную проблему, мы можем попробовать еще раз.   -  person scalabilitysolved    schedule 07.11.2013
comment
Я действительно не пробовал Couchbase, но да, это кажется многообещающим. В Aerospike нет такой концепции просмотров, а фильтры по кратным индексам действительно не работают.   -  person Love Hasija    schedule 07.11.2013


Ответы (2)


Aerospike изначально не поддерживает UNION и JOIN. Я не знаю ни одной базы данных NoSQL, которая поддерживает это.

person sunil    schedule 11.02.2014
comment
UNION можно выполнить через UDF на стороне клиента: aerospike.com/docs/udf /udf_guide.html - person Ronen Botzer; 24.06.2014

Я впервые узнал об Aerospike после вашего вопроса, но я работаю с Couchbase около полугода. Если я правильно понял, принцип работы этих баз одинаков. У нас очень большая и нетривиальная хэш-карта, и мы можем выполнять только операции получения и установки. Ни UNION, ни JOIN, ни других реляционных операций над множествами. Таким образом, мы можем решить эту проблему на стороне клиента только индивидуальным способом. Мы можем получить из БД «Bin» или «Json» и объединить их так, как мы считаем правильным. Если вы расскажете нам больше о своей проблеме, я с радостью постараюсь вам помочь.

person Vladislav Koroteev    schedule 05.11.2013
comment
Я смотрю на использование сценариев представлений / на стороне сервера, чтобы уменьшить карту на сервере. Итак, возвращение вещей клиенту и создание союза не сработает. - person Love Hasija; 05.11.2013
comment
Под клиентской частью я имел в виду API, который вы используете для взаимодействия с вашей базой данных. Вы можете написать свой уровень между пользователем и сервером, который будет обрабатывать ответ от БД по запросу пользователя. - person Vladislav Koroteev; 06.11.2013