Cassandra - Schlüsselraum erstellen

Erstellen eines Schlüsselraums mit Cqlsh

Ein Schlüsselraum in Cassandra ist ein Namespace, der die Datenreplikation auf Knoten definiert. Ein Cluster enthält einen Schlüsselbereich pro Knoten. Im Folgenden wird die Syntax zum Erstellen eines Schlüsselbereichs mithilfe der Anweisung angegebenCREATE KEYSPACE.

Syntax

CREATE KEYSPACE <identifier> WITH <properties>

dh

CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of   replicas’};

CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of  replicas’}

AND durable_writes = ‘Boolean value’;

Die Anweisung CREATE KEYSPACE hat zwei Eigenschaften: replication und durable_writes.

Reproduzieren

Die Replikationsoption besteht darin, die anzugeben Replica Placement strategyund die Anzahl der gewünschten Repliken. In der folgenden Tabelle sind alle Strategien zur Platzierung von Replikaten aufgeführt.

Strategiename Beschreibung
Simple Strategy' Gibt einen einfachen Replikationsfaktor für den Cluster an.
Network Topology Strategy Mit dieser Option können Sie den Replikationsfaktor für jedes Rechenzentrum unabhängig festlegen.
Old Network Topology Strategy Dies ist eine ältere Replikationsstrategie.

Mit dieser Option können Sie Cassandra anweisen, ob sie verwenden soll commitlogfür Updates auf dem aktuellen KeySpace. Diese Option ist nicht obligatorisch und standardmäßig auf true gesetzt.

Beispiel

Im Folgenden finden Sie ein Beispiel für die Erstellung eines KeySpace.

  • Hier erstellen wir einen KeySpace mit dem Namen TutorialsPoint.

  • Wir verwenden die erste Replikatplatzierungsstrategie, d. H. Simple Strategy.

  • Und wir wählen den Replikationsfaktor für 1 replica.

cqlsh.> CREATE KEYSPACE tutorialspoint
WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};

Überprüfung

Mit dem Befehl können Sie überprüfen, ob die Tabelle erstellt wurde oder nicht Describe. Wenn Sie diesen Befehl über Keyspaces verwenden, werden alle wie unten gezeigt erstellten Keyspaces angezeigt.

cqlsh> DESCRIBE keyspaces;

tutorialspoint system system_traces

Hier können Sie den neu erstellten KeySpace beobachten tutorialspoint.

Durable_writes

Standardmäßig sind die Eigenschaften von durable_writes einer Tabelle auf festgelegt true,es kann jedoch auf false gesetzt werden. Sie können diese Eigenschaft nicht auf festlegensimplex strategy.

Beispiel

Das folgende Beispiel zeigt die Verwendung der Eigenschaft für dauerhafte Schreibvorgänge.

cqlsh> CREATE KEYSPACE test
... WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 }
... AND DURABLE_WRITES = false;

Überprüfung

Sie können überprüfen, ob die Eigenschaft durable_writes von test KeySpace auf false gesetzt wurde, indem Sie den System Keyspace abfragen. Diese Abfrage gibt Ihnen alle KeySpaces mit ihren Eigenschaften.

cqlsh> SELECT * FROM system_schema.keyspaces;

  keyspace_name | durable_writes |                                       strategy_class | strategy_options
----------------+----------------+------------------------------------------------------+----------------------------

           test |          False | org.apache.cassandra.locator.NetworkTopologyStrategy | {"datacenter1" : "3"}

 tutorialspoint |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "4"}

         system |           True |           org.apache.cassandra.locator.LocalStrategy | { }

  system_traces |           True |          org.apache.cassandra.locator.SimpleStrategy | {"replication_factor" : "2"}

(4 rows)

Hier können Sie beobachten, dass die Eigenschaft durable_writes des Tests KeySpace auf false gesetzt wurde.

Verwenden eines Schlüsselraums

Sie können einen erstellten KeySpace mit dem Schlüsselwort verwenden USE. Die Syntax lautet wie folgt:

Syntax:USE <identifier>

Beispiel

Im folgenden Beispiel verwenden wir den KeySpace tutorialspoint.

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>

Erstellen eines Schlüsselraums mithilfe der Java-API

Sie können einen Schlüsselraum mit dem erstellen execute() Methode von SessionKlasse. Führen Sie die folgenden Schritte aus, um mithilfe der Java-API einen Schlüsselbereich 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 mit 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 ein Clusterobjekt in 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 von Session Objekt mit dem connect() Methode von Cluster Klasse wie unten gezeigt.

Session session = cluster.connect( );

Diese Methode erstellt eine neue Sitzung und initialisiert sie. Wenn Sie bereits einen Schlüsselraum haben, können Sie ihn auf den vorhandenen festlegen, indem Sie den Schlüsselraumnamen im Zeichenfolgenformat wie unten gezeigt an diese Methode übergeben.

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

Schritt 3: Abfrage ausführen

Sie können ausführen CQL Abfragen mit dem execute() Methode von SessionKlasse. Übergeben Sie die Abfrage entweder im Zeichenfolgenformat oder alsStatement Klassenobjekt zum execute()Methode. Was auch immer Sie im String-Format an diese Methode übergeben, wird auf dem ausgeführtcqlsh.

In diesem Beispiel erstellen wir einen KeySpace mit dem Namen tp. Wir verwenden die erste Replikatplatzierungsstrategie, dh die einfache Strategie, und wählen den Replikationsfaktor für 1 Replikat aus.

Sie müssen die Abfrage in einer Zeichenfolgenvariablen speichern und wie unten gezeigt an die Methode execute () übergeben.

String query = "CREATE KEYSPACE tp WITH replication "
   + "= {'class':'SimpleStrategy', 'replication_factor':1}; ";
session.execute(query);

Schritt 4: Verwenden Sie den KeySpace

Sie können einen erstellten KeySpace mit der Methode execute () verwenden, wie unten gezeigt.

execute(“ USE tp ” );

Im Folgenden finden Sie das vollständige Programm zum Erstellen und Verwenden eines Schlüsselbereichs in Cassandra mithilfe der Java-API.

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

public class Create_KeySpace {

   public static void main(String args[]){

      //Query
      String query = "CREATE KEYSPACE tp WITH replication "
         + "= {'class':'SimpleStrategy', 'replication_factor':1};";
                    
      //creating Cluster object
      Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
    
      //Creating Session object
      Session session = cluster.connect();
     
      //Executing the query
      session.execute(query);
     
      //using the KeySpace
      session.execute("USE tp");
      System.out.println("Keyspace 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_KeySpace.java
$java Create_KeySpace

Unter normalen Bedingungen wird die folgende Ausgabe erzeugt:

Keyspace created