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