Полезный CQL-запрос в Cassandra
Предпосылка - Кассандра
В этой статье мы собираемся обсудить CQL-запрос, который очень полезен для создания, вставки, удаления, манипулирования, фильтрации данных и т. Д. Давайте обсудим, как мы можем написать лучший CQL-запрос для этих операций.
Язык запросов Cassandra (CQL):
CQL используется для создания, вставки и управления данными в Cassandra. Главное, что следует отметить в CQL, - это то, что он не имеет концепции GROUP или JOIN и имеет очень ограниченную реализацию ORDER BY.
Создание пространства ключей
// пространство клавиш с SimpleStrategy
создать пространство ключей cluster1
С репликацией = {'class': 'SimpleStrategy',
'replication_factor': 3};
// пространство ключей с NetworkTopologyStrategy
создать пространство ключей cluster1
С репликацией = {'class': 'NetworkTopologyStrategy',
'запад': 1, 'восток': 3}
И длительное_писывание = ложь;Теперь мы собираемся создать таблицу web_info, в которой url, user_id, net_location, visitor_info - это поля таблицы.
Давайте посмотрим.
Создание таблицы:
СОЗДАТЬ ТАБЛИЦУ web_info ( текст URL, user_id uuid, net_location inet, текст visitor_info, ПЕРВИЧНЫЙ КЛЮЧ (url, net_location) );
Вставка строк в таблицу:
Теперь мы собираемся вставить некоторые данные в таблицу.
Вставить в web_info (url, user_id, net_location, visitor_info)
значения ('https://www.google.com', uuid (), '127.0.0.1', 'Ашиш');
Вставить в web_info (url, user_id, net_location, visitor_info)
значения ('https://www.google.com', uuid (), '127.0.0.4', 'shivang');
Вставить в web_info (url, user_id, net_location, visitor_info)
значения ('https://www.yahoo.com', uuid (), '127.0.0.2', 'rana');
Вставить в web_info (url, user_id, net_location, visitor_info)
значения ('https://www.geeksforgeeks.com', uuid (), '127.0.0.3', 'Ashish_rana');Теперь, чтобы проверить результаты, используйте параметр LIMIT для определенного количества строк.
ВЫБРАТЬ * FROM web_info LIMIT 3;
Выход:

РАЗРЕШИТЬ ФИЛЬТРАЦИЮ:
Этот параметр очень полезен в CQL, который позволяет серверу активно фильтровать результаты.
использование SELECT с РАЗРЕШЕНИЕМ ФИЛЬТРАЦИИ:
ВЫБРАТЬ * ОТ web_info ГДЕ url = 'https: //www.google.com' И net_location = '127.0.0.1' И visitor_info = 'Ашиш' РАЗРЕШИТЬ ФИЛЬТРАЦИЮ;
Выход:

В этом примере показано, как РАЗРЕШЕННАЯ ФИЛЬТРАЦИЯ работает в запросе CQL для столбцов без разделения.
Давайте посмотрим.
ВЫБРАТЬ * ОТ web_info ГДЕ visitor_info = 'Ашиш' РАЗРЕШИТЬ ФИЛЬТРАЦИЮ;
Выход:

Для проверки результатов вставки данных в таблицу web_info используется следующий CQL, приведенный ниже.
ВЫБРАТЬ * ОТ web_info;
Выход:

Здесь мы просто собираемся показать, как BATCH CQL-запрос полезен в Cassandra. В приведенном ниже примере мы просто показываем, как мы можем обновлять, удалять и вставлять данные в таблицу с помощью BATCH. Давайте посмотрим.
НАЧАТЬ ПАРТИЮ
ОБНОВЛЕНИЕ web_info ИСПОЛЬЗУЯ TTL 345600
SET visitor_info = 'Ашиш рана'
ГДЕ url = 'https: //www.google.com' и net_location = '127.0.0.1';
Удалить visitor_info
ОТ web_info
где url = 'https: //www.google.com' и net_location = '127.0.0.1';
Вставить в web_info (url, user_id, net_location, visitor_info)
значения ('https://www.geeksforgeeks.com', uuid (), '127.0.0.5', 'new_user');
ПРИМЕНИТЬ ПАРТИЮ;Теперь для проверки результатов BATCH используется следующий запрос CQL, приведенный ниже.
Выбрать * из web_info;
Выход:

Для установки столбца visitor_info используется следующий запрос CQL, приведенный ниже.
ОБНОВЛЕНИЕ web_info SET visitor_info = 'войти на портал академии' ГДЕ url = 'https: //www.google.com' и net_location = '127.0.0.1';
Теперь для проверки результатов используется следующий запрос CQL, приведенный ниже.
Выбрать * из web_info;
Выход: