Cassandra - Buat Keyspace
Membuat Keyspace menggunakan Cqlsh
Ruang kunci di Cassandra adalah ruang nama yang mendefinisikan replikasi data pada node. Sebuah cluster berisi satu ruang kunci per node. Diberikan di bawah ini adalah sintaks untuk membuat ruang kunci menggunakan pernyataanCREATE KEYSPACE.
Sintaksis
CREATE KEYSPACE <identifier> WITH <properties>
yaitu
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’;
Pernyataan CREATE KEYSPACE memiliki dua properti: replication dan durable_writes.
Replikasi
Opsi replikasi adalah menentukan file Replica Placement strategydan jumlah replika yang diinginkan. Tabel berikut mencantumkan semua strategi penempatan replika.
Nama strategi | Deskripsi |
---|---|
Simple Strategy' | Menentukan faktor replikasi sederhana untuk cluster. |
Network Topology Strategy | Dengan menggunakan opsi ini, Anda dapat mengatur faktor replikasi untuk setiap pusat data secara independen. |
Old Network Topology Strategy | Ini adalah strategi replikasi lama. |
Menggunakan opsi ini, Anda dapat menginstruksikan Cassandra apakah akan menggunakan commitloguntuk pembaruan pada KeySpace saat ini. Opsi ini tidak wajib dan secara default, ini disetel ke true.
Contoh
Diberikan di bawah ini adalah contoh membuat KeySpace.
Di sini kami membuat KeySpace bernama TutorialsPoint.
Kami menggunakan strategi penempatan replika pertama, yaitu, Simple Strategy.
Dan kami memilih faktor replikasi ke 1 replica.
cqlsh.> CREATE KEYSPACE tutorialspoint
WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};
Verifikasi
Anda dapat memverifikasi apakah tabel dibuat atau tidak menggunakan perintah Describe. Jika Anda menggunakan perintah ini di atas ruang tombol, ini akan menampilkan semua ruang tombol yang dibuat seperti yang ditunjukkan di bawah ini.
cqlsh> DESCRIBE keyspaces;
tutorialspoint system system_traces
Di sini Anda dapat mengamati KeySpace yang baru dibuat tutorialspoint.
Durable_writes
Secara default, properti tahan lama_writes dari tabel diatur ke true,namun dapat disetel ke false. Anda tidak dapat menyetel properti ini kesimplex strategy.
Contoh
Diberikan di bawah ini adalah contoh yang menunjukkan penggunaan properti tulis tahan lama.
cqlsh> CREATE KEYSPACE test
... WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 3 }
... AND DURABLE_WRITES = false;
Verifikasi
Anda dapat memverifikasi apakah properti durable_writes dari uji coba KeySpace disetel ke false dengan menanyakan ke Ruang Tombol Sistem. Kueri ini memberi Anda semua KeySpaces beserta propertinya.
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)
Di sini Anda dapat mengamati properti tahan lama_writes dari uji coba KeySpace disetel ke false.
Menggunakan Keyspace
Anda dapat menggunakan KeySpace yang dibuat menggunakan kata kunci USE. Sintaksnya adalah sebagai berikut -
Syntax:USE <identifier>
Contoh
Dalam contoh berikut, kami menggunakan KeySpace tutorialspoint.
cqlsh> USE tutorialspoint;
cqlsh:tutorialspoint>
Membuat Keyspace menggunakan Java API
Anda dapat membuat Keyspace menggunakan execute() metode dari Sessionkelas. Ikuti langkah-langkah yang diberikan di bawah ini untuk membuat ruang kunci menggunakan Java API.
Langkah 1: Buat Objek Cluster
Pertama-tama, buat instance Cluster.builder kelas dari com.datastax.driver.core paket seperti yang ditunjukkan di bawah ini.
//Creating Cluster.Builder object
Cluster.Builder builder1 = Cluster.builder();
Tambahkan titik kontak (alamat IP node) menggunakan addContactPoint() metode dari Cluster.Builderobyek. Metode ini kembaliCluster.Builder.
//Adding contact point to the Cluster.Builder object
Cluster.Builder builder2 = build.addContactPoint( "127.0.0.1" );
Menggunakan objek builder baru, buat objek cluster. Untuk melakukannya, Anda memiliki metode yang disebutbuild() dalam Cluster.Builderkelas. Kode berikut menunjukkan cara membuat objek cluster.
//Building a cluster
Cluster cluster = builder.build();
Anda dapat membangun objek cluster dalam satu baris kode seperti yang ditunjukkan di bawah ini.
Cluster cluster = Cluster.builder().addContactPoint("127.0.0.1").build();
Langkah 2: Buat Objek Sesi
Buat sebuah instance dari Session objek menggunakan connect() metode dari Cluster kelas seperti yang ditunjukkan di bawah ini.
Session session = cluster.connect( );
Metode ini membuat sesi baru dan menginisialisasinya. Jika Anda sudah memiliki ruang kunci, Anda dapat menyetelnya ke yang sudah ada dengan meneruskan nama ruang kunci dalam format string ke metode ini seperti yang ditunjukkan di bawah ini.
Session session = cluster.connect(“ Your keyspace name ” );
Langkah 3: Jalankan Kueri
Anda bisa mengeksekusi CQL kueri menggunakan execute() metode dari Sessionkelas. Teruskan kueri baik dalam format string atau sebagaiStatement objek kelas ke execute()metode. Apa pun yang Anda berikan ke metode ini dalam format string akan dieksekusi dicqlsh.
Dalam contoh ini, kami membuat KeySpace bernama tp. Kami menggunakan strategi penempatan replika pertama, yaitu Strategi Sederhana, dan kami memilih faktor replikasi menjadi 1 replika.
Anda harus menyimpan kueri dalam variabel string dan meneruskannya ke metode execute () seperti yang ditunjukkan di bawah ini.
String query = "CREATE KEYSPACE tp WITH replication "
+ "= {'class':'SimpleStrategy', 'replication_factor':1}; ";
session.execute(query);
Step4: Gunakan KeySpace
Anda dapat menggunakan KeySpace yang dibuat menggunakan metode execute () seperti yang ditunjukkan di bawah ini.
execute(“ USE tp ” );
Diberikan di bawah ini adalah program lengkap untuk membuat dan menggunakan ruang kunci di Cassandra menggunakan 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");
}
}
Simpan program di atas dengan nama kelas diikuti dengan .java, telusuri ke lokasi penyimpanannya. Kompilasi dan jalankan program seperti yang ditunjukkan di bawah ini.
$javac Create_KeySpace.java
$java Create_KeySpace
Dalam kondisi normal, ini akan menghasilkan keluaran sebagai berikut -
Keyspace created