Pendahuluan
Cassandra adalah perangkat lunak untuk mengelola database NoSQL. Organisasi menggunakannya untuk menangani volume data yang besar secara terdistribusi. Popularitas perangkat lunak ini meningkat karena sangat tersedia dan toleran terhadap kesalahan.
Untuk mencapai ini, Cassandra pindah dari konsep master atau node bernama ke node terdistribusi P2P simetris. Setiap node dalam sebuah cluster memiliki satu atau beberapa keyspaces yang berisi data.
Dalam panduan ini, pelajari apa itu keyspace, komponennya, dan cara membuat, mengubah, dan melepaskan keyspace.
Prasyarat
- Kassandra diinstal pada sistem Anda
- Akses ke terminal atau baris perintah
- Izin yang diperlukan untuk menjalankan perintah CQL
Apa itu Keyspace di Cassandra?
Ruang kunci adalah penampung data di Cassandra, mirip dengan database dalam sistem manajemen database relasional (RDMBS). Sebuah cluster memiliki satu keyspace per aplikasi, sebanyak yang dibutuhkan, tergantung pada kebutuhan dan penggunaan sistem. Ruang kunci adalah entitas yang sepenuhnya terpisah, dan data yang dikandungnya tidak terkait satu sama lain.
Dalam cluster Cassandra, keyspace adalah objek terluar yang menentukan bagaimana data direplikasi pada node. Ruang kunci terdiri dari objek inti yang disebut keluarga kolom (yang seperti tabel di RDBMS), baris yang diindeks oleh kunci, tipe data, kesadaran pusat data, faktor replikasi, dan strategi ruang kunci.
Komponen Cassandra Keyspace
Ada beberapa komponen keyspace penting yang perlu Anda tentukan saat membuat keyspace. Komponen-komponen tersebut adalah:
Strategi Replikasi
Saat mendefinisikan keyspace, strategi replikasi menentukan node di mana replika akan ditempatkan. Dengan menggunakan beberapa node untuk menempatkan replika, Anda mencapai toleransi kesalahan, ketersediaan tinggi, dan keandalan.
Ada dua kemungkinan strategi:
- Strategi Sederhana. Gunakan strategi ini untuk lingkungan pengujian dan pengembangan, dan jika Anda tidak bermaksud untuk menyebarkan cluster ke lebih dari satu pusat data. Faktor replikasi berlaku untuk seluruh cluster. Partisi memutuskan di mana menempatkan replika pertama pada sebuah node. Kemudian, replika lainnya didistribusikan searah jarum jam pada node berikutnya terlepas dari pusat data atau lokasi.
- Strategi Topologi Jaringan. Strategi ini cocok ketika Anda perlu men-deploy cluster Anda ke beberapa pusat data. Namun, Anda dapat menggunakannya bahkan dengan satu pusat data sehingga Anda dapat memperluasnya nanti. Strategi Topologi Jaringan bekerja untuk produksi dan pengembangan. Itu cenderung menempatkan replika pada node yang tidak berada di rak yang sama untuk menghindari masalah ketika satu rak turun. Setiap pusat data dapat memiliki faktor replikasi terpisah dengan menggunakan opsi ini.
Faktor Replikasi
Pengaturan ini menentukan berapa banyak replika baris untuk disimpan pada setiap node.
Minimal harus dua replika per pusat data. Ini berarti bahwa kegagalan satu node tidak memengaruhi pengoperasian grup replikasi. Oleh karena itu, pengaturan yang disarankan adalah memiliki tiga salinan dari setiap baris pada node yang berbeda untuk mencapai toleransi kesalahan yang memuaskan.
Aturan praktisnya adalah menjaga faktor replikasi sama dengan jumlah node.
Sintaks Keyspace Dasar
Anda dapat membuat keyspace dengan pengaturan replikasi yang berbeda. Di bawah ini adalah sintaks dasar untuk membuat keyspace:
CREATE KEYSPACE keypsace_name WITH replication = {properties};
Properti mencakup pengaturan yang berbeda seperti strategi replikasi, faktor, atau penulisan yang tahan lama.
Buat Keyspace Menggunakan Cqlsh
Untuk membuat keyspace, luncurkan shell CQL:
cqlsh
Kemudian, dengan mengikuti sintaks dasar, buat ruang kunci dengan nama dan pengaturan replikasi yang diinginkan.
Dalam hal ini, kita akan membuat test_keyspace dengan SimpleStrategy dan replication_factor 3 :
CREATE KEYSPACE test_keyspace
WITH replication = {'class':'SimpleStrategy', 'replication_factor' : 3};
Gunakan contoh di atas bila Anda tidak bermaksud memperluas ke beberapa pusat data. Selain itu, jika Anda hanya memiliki satu node dan menggunakan Cassandra untuk pengujian, Anda dapat menyetel replication_factor ke 1 .
Untuk lingkungan produksi dan beberapa pusat data , buat ruang kunci dengan strategi replikasi topologi jaringan.
Untuk melakukannya, masukkan:
CREATE KEYSPACE keyspace_network_topology
WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3};
Nama pusat data default adalah pusat data1 . Untuk memeriksa nama pusat data Anda, tutup shell CQL dan gunakan nodetool :
nodetool status
Jika Anda memiliki beberapa pusat data, cantumkan semuanya dalam kueri dengan faktor replikasi masing-masing.
Misalnya, kueri untuk dua pusat data terlihat seperti ini:
CREATE KEYSPACE keyspace_network_topology
WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3, 'datacenter2' : 3};
Verifikasi Keyspace
Karena tidak ada respons dalam output untuk pembuatan keyspace yang berhasil, gunakan perintah ini untuk memverifikasi bahwa keyspace ada dalam daftar:
DESCRIBE KEYSPACES;
Sistem mengembalikan daftar semua ruang kunci Cassandra yang tersedia. Kami menyoroti dua ruang kunci yang kami buat dalam contoh di atas. Ada beberapa ruang kunci default yang disertakan dengan instalasi Cassandra.
Nonaktifkan Penulisan Tahan Lama
Di Cassandra, tulisan_tahan lama konfigurasi benar secara default. Anda dapat menonaktifkannya, tetapi hanya untuk NetworkTopologyStrategy . Opsi ini memberi tahu Cassandra apakah harus menggunakan commitlog untuk membuat pembaruan di keyspace yang dipilih.
Saat Anda mencoba menonaktifkan durable_writes saat membuat keyspace dengan SimpleStrategy, Anda mendapatkan peringatan untuk tidak melakukannya. Alasannya adalah Anda dapat kehilangan data jika tidak menyinkronkan data dari memtable menjadi stabil , dan pusat data Anda gagal.
Untuk menonaktifkan durable_writes saat membuat keyspace, masukkan kueri ini:
CREATE KEYSPACE keyspace_durwrites
WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 3}
AND DURABLE_WRITES = false;
Verifikasi Tulisan Tahan Lama
Anda dapat memeriksa kueri yang digunakan selama pembuatan keyspace dengan menjelaskan keyspace. tulisan_tahan lama bagian juga muncul:
DESCRIBE keyspace_durwrites
Untuk memeriksa durable_writes pengaturan untuk semua ruang kunci, kueri system_schema :
SELECT * FROM system_schema.keyspaces;
Outputnya menunjukkan semua ruang kunci dan pengaturannya, termasuk durable_writes .
Menggunakan Keyspace
Untuk memilih ruang kunci di Cassandra dan melakukan tindakan di atasnya, gunakan kata kunci USE
.
Sintaksnya adalah:
USE keyspace_name
Misalnya:
USE keyspace_durwrites;
Shell CQL beralih ke nama keyspace yang Anda tentukan. Untuk mengubah keyspace saat ini, gunakan perintah yang sama dengan nama lain.
Ubah Keyspace
Setelah membuat keyspace, Anda dapat mengubah konfigurasi menggunakan kata kunci ALTER
.
Satu-satunya yang tidak dapat Anda ubah adalah nama keyspace . Selain itu, Anda dapat mengubah strategi replikasi, faktor replikasi, dan penulisan yang tahan lama.
Untuk mengubah keyspace, ikuti sintaks yang sama seperti saat membuatnya, tetapi gunakan ALTER
alih-alih CREATE
. Ubah nilai yang Anda inginkan.
Misalnya:
ALTER KEYSPACE keyspace_durwrites
WITH replication = {'class':'NetworkTopologyStrategy', 'datacenter1' : 2}
AND DURABLE_WRITES = true;
Untuk memverifikasi bahwa perubahan diterapkan, gunakan DESCRIBE
kata kunci:
Gambar di atas menunjukkan konfigurasi keyspace sebelum dan sesudah perubahan.
Lepaskan atau Hapus Keyspace
Jika Anda menjatuhkan keyspace, itu akan dihapus dari sistem. DROP
kata kunci menghapus semua kelompok kolom dari ruang kunci, serta indeks dan tipe data.
Untuk menghapus keyspace di Cassandra, gunakan sintaks ini:
DROP keyspace_name;
Misalnya:
DROP keyspace_durwrites;
Untuk memastikan Anda menghapus keyspace, gunakan DESCRIBE
kueri.