Создайте и поместите ИНДЕКС в Cassandra

Cassandra Создать индекс

Команда «Создать индекс» создает индекс по столбцу, указанному пользователем. Если данные для столбца, который вы хотите индексировать, уже существуют, Cassandra создает индексы данных во время выполнения инструкции create index.

  • После создания индекса Cassandra автоматически индексирует новые данные при вставке данных.
  • Индекс не может быть создан для первичного ключа, поскольку первичный ключ уже проиндексирован.
  • Индексы коллекций не поддерживаются в Cassandra.
  • Без индексации по столбцу, Cassandra невозможно фильтровать этот столбец, если он не является первичным ключом.

Вот почему для фильтрации столбцов в Cassandra, необходимо создать индексы.

Синтаксис

Create index IndexName on KeyspaceName.TableName(ColumnName);

Пример

Вот снимок, где была попытка отфильтровать столбец «dept» без создания индекса. В ответ была возвращена ошибка.

Cassandra Создать индекс

Вот снимок, где индекс создается в столбце отдела.

Cassandra Создать индекс

Create index DeptIndex on University.Student(dept);

Вот снимок, на котором будет успешно отфильтрован столбец «отдел».

Cassandra Создать индекс

select * from University.Student where dept='CS';

Cassandra Индекс падения

Команда «Удалить индекс» удаляет указанный индекс. Если имя индекса не было указано при создании индекса, то имя индекса — TableName_ColumnName_idx.

  • Если индекс не существует, он вернет ошибку, если не используется IF EXISTS, который вернет отсутствие операции.
  • Во время создания индекса вам необходимо указать имя пространства ключей вместе с именем индекса, иначе индекс будет удален из текущего пространства ключей.

Синтаксис

Drop index IF EXISTS KeyspaceName.IndexName

Пример

Вот снимок выполненной команды «Удалить индекс», которая удаляет индекс DeptIndex.

Cassandra Индекс падения

drop index IF EXISTS University.DeptIndex;

После успешного выполнения команды DeptIndex будет удален из пространства ключей. Теперь данные нельзя фильтровать по столбцу dept.