Вторичные индексы в коллекции SET в Cassandra
В этой статье мы обсудим обзор вторичных индексов в коллекции SET в Cassandra, а затем выполним упражнение и посмотрим, как оно на самом деле работает, а затем, наконец, сделаем вывод о важности вторичных индексов в коллекции SET. Давайте обсудим это один за другим.
Предварительное условие –
- Концепция индексации в Apache Cassandra
- Тип данных коллекции в Apache Cassandra
Обзор :
Создание вторичных индексов в коллекции SET в Cassandra очень полезно. Итак, здесь вы увидите реальный вариант использования создания индекса для коллекции, потому что это делает поиск и запрос данных очень эффективным и быстрым. Поэтому, если вы хотите выполнять поиск по ключевому слову, то при поиске и запросе данных вы можете использовать ключевые слова CONTAINS для определенного ключевого слова в типе данных коллекции. Давайте поймем всю концепцию с помощью примеров.
Синтаксис:
Здесь вы увидите синтаксическую часть того, как создать индекс для коллекции. Вы можете использовать приведенную ниже команду следующим образом.
CREATE INDEX ON <table_name>(<collection_column>)
Здесь вы увидите синтаксис части предложения WHERE, где вы будете использовать ключевое слово CONTAINS для поиска определенного значения в коллекции SET.
WHERE <collection_column> CONTAINS <value>
Пример -
Предположим, у вас есть существующее пространство ключей, а именно cluster1, а затем сначала мы создадим таблицу user_data с помощью команды CQL следующим образом.
Шаг 1: Создание таблицы -user_data –
use cluster1;
create table user_data
(
user_id varchar,
user_first_name varchar,
user_last_name varchar,
company varchar,
user_tags set<varchar>,
primary key(user_id)
);Шаг 2: Создание индекса для user_tags —
CREATE INDEX ON user_data(user_tags);
Шаг 3: Вставка данных –
insert into user_data(user_id, user_first_name, user_last_name, company, user_tags)
values("Ashish01","Ashish","Rana","abc",{"Java"});
insert into user_data(user_id, user_first_name, user_last_name, company, user_tags)
values("Ashish02","Ayush","NA","abc",{"Python"});
insert into user_data(user_id, user_first_name, user_last_name, company, user_tags)
values("Ashish03","shivang","NA","abc",{"python"});
insert into user_data(user_id, user_first_name, user_last_name, company, user_tags)
values("Ashish04","Bhagyesh","NA","abc",{"c++"});Шаг 4: Проверка и чтение данных —
select * from user_data;
Шаг 5: Выход –
| ID пользователя | Компания | user_first_name | user_last_name | user_tags |
|---|---|---|---|---|
| Ашиш04 | азбука | Бхагьеш | нет данных | {'С++'} |
| Ашиш03 | азбука | шиванг | нет данных | {'питон'} |
| Ашиш02 | азбука | Аюш | нет данных | {'питон'} |
| Ашиш01 | азбука | Ашиш | Рана | {'Ява'} |
Шаг 6: Поиск по определенному ключевому слову —
select * from user_data where user_tags CONTAINS "Java";
Шаг 7: Выход –
| ID пользователя | Компания | user_first_name | user_last_name | user_tags |
|---|---|---|---|---|
| Ашиш01 | азбука | Ашиш | Рана | {'Ява'} |