Cassandra - Anahtar Alanı Oluştur

Cqlsh kullanarak bir Anahtar Alanı Oluşturma

Cassandra'daki anahtar alanı, düğümlerde veri çoğaltmayı tanımlayan bir ad alanıdır. Bir küme, düğüm başına bir anahtar alanı içerir. Aşağıda, ifadeyi kullanarak bir anahtar alanı oluşturmak için sözdizimi verilmiştir.CREATE KEYSPACE.

Sözdizimi

CREATE KEYSPACE <identifier> WITH <properties>

yani

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

CREATE KEYSPACE deyiminin iki özelliği vardır: replication ve durable_writes.

Çoğaltma

Çoğaltma seçeneği, Replica Placement strategyve istenen kopya sayısı. Aşağıdaki tablo, tüm kopya yerleştirme stratejilerini listeler.

Strateji adı Açıklama
Simple Strategy' Küme için basit bir çoğaltma faktörünü belirtir.
Network Topology Strategy Bu seçeneği kullanarak, her veri merkezi için çoğaltma faktörünü bağımsız olarak ayarlayabilirsiniz.
Old Network Topology Strategy Bu, eski bir çoğaltma stratejisidir.

Bu seçeneği kullanarak, Cassandra'ya commitlogmevcut KeySpace'deki güncellemeler için. Bu seçenek zorunlu değildir ve varsayılan olarak true olarak ayarlanmıştır.

Misal

Aşağıda bir KeySpace oluşturmanın bir örneği verilmiştir.

  • Burada adında bir KeySpace oluşturuyoruz TutorialsPoint.

  • İlk kopya yerleştirme stratejisini kullanıyoruz, yani. Simple Strategy.

  • Ve çoğaltma faktörünü seçiyoruz 1 replica.

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

Doğrulama

Tablonun oluşturulup oluşturulmadığını komutu kullanarak doğrulayabilirsiniz. Describe. Bu komutu keyspaces üzerinde kullanırsanız, aşağıda gösterildiği gibi oluşturulan tüm keyspaces görüntülenecektir.

cqlsh> DESCRIBE keyspaces;

tutorialspoint system system_traces

Burada yeni oluşturulan KeySpace'i gözlemleyebilirsiniz. tutorialspoint.

Durable_writes

Varsayılan olarak, bir tablonun dayanıklı_writes özellikleri şu şekilde ayarlanır: true,ancak yanlış olarak ayarlanabilir. Bu özelliği şu şekilde ayarlayamazsınızsimplex strategy.

Misal

Aşağıda, dayanıklı yazma özelliğinin kullanımını gösteren örnek verilmiştir.

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

Doğrulama

Test KeySpace'in dayanıklı_writes özelliğinin false olarak ayarlanıp ayarlanmadığını, Sistem Anahtar Alanını sorgulayarak doğrulayabilirsiniz. Bu sorgu, özellikleriyle birlikte size tüm KeySpace'lerini verir.

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)

Burada test KeySpace'in dayanıklı_writes özelliğinin yanlış olarak ayarlandığını görebilirsiniz.

Bir Anahtar Alanı Kullanma

Anahtar kelimeyi kullanarak oluşturulmuş bir KeySpace kullanabilirsiniz. USE. Sözdizimi aşağıdaki gibidir -

Syntax:USE <identifier>

Misal

Aşağıdaki örnekte, KeySpace kullanıyoruz tutorialspoint.

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>

Java API kullanarak bir Anahtar Alanı Oluşturma

Kullanarak bir Keyspace oluşturabilirsiniz. execute() yöntemi Sessionsınıf. Java API kullanarak bir anahtar alanı oluşturmak için aşağıda verilen adımları izleyin.

Adım 1: Küme Nesnesi Oluşturun

Her şeyden önce, bir örnek oluşturun Cluster.builder sınıfı com.datastax.driver.core aşağıda gösterildiği gibi paketleyin.

//Creating Cluster.Builder object

Cluster.Builder builder1 = Cluster.builder();

Kullanarak bir iletişim noktası (düğümün IP adresi) ekleyin addContactPoint() yöntemi Cluster.Buildernesne. Bu yöntem döndürürCluster.Builder.

//Adding contact point to the Cluster.Builder object

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

Yeni oluşturucu nesnesini kullanarak bir küme nesnesi oluşturun. Bunu yapmak için adında bir yönteminiz varbuild() içinde Cluster.Buildersınıf. Aşağıdaki kod, bir küme nesnesinin nasıl oluşturulacağını gösterir.

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

Aşağıda gösterildiği gibi tek bir kod satırında bir küme nesnesi oluşturabilirsiniz.

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

Adım 2: Bir Oturum Nesnesi Oluşturun

Bir örnek oluşturun Session kullanarak nesne connect() yöntemi Cluster aşağıda gösterildiği gibi sınıf.

Session session = cluster.connect( );

Bu yöntem yeni bir oturum oluşturur ve onu başlatır. Zaten bir anahtar alanınız varsa, aşağıda gösterildiği gibi bu yönteme dize biçiminde anahtar alanı adını ileterek var olana ayarlayabilirsiniz.

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

3. Adım: Sorguyu Çalıştırın

Yürütebilirsin CQL kullanarak sorgular execute() yöntemi Sessionsınıf. Sorguyu dize biçiminde veya birStatement sınıf nesnesi execute()yöntem. Bu yönteme dize biçiminde ilettiğiniz her şey,cqlsh.

Bu örnekte, adında bir KeySpace oluşturuyoruz. tp. İlk replika yerleştirme stratejisini, yani Basit Strateji'yi kullanıyoruz ve replikasyon faktörünü 1 replikaya seçiyoruz.

Sorguyu bir dize değişkeninde saklamanız ve aşağıda gösterildiği gibi execute () yöntemine iletmeniz gerekir.

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

4. Adım: KeySpace'i kullanın

Aşağıda gösterildiği gibi execute () yöntemini kullanarak oluşturulmuş bir KeySpace kullanabilirsiniz.

execute(“ USE tp ” );

Aşağıda, Java API kullanarak Cassandra'da bir anahtar alanı oluşturmak ve kullanmak için eksiksiz bir program verilmiştir.

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

Yukarıdaki programı sınıf adı ve ardından .java ile kaydedin, kaydedildiği konuma göz atın. Programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Create_KeySpace.java
$java Create_KeySpace

Normal koşullar altında, aşağıdaki çıktıyı üretecektir -

Keyspace created