Cassandra-キースペースを作成する

Cqlshを使用したキースペースの作成

Cassandraのキースペースは、ノードでのデータレプリケーションを定義する名前空間です。クラスターには、ノードごとに1つのキースペースが含まれます。以下に、ステートメントを使用してキースペースを作成するための構文を示します。CREATE KEYSPACE

構文

CREATE KEYSPACE <identifier> WITH <properties>

すなわち

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

CREATEKEYSPACEステートメントには2つのプロパティがあります。 replication そして durable_writes

レプリケーション

レプリケーションオプションは、 Replica Placement strategy必要なレプリカの数。次の表に、すべてのレプリカ配置戦略を示します。

戦略名 説明
Simple Strategy' クラスターの単純なレプリケーション係数を指定します。
Network Topology Strategy このオプションを使用すると、各データセンターのレプリケーション係数を個別に設定できます。
Old Network Topology Strategy これはレガシーレプリケーション戦略です。

このオプションを使用すると、Cassandraに使用するかどうかを指示できます commitlog現在のKeySpaceの更新について。このオプションは必須ではなく、デフォルトではtrueに設定されています。

以下に、KeySpaceの作成例を示します。

  • ここでは、という名前のKeySpaceを作成しています TutorialsPoint

  • 最初のレプリカ配置戦略を使用しています。 Simple Strategy

  • そして、レプリケーションファクターを選択しています 1 replica

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

検証

コマンドを使用して、テーブルが作成されているかどうかを確認できます Describe。キースペースに対してこのコマンドを使用すると、以下に示すように作成されたすべてのキースペースが表示されます。

cqlsh> DESCRIBE keyspaces;

tutorialspoint system system_traces

ここでは、新しく作成されたKeySpaceを観察できます tutorialspoint.

Durable_writes

デフォルトでは、テーブルの耐久性のある_writesプロパティはに設定されています true,ただし、falseに設定できます。このプロパティをに設定することはできませんsimplex strategy.

以下に示すのは、永続書き込みプロパティの使用法を示す例です。

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

検証

システムキースペースにクエリを実行すると、テストKeySpaceのresundable_writesプロパティがfalseに設定されているかどうかを確認できます。このクエリは、すべてのKeySpaceとそのプロパティを提供します。

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)

ここでは、テストKeySpaceのresundable_writesプロパティがfalseに設定されていることを確認できます。

キースペースの使用

キーワードを使用して作成されたKeySpaceを使用できます USE。その構文は次のとおりです-

Syntax:USE <identifier>

次の例では、KeySpaceを使用しています tutorialspoint.

cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>

JavaAPIを使用したキースペースの作成

キースペースは、を使用して作成できます。 execute() の方法 Sessionクラス。以下の手順に従って、JavaAPIを使用してキースペースを作成します。

ステップ1:クラスターオブジェクトを作成する

まず、のインスタンスを作成します Cluster.builder のクラス com.datastax.driver.core 以下に示すパッケージ。

//Creating Cluster.Builder object

Cluster.Builder builder1 = Cluster.builder();

を使用して連絡先(ノードのIPアドレス)を追加します addContactPoint() の方法 Cluster.Builderオブジェクト。このメソッドはCluster.Builder

//Adding contact point to the Cluster.Builder object

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

新しいビルダーオブジェクトを使用して、クラスターオブジェクトを作成します。これを行うには、次のメソッドがありますbuild() の中に Cluster.Builderクラス。次のコードは、クラスターオブジェクトを作成する方法を示しています。

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

以下に示すように、1行のコードでクラスターオブジェクトを構築できます。

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

ステップ2:セッションオブジェクトを作成する

のインスタンスを作成します Session を使用するオブジェクト connect() の方法 Cluster 以下に示すクラス。

Session session = cluster.connect( );

このメソッドは、新しいセッションを作成して初期化します。すでにキースペースがある場合は、以下に示すように、文字列形式のキースペース名をこのメソッドに渡すことで、既存のキースペースに設定できます。

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

ステップ3:クエリを実行する

実行できます CQL を使用したクエリ execute() の方法 Sessionクラス。文字列形式またはとしてクエリを渡しますStatement クラスオブジェクト execute()方法。文字列形式でこのメソッドに渡すものはすべて、で実行されます。cqlsh

この例では、次の名前のKeySpaceを作成しています tp. 最初のレプリカ配置戦略、つまりシンプル戦略を使用しており、1つのレプリカに対するレプリケーション係数を選択しています。

以下に示すように、クエリを文字列変数に格納し、execute()メソッドに渡す必要があります。

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

ステップ4:KeySpaceを使用する

以下に示すように、execute()メソッドを使用して作成されたKeySpaceを使用できます。

execute(“ USE tp ” );

以下に示すのは、JavaAPIを使用してCassandraでキースペースを作成および使用するための完全なプログラムです。

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

上記のプログラムをクラス名の後に.javaを付けて保存し、保存されている場所を参照します。以下に示すように、プログラムをコンパイルして実行します。

$javac Create_KeySpace.java
$java Create_KeySpace

通常の状態では、次の出力が生成されます-

Keyspace created