Membuat, Mengubah, Menghapus dan Menggunakan Keyspace Cassandra

M. Ramadhan
Telematika
Published in
4 min readFeb 23, 2020

Keyspace telah dibahas pada tulisan sebelumnya berjudul Arsitektur dan Model Data Cassandra. Tulisan ini akan membahas bagaimana:
• membuat keyspace menggunakan pernyataan CREATE KEYSPACE
• mengubah keyspace menggunakan pernyataan ALTER KEYSPACE
• menghapus keyspace menggunakan pernyataan DROP KEYSPACE
• menggunakan keyspace dengan pernyataan USE

Membuat Keyspace

Diagram sintaks membuat keyspace
Diagram sintaks peta_replikasi

Nama Keyspace
• maksimum 48 karakter
• harus diawali dengan huruf
• karakter berikutnya boleh huruf, angka atau garis bawah
• jika keyspace dengan nama yang sama sudah ada, operasi gagal
• gunakan klausa IF NOT EXIST untuk meniadakan pesan kesalahan.

Peta Replikasi
Peta replikasi menyatakan berapa banyak salinan (replika) data disimpan dalam data center (pusat data). Hal ini berdampak pada konsistensi, ketersediaan, dan kecepatan.

Replika disimpan pada banyak node untuk memastikan keandalan dan toleransi kesalahan. Strategi replikasi menentukan node tertentu tempat replika disimpan. Jumlah total replika di seluruh cluster disebut sebagai replication factor (faktor replikasi). Faktor replikasi 1 berarti bahwa hanya ada satu salinan dari setiap baris yang disimpan pada satu simpul di cluster. Faktor replikasi 2 berarti ada dua salinan dari setiap baris yang disimpan pada dua simpul yang berbeda. Semua replika sama pentingnya; tidak ada replika primer atau master. Sebagai aturan umum, faktor replikasi tidak boleh melebihi jumlah node dalam cluster.

Strategi replikasi didefinisikan per keyspace, dan ditentukan ketika pembuatan keyspace. Ada dua strategi replikasi, yaitu:
(1) Simple Strategy
(2) Network Topology Strategy

Simple Strategy
Gunakan hanya untuk pengembangan dan jika hanya memiliki pusat data tunggal. Jika memiliki lebih dari satu pusat data, gunakan NetworkTopologyStrategy. SimpleStrategy menempatkan replika pertama pada node (simpul) yang ditentukan oleh partitioner yang diset dalam file cassandra.yaml. Replika tambahan ditempatkan pada node berikutnya searah jarum jam pada ring tanpa mempertimbangkan topologi.

Membuat keyspace Pustaka dengan faktor replikasi 1, pernyataan CQL-nya adalah sebagai berikut:

CREATE KEYSPACE IF NOT EXISTS Pustaka
WITH REPLICATION = {
'class' : 'SimpleStrategy',
'replication_factor' : 1
};

Network Topology Strategy
Sangat direkomendasikan karena jauh lebih mudah untuk memperluas cluster ke beberapa pusat data. Strategi ini menentukan berapa banyak replika yang diinginkan di setiap pusat data. Replika ditempatkan di pusat data yang sama dengan berjalan pada ring searah jarum jam hingga mencapai simpul pertama di rak lain. Replika ditempatkan di rak yang berbeda karena node di rak yang sama (atau pengelompokan fisik serupa) berisiko gagal pada saat yang sama karena masalah daya, pendinginan, atau jaringan.

Membuat keyspace Akademik dengan dua pusat data, pusat data indralaya dengan faktor replikasi 3, dan pusat data bukitBesar dengan faktor replikasi 2, pernyataan CQL-nya adalah sebagai berikut:

CREATE KEYSPACE IF NOT EXISTS Akademik
WITH REPLICATION = {
'class' : 'NetworkTopologyStrategy',
'indralaya' : 3 , // Datacenter 1
'bukitBesar' : 2 , // Datacenter 2
};

DURABLE_WRITES = true | false
optional (pilihan)
• nilai default adalah true
false mem-bypass log komit saat menulis ke keyspace (tidak disarankan).

Mengubah Keyspace

Diagram sintaks mengubah keyspace
  • Nama keyspace tidak dapat diubah.
  • Jika keyspace tidak ada, Cassandra akan menampilkan pesan kesalahan.
  • Gunakan klausa IF EXIST untuk meniadakan pesan kesalahan.
  • Peta replikasi dapat diubah baik strategi maupun faktor replikasinya.
  • Nilai DURABLE_WRITES dapat diubah dengan menetapkan nilainya trueatau false.
  • Gunakan klausa IF EXIST untuk meniadakan pesan kesalahan.

Menghapus Keyspace

Diagram sintaks menghapus keyspace
  • Perintah DROP KEYSPACEmenghapus semua komponen yang ada dalam keyspace termasuk semua tabel, column family, data indeks.
  • Jika keyspace tidak ada, Cassandra akan menampilkan pesan kesalahan.
  • Gunakan klausa IF EXIST untuk meniadakan pesan kesalahan.

Menggunakan (Mengaktifkan) Keyspace

Diagram sintaks menggunakan keyspace
  • Digunakan untuk mengaktifkan keyspace yang ada.
  • Untuk menggunakan keyspace peka huruf besar kecil, tulis nama keyspace dalam tanda kutip tunggal.

Pada tulisan berikutnya akan dibahas pernyataan CREATE TABLE untuk membuat tabel dan pernyataan INSERT INTO untuk menambahkan datanya.

Referensi

--

--

M. Ramadhan
Telematika

I’m a database designer and developer, childhood in Menggala, living in Palembang.