Полезный 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;
Выход: