Cassandra - Créer un index

Créer un index à l'aide de Cqlsh

Vous pouvez créer un index dans Cassandra à l'aide de la commande CREATE INDEX. Sa syntaxe est la suivante -

CREATE INDEX <identifier> ON <tablename>

Vous trouverez ci-dessous un exemple pour créer un index vers une colonne. Ici, nous créons un index vers une colonne 'emp_name' dans une table nommée emp.

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

Création d'un index à l'aide de l'API Java

Vous pouvez créer un index vers une colonne d'une table à l'aide de la méthode execute () de la classe Session. Suivez les étapes ci-dessous pour créer un index vers une colonne dans une table.

Étape 1: créer un objet de cluster

Tout d'abord, créez une instance de Cluster.builder une sorte de com.datastax.driver.core paquet comme indiqué ci-dessous.

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

Ajoutez un point de contact (adresse IP du nœud) à l'aide du addContactPoint() méthode de Cluster.Builderobjet. Cette méthode renvoieCluster.Builder.

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

À l'aide du nouvel objet de générateur, créez un objet de cluster. Pour ce faire, vous disposez d'une méthode appeléebuild() dans le Cluster.Builderclasse. Le code suivant montre comment créer un objet de cluster.

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

Vous pouvez créer l'objet de cluster en utilisant une seule ligne de code comme indiqué ci-dessous.

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

Étape 2: créer un objet de session

Créez une instance de l'objet Session à l'aide de la méthode connect () de Cluster classe comme indiqué ci-dessous.

Session session = cluster.connect( );

Cette méthode crée une nouvelle session et l'initialise. Si vous avez déjà un espace de clés, vous pouvez le définir sur celui existant en transmettant le nom de l'espace de clé au format chaîne à cette méthode, comme indiqué ci-dessous.

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

Ici, nous utilisons le KeySpace appelé tp. Par conséquent, créez l'objet de session comme indiqué ci-dessous.

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

Étape 3: Exécuter la requête

Vous pouvez exécuter des requêtes CQL en utilisant la méthode execute () de la classe Session. Transmettez la requête au format chaîne ou en tant qu'objet de classe Statement à la méthode execute (). Tout ce que vous passez à cette méthode au format chaîne sera exécuté sur lecqlsh.

Dans l'exemple suivant, nous créons un index vers une colonne appelée emp_name, dans une table nommée emp. Vous devez stocker la requête dans une variable chaîne et la transmettre à la méthode execute () comme indiqué ci-dessous.

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

Vous trouverez ci-dessous le programme complet pour créer un index d'une colonne dans une table dans Cassandra à l'aide de l'API Java.

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");
   }
}

Enregistrez le programme ci-dessus avec le nom de la classe suivi de .java, accédez à l'emplacement où il est enregistré. Compilez et exécutez le programme comme indiqué ci-dessous.

$javac Create_Index.java
$java Create_Index

Dans des conditions normales, il devrait produire la sortie suivante -

Index created