Локальное индексирование и материализованные представления в Cassandra 3.0

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

Предварительное условие - концепция индексирования, концепция материализованных представлений
В этой статье мы увидим, как мы можем выполнять локальную индексацию и как это работает, и как материализованные представления работают внутри.

Обсудим по порядку.

Во-первых, нам нужно создать таблицу. Рассмотрим таблицу Team_data, в которой id, name, address - поля.
Давайте посмотрим.

 СОЗДАТЬ ТАБЛИЦУ Team_data
(
 id uuid ПЕРВИЧНЫЙ КЛЮЧ,
 текст имени,
 текст адреса
);

Теперь вставьте данные в таблицу (Team_data). Давайте посмотрим.

 Вставить в Team_data (id, имя, адрес) 
значения (uuid (), 'ашиш гупта', 'мумбаи');

Вставить в Team_data (id, имя, адрес) 
значения (uuid (), 'шиванг', 'дели');

Вставить в Team_data (id, имя, адрес) 
значения (uuid (), 'gaurav', 'bangalore');

Посмотрим на результаты, чтобы проверить вставленные данные.

Выбрать * 
из Team_data;

Выход:

Теперь мы собираемся создать локальную индексацию (customer1) в столбце name таблицы Team_data. Давайте посмотрим.

 создать индекс customer1 на Team_data (name);

Теперь мы собираемся искать данные, которые нам нужны.
Давайте посмотрим.

 выберите адрес, имя 
из Team_data
ГДЕ name = 'шиванг';

Выход:

Теперь мы увидим, как вышеуказанный запрос CQL работает и выполняется графически.
Давайте посмотрим.

На приведенной выше диаграмме сначала координатный узел отправляет сообщение всем узлам в кольце и, учитывая, что есть три копии каждой строки таблицы (Team_data), тогда он будет искать данные на основе индексации на каждом узле в звонят то, что мы ищем.

Теперь мы увидим, как материализованные представления одной и той же таблицы (Team_data) работают в том же сценарии, который обсуждался выше. Сначала мы собираемся создать материализованные представления.
Давайте посмотрим.

 создать материализованное представление customer2 as select * 
из Team_data 
где имя НЕ ПУСТО
ПЕРВИЧНЫЙ КЛЮЧ (имя, идентификатор);

Теперь, опять же, когда мы будем выполнять CQL-запрос, тогда в материализованных представлениях первые данные будут индексироваться на каждом узле, и будет проще выполнять быстрый поиск данных, а также повысится производительность. Давайте посмотрим.

 выберите адрес, имя из Team_data
ГДЕ name = 'шиванг';

Выход:

Теперь мы увидим, как указанный выше запрос CQL работает для материализованных представлений в том же сценарии, приведенном выше.
Давайте посмотрим.