Cassandra - Index erstellen

Erstellen eines Index mit Cqlsh

Mit dem Befehl können Sie in Cassandra einen Index erstellen CREATE INDEX. Die Syntax lautet wie folgt:

CREATE INDEX <identifier> ON <tablename>

Im Folgenden finden Sie ein Beispiel zum Erstellen eines Index für eine Spalte. Hier erstellen wir einen Index für eine Spalte 'emp_name' in einer Tabelle mit dem Namen emp.

cqlsh:tutorialspoint> CREATE INDEX name ON emp1 (emp_name);

Erstellen eines Index mit der Java-API

Sie können einen Index für eine Spalte einer Tabelle mit der Methode execute () der Session-Klasse erstellen. Führen Sie die folgenden Schritte aus, um einen Index für eine Spalte in einer Tabelle zu erstellen.

Schritt 1: Erstellen Sie ein Clusterobjekt

Erstellen Sie zunächst eine Instanz von Cluster.builder Klasse von com.datastax.driver.core Paket wie unten gezeigt.

//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();

Fügen Sie einen Kontaktpunkt (IP-Adresse des Knotens) hinzu addContactPoint() Methode von Cluster.BuilderObjekt. Diese Methode gibt zurückCluster.Builder.

//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Erstellen Sie mit dem neuen Builder-Objekt ein Cluster-Objekt. Dazu haben Sie eine Methode namensbuild() in dem Cluster.BuilderKlasse. Der folgende Code zeigt, wie Sie ein Clusterobjekt erstellen.

//Building a cluster
Cluster cluster = builder.build();

Sie können das Clusterobjekt mit einer einzelnen Codezeile erstellen, wie unten gezeigt.

Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();

Schritt 2: Erstellen Sie ein Sitzungsobjekt

Erstellen Sie eine Instanz des Sitzungsobjekts mit der connect () -Methode von Cluster Klasse wie unten gezeigt.

Session session = cluster.connect( );

Diese Methode erstellt eine neue Sitzung und initialisiert sie. Wenn Sie bereits über einen Schlüsselbereich verfügen, können Sie ihn auf den vorhandenen festlegen, indem Sie den KeySpace-Namen im Zeichenfolgenformat wie unten gezeigt an diese Methode übergeben.

Session session = cluster.connect(“ Your keyspace name ” );

Hier verwenden wir den aufgerufenen KeySpace tp. Erstellen Sie daher das Sitzungsobjekt wie unten gezeigt.

Session session = cluster.connect(“ tp” );

Schritt 3: Abfrage ausführen

Sie können CQL-Abfragen mit der Methode execute () der Session-Klasse ausführen. Übergeben Sie die Abfrage entweder im Zeichenfolgenformat oder als Anweisungsklassenobjekt an die Methode execute (). Was auch immer Sie im String-Format an diese Methode übergeben, wird auf dem ausgeführtcqlsh.

Im folgenden Beispiel erstellen wir einen Index für eine Spalte mit dem Namen emp_name in einer Tabelle mit dem Namen emp. Sie müssen die Abfrage in einer Zeichenfolgenvariablen speichern und wie unten gezeigt an die Methode execute () übergeben.

//Query
String query = "CREATE INDEX name ON emp1 (emp_name);";
session.execute(query);

Im Folgenden finden Sie das vollständige Programm zum Erstellen eines Index einer Spalte in einer Tabelle in Cassandra mithilfe der Java-API.

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;

public class Create_Index {
 
   public static void main(String args[]){

      //Query
      String query = "CREATE INDEX name ON emp1 (emp_name);";
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
       
      //Creating Session object
      Session session = cluster.connect("tp");
 
      //Executing the query
      session.execute(query);
      System.out.println("Index created");
   }
}

Speichern Sie das obige Programm mit dem Klassennamen gefolgt von .java und navigieren Sie zu dem Speicherort, an dem es gespeichert ist. Kompilieren Sie das Programm und führen Sie es wie unten gezeigt aus.

$javac Create_Index.java
$java Create_Index

Unter normalen Bedingungen sollte die folgende Ausgabe erzeugt werden:

Index created