Полезный CQL-запрос в Cassandra

Опубликовано: 16 Августа, 2021

Предпосылка - Кассандра
В этой статье мы собираемся обсудить 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;

Выход: