Cassandra - Utwórz przestrzeń kluczową

Tworzenie przestrzeni kluczy za pomocą Cqlsh

Przestrzeń kluczy w Cassandrze to przestrzeń nazw, która definiuje replikację danych w węzłach. Klaster zawiera jedną przestrzeń kluczy na węzeł. Poniżej podano składnię tworzenia przestrzeni kluczy za pomocą instrukcjiCREATE KEYSPACE.

Składnia

CREATE KEYSPACE <identifier> WITH <properties>

to znaczy

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’;

Instrukcja CREATE KEYSPACE ma dwie właściwości: replication i durable_writes.

Replikacja

Opcja replikacji polega na określeniu Replica Placement strategyoraz liczbę poszukiwanych replik. W poniższej tabeli wymieniono wszystkie strategie rozmieszczania replik.

Nazwa strategii Opis
Simple Strategy' Określa prosty współczynnik replikacji dla klastra.
Network Topology Strategy Za pomocą tej opcji można niezależnie ustawić współczynnik replikacji dla każdego centrum danych.
Old Network Topology Strategy To jest starsza strategia replikacji.

Korzystając z tej opcji, możesz poinstruować Cassandrę, czy ma użyć commitlogdo aktualizacji bieżącej KeySpace. Ta opcja nie jest obowiązkowa i domyślnie ma wartość true.

Przykład

Poniżej podano przykład tworzenia KeySpace.

  • Tutaj tworzymy KeySpace o nazwie TutorialsPoint.

  • Korzystamy z pierwszej strategii rozmieszczenia repliki, tj. Simple Strategy.

  • A my wybieramy współczynnik replikacji do 1 replica.

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

Weryfikacja

Możesz sprawdzić, czy tabela została utworzona, czy nie, za pomocą polecenia Describe. Jeśli użyjesz tego polecenia nad przestrzeniami kluczowymi, wyświetli wszystkie utworzone przestrzenie klawiszowe, jak pokazano poniżej.

cqlsh> DESCRIBE keyspaces;

tutorialspoint system system_traces

Tutaj możesz obserwować nowo utworzoną KeySpace tutorialspoint.

Durable_writes

Domyślnie właściwości permanent_writes tabeli są ustawione na true,jednak można ustawić na fałsz. Nie możesz ustawić tej właściwości nasimplex strategy.

Przykład

Poniżej podano przykład demonstrujący użycie właściwości trwałych zapisów.

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

Weryfikacja

Możesz sprawdzić, czy właściwość permanent_writes test KeySpace została ustawiona na false, wysyłając zapytanie do Systemowego obszaru kluczy. To zapytanie zawiera wszystkie KeySpaces wraz z ich właściwościami.

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)

Tutaj możesz zaobserwować, że właściwość Durable_writes testu KeySpace została ustawiona na wartość false.

Korzystanie z przestrzeni klawiszy

Możesz użyć utworzonej KeySpace za pomocą słowa kluczowego USE. Jego składnia jest następująca -

Syntax:USE <identifier>

Przykład

W poniższym przykładzie używamy KeySpace tutorialspoint.

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>

Tworzenie obszaru kluczy przy użyciu interfejsu API języka Java

Możesz utworzyć Keyspace za pomocą execute() metoda Sessionklasa. Wykonaj poniższe czynności, aby utworzyć obszar kluczy za pomocą interfejsu API języka Java.

Krok 1: Utwórz obiekt klastra

Przede wszystkim utwórz instancję Cluster.builder klasa com.datastax.driver.core pakiet, jak pokazano poniżej.

//Creating Cluster.Builder object

Cluster.Builder builder1 = Cluster.builder();

Dodaj punkt kontaktowy (adres IP węzła) za pomocą addContactPoint() metoda Cluster.Builderobiekt. Ta metoda zwracaCluster.Builder.

//Adding contact point to the Cluster.Builder object

Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );

Korzystając z nowego obiektu konstruktora, utwórz obiekt klastra. Aby to zrobić, masz metodę o nazwiebuild() w Cluster.Builderklasa. Poniższy kod przedstawia sposób tworzenia obiektu klastra.

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

Możesz zbudować obiekt klastra w pojedynczym wierszu kodu, jak pokazano poniżej.

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

Krok 2: Utwórz obiekt sesji

Utwórz wystąpienie Session obiekt za pomocą connect() metoda Cluster klasa, jak pokazano poniżej.

Session session = cluster.connect( );

Ta metoda tworzy nową sesję i inicjuje ją. Jeśli masz już obszar kluczy, możesz ustawić go na istniejący, przekazując nazwę obszaru kluczy w formacie ciągu do tej metody, jak pokazano poniżej.

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

Krok 3: Wykonaj zapytanie

Możesz wykonać CQL zapytania przy użyciu execute() metoda Sessionklasa. Przekaż zapytanie w formacie ciągu lub jako plikStatement klasy do execute()metoda. Cokolwiek przekażesz do tej metody w formacie ciągu, zostanie wykonane nacqlsh.

W tym przykładzie tworzymy KeySpace o nazwie tp. Używamy pierwszej strategii umieszczania repliki, czyli Simple Strategy i wybieramy współczynnik replikacji na 1 replikę.

Musisz zapisać zapytanie w zmiennej łańcuchowej i przekazać je do metody execute (), jak pokazano poniżej.

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

Krok 4: Użyj KeySpace

Możesz użyć utworzonej KeySpace używając metody execute (), jak pokazano poniżej.

execute(“ USE tp ” );

Poniżej podano kompletny program do tworzenia i używania przestrzeni kluczy w Cassandrze przy użyciu 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"); 
   }
}

Zapisz powyższy program z nazwą klasy, a następnie .java, przejdź do lokalizacji, w której jest zapisany. Skompiluj i uruchom program, jak pokazano poniżej.

$javac Create_KeySpace.java
$java Create_KeySpace

W normalnych warunkach wygeneruje następujący wynik -

Keyspace created