INDEX を作成してドロップする Cassandra

Cassandra インデックスの作成

コマンド「インデックスの作成」は、ユーザーが指定した列にインデックスを作成します。インデックスを作成する列のデータがすでに存在する場合は、 Cassandra 「create Index」ステートメントの実行中にデータにインデックスを作成します。

  • インデックスを作成したら、 Cassandra データが挿入されると、新しいデータに自動的にインデックスが付けられます。
  • 主キーにはすでにインデックスが作成されているため、主キーにインデックスを作成できません。
  • コレクションのインデックスはサポートされていません Cassandra.
  • 列にインデックスを付けないと、 Cassandra 主キーでない限り、その列をフィルタリングすることはできません。

そのため、列をフィルタリングするには、 Cassandra、インデックスを作成する必要があります。

構文

Create index IndexName on KeyspaceName.TableName(ColumnName);

例:

これは、インデックスを作成せずに「dept」列をフィルタリングしようとしたスナップショットです。 応答として、エラーが返されました。

Cassandra インデックスの作成

これは、dept 列にインデックスが作成されたスナップショットです。

Cassandra インデックスの作成

Create index DeptIndex on University.Student(dept);

これは、「dept」列が正常にフィルタリングされたスナップショットです。

Cassandra インデックスの作成

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

Cassandra インデックスを削除

コマンド「インデックスを削除」は、指定されたインデックスを削除します。 インデックスの作成時にインデックス名が指定されなかった場合、インデックス名は TableName_ColumnName_idx になります。

  • インデックスが存在しない場合は、何も行わずに返す IF EXISTS が使用されない限り、エラーが返されます。
  • インデックスの作成中は、インデックス名とともにキースペース名を指定する必要があります。そうしないと、現在のキースペースからインデックスが削除されます。

構文

Drop index IF EXISTS KeyspaceName.IndexName

例:

これは、インデックス DeptIndex を削除する実行されたコマンド「Drop Index」のスナップショットです。

Cassandra インデックスを削除

drop index IF EXISTS University.DeptIndex;

コマンドが正常に実行されると、DeptIndex がキースペースから削除されます。 現在、データを列部門でフィルタリングすることはできません。