Создайте и поместите ИНДЕКС в Cassandra
Cassandra Создать индекс
Команда «Создать индекс» создает индекс по столбцу, указанному пользователем. Если данные для столбца, который вы хотите индексировать, уже существуют, Cassandra создает индексы данных во время выполнения инструкции create index.
- После создания индекса Cassandra автоматически индексирует новые данные при вставке данных.
- Индекс не может быть создан для первичного ключа, поскольку первичный ключ уже проиндексирован.
- Индексы коллекций не поддерживаются в Cassandra.
- Без индексации по столбцу, Cassandra невозможно фильтровать этот столбец, если он не является первичным ключом.
Вот почему для фильтрации столбцов в Cassandra, необходимо создать индексы.
Синтаксис
Create index IndexName on KeyspaceName.TableName(ColumnName);
Пример
Вот снимок, где была попытка отфильтровать столбец «dept» без создания индекса. В ответ была возвращена ошибка.
Вот снимок, где индекс создается в столбце отдела.
Create index DeptIndex on University.Student(dept);
Вот снимок, на котором будет успешно отфильтрован столбец «отдел».
select * from University.Student where dept='CS';
Cassandra Индекс падения
Команда «Удалить индекс» удаляет указанный индекс. Если имя индекса не было указано при создании индекса, то имя индекса — TableName_ColumnName_idx.
- Если индекс не существует, он вернет ошибку, если не используется IF EXISTS, который вернет отсутствие операции.
- Во время создания индекса вам необходимо указать имя пространства ключей вместе с именем индекса, иначе индекс будет удален из текущего пространства ключей.
Синтаксис
Drop index IF EXISTS KeyspaceName.IndexName
Пример
Вот снимок выполненной команды «Удалить индекс», которая удаляет индекс DeptIndex.
drop index IF EXISTS University.DeptIndex;
После успешного выполнения команды DeptIndex будет удален из пространства ключей. Теперь данные нельзя фильтровать по столбцу dept.