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