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