Подтвердить что ты не робот

Как выполнить запросы присоединения с двумя или более таблицами в cassandra cql

Я новичок в кассандре. Здесь у меня есть две таблицы EVENTS и TOWER. Мне нужно присоединиться к ним для некоторых запросов. Но я не могу это сделать.

Структура таблицы EVENTS:

eid int PRIMARY KEY,
a_end_tow_id text,
a_home_circle text,
a_home_operator text,
a_imei text,
a_imsi text,

Структура таблицы TOWER:

 tid int PRIMARY KEY,
 tower_address_1 text,
 tower_address_2 text,
 tower_azimuth text,
 tower_cgi text,
 tower_circle text,
 tower_id_no text,
 tower_lat_d text,
 tower_long_d text,
 tower_name text,

Теперь я хочу присоединиться к этой таблице в отношении EID и TID, чтобы я мог получать данные обеих таблиц.

4b9b3361

Ответ 1

Кассандра = Нет объединений. Ваша модель на 100% реляционная. Вам нужно переосмыслить его для Кассандры. Я бы посоветовал вам взглянуть на эти слайды. Они глубоко разбираются в том, как моделировать данные для кассандры. Также здесь находится веб-семинар, посвященный теме. Но перестаньте думать о внешних ключах и присоединяться к столам, потому что, если вам нужны отношения, кассандра не является инструментом для работы.

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

Что я могу сделать?
Денормализовать! Много данных в одной таблице? Но в таблице будет слишком много столбцов!
Итак? Cassandra может обрабатывать очень большое количество столбцов в таблице.

Другое, что вы можете сделать, это имитировать соединение в клиентском приложении. Сопоставьте два набора данных в коде, но это будет очень медленно, потому что вам придется перебирать всю вашу информацию.

Другой способ - выполнить несколько запросов. Выберите нужное событие, затем соответствующую башню.

Ответ 2

Есть несколько способов, которыми вы можете объединить таблицы в Cassandra и запрашивать их. Но, конечно, вам нужно переосмыслить часть модели данных.

Ответ 3

PlayOrm - хороший вариант для объединения на масштабируемые системы со специальным масштабируемым языком SQL, в котором вы можете присоединиться к разделам (т.е. вы никогда не хотите присоединяться к 1 миллиарду строк с еще одним миллиардом строк). Он имеет тонны шаблонов noSQL и является полным перерывом от спящего режима и JPA, чтобы имитировать шаблоны noSQL с присоединением клиентской стороны, когда это необходимо.