Тип данных коллекции в Apache Cassandra

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

Тип данных коллекции в Cassandra
В этой статье мы опишем обзор типов данных коллекции и запрос Cassandra Query Language (CQL) для каждого типа данных коллекции с пояснениями. В Cassandra есть 3 типа собираемых данных.

 1. УСТАНОВИТЬ
2. СПИСОК
3. КАРТА

Давай обсудим по очереди.

1 КОМПЛЕКТ:
Набор - это набор данных, в котором мы можем хранить группу элементов, так что у пользователя может быть несколько адресов электронной почты, а затем для хранения такого типа данных мы использовали набор данных сбора, который возвращает отсортированные элементы при запросе. Это типизированная коллекция уникальных значений.

Синтаксис:

 Создать таблицу keyspace-Name.Table-Name (
  поле 1 data_type 1,
  / * Ключевое слово SET используется для определения типа данных коллекции. * /
  поле 1 установить <data_type>,  
  поле 1 data_type 1,
  key_constraint, если есть
 );

Шаг-1: Для создания пространства ключей используется следующий запрос CQL.

СОЗДАТЬ КЛЮЧЕВОЕ ПРОСТРАНСТВО keypace1
    С репликацией = {'class': 'SimpleStrategy', 
                        'replication_factor': 1};

CQL-запрос для использования пространства ключей1
Используйте keyspace1;

 СОЗДАТЬ ТАБЛИЦУ сотрудника
 ( 
  E_id int,
  E_name текст,

  / * задаем синтаксис для определения E_email как типа данных коллекции списка. * /
  E_email SET <текст>,  
  ПЕРВИЧНЫЙ КЛЮЧ (E_id)
 );

Шаг 2: Синтаксис для вставки с использованием типа данных набора наборов.
Синтаксис:

 ВСТАВИТЬ INTO имя_таблицы (поле 1, поле 2, поле 3 ..) 
            ЗНАЧЕНИЯ ('field1_value', {'field2_value1', 'field2_value2', ..}, 
                                   {'field3_value1', 'field3_value2', ..} ....);

CQL-запрос для вставки с использованием SET:

 ВСТАВИТЬ В сотрудника (E_id, E_name, E_email) 
            ЗНАЧЕНИЯ (100, 'Аюш Агарвал', {'ayush@gmail.com', 'ayush2@gmail.com'});
ВСТАВИТЬ сотрудника (E_id, E_name, E_email) 
            ЗНАЧЕНИЯ (101, 'Арпан мишра', {'arpan@gmail.com', 'arpan2@gmail.com'});
ВСТАВИТЬ В сотрудника (E_id, E_name, E_email) 
            ЦЕННОСТИ (102, 'Ашиш Рана', {'ashish@gmail.com', 'ashish2@gmail.com'});

Шаг 3: CQL-запрос для получения данных таблицы.

 выберите * из Сотрудника;

Выход:




Рисунок - Cassandra-Table_set

2. СПИСОК:
В списке одно значение может храниться несколько раз. Одно из правил в типе данных коллекции списков, что порядок элементов не может быть изменен. В списке, когда значения сохранены, элементы получают определенный индекс, тогда значения могут быть извлечены через эти конкретные индексы. В списке элемент не обязательно должен быть уникальным и может быть продублирован.

Шаг-1: Для создания таблицы используется следующий CQL-запрос.

СОЗДАТЬ ТАБЛИЦУ keypace1.Employee
 ( 
  E_id int,
  E_name текст,

  / * синтаксис списка для определения E_email как типа данных коллекции списка. * /
  E_email list <текст>,  
  ПЕРВИЧНЫЙ КЛЮЧ (E_id)
 );

Шаг 2: Синтаксис для вставки с использованием типа данных коллекции списка.

Синтаксис:

 ВСТАВИТЬ INTO имя_таблицы (поле 1, поле 2, поле 3 ..) 
            ЗНАЧЕНИЯ ('field1_value', ['field2_value1', 'field2_value2', ..], 
                                    ['field3_value1', 'field3_value2', ..] ....);

CQL-запрос для вставки с использованием LIST:

 ВСТАВИТЬ В сотрудника (E_id, E_name, E_email) 
            ЗНАЧЕНИЯ (101, 'Anmol', ['Anmol@gmail.com', 'anmol1@gmail.com']);
ВСТАВИТЬ В сотрудника (E_id, E_name, E_email) 
            ЦЕННОСТИ (102, «Аакаш томар», [«Akash@gmail.com», «Akash2@gmail.com»]);
ВСТАВИТЬ В сотрудника (E_id, E_name, E_email) 
            ЦЕННОСТИ (103, 'Ashish paliwal', ['ashish@gmail.com', 'ashish2@gmail.com']);
ВСТАВИТЬ В сотрудника (E_id, E_name, E_email) 
            ЦЕННОСТИ (104, 'Ашиш Рана', ['a1@gmail.com', 'a2@gmail.com']);

Шаг 3: CQL-запрос для получения данных таблицы.

 выберите * из Сотрудника;

Выход:




Рисунок - Таблица СПИСОК для вышеуказанного запроса CQL

3. КАРТА:
В MAP - типизированный набор пар ключ-значение, такой как пара значений с соответствующим именем ключа. Тип данных сбора MAP упорядочен по уникальным ключам.

Шаг-1: Для создания таблицы используется следующий CQL-запрос.

 СОЗДАТЬ ТАБЛИЦУ keypace1.Activity
 ( 
  E_id int,
  E_name текст,
  карта задачи <отметка времени, текст>,
  ПЕРВИЧНЫЙ КЛЮЧ (E_id)
 );

Шаг 2: Синтаксис для вставки с использованием типа данных коллекции карт.

Синтаксис:

 ВСТАВИТЬ INTO имя_таблицы (поле 1, поле 2, поле 3 ..) 
            ЗНАЧЕНИЯ ({'ключ1': 'значение1', 'ключ2': 'значение2' ..........});

CQL-запрос для вставки с использованием MAP:

 ВСТАВИТЬ В сотрудника (E_id, E_name, Task) 
            ЗНАЧЕНИЯ (001, 'Vaibhav Nirwal', {'2019-09-28': 'тип сбора данных', 
                                                '2019-09-29': 'тип данных карты'});
ВСТАВИТЬ В сотрудника (E_id, E_name, Task) 
            ЗНАЧЕНИЯ (002, 'Акш Томар', {'2019-09-28': 'база данных создана', 
                                       '2019-09-29': 'создание таблицы'});

Шаг 3: CQL-запрос для получения данных таблицы.

 выберите * из Activity;

Выход:




Рисунок - Таблица MAP для вышеуказанного запроса CQL