Ruang kunci di CassandraContoh: Buat, Ubah & Hapus
⚡ Ringkasan Cerdas
Ruang kunci di Cassandra adalah wadah data terluar, setara dengan basis data dalam sistem relasional, dan menentukan bagaimana setiap tabel di dalamnya direplikasi. Halaman ini membahas pembuatan, pengubahan, dan penghapusanping Ruang kunci, beserta properti dan ruang kunci sistemnya.
Apa itu Keyspace Cassandra?
Ruang Kunci di Cassandra adalah wadah data, mirip dengan basis data dalam RDBMS (Sistem Manajemen Basis Data Relasional). Cassandra Keyspace menentukan bagaimana data direplikasi pada node.
Karena replikasi diatur pada keyspace dan bukan pada tabel individual, setiap tabel yang dibuat di dalamnya mewarisi strategi dan faktor replikasi yang sama. Hal ini menjadikan keyspace sebagai keputusan pertama dalam skema apa pun.
Cara Membuat Keyspace di Cassandra
Keyspace adalah objek yang menampung keluarga kolom, tipe yang ditentukan pengguna. Di dalam Cassandra, Keyspace mirip dengan RDBMS Basis data. Keyspace menampung kelompok kolom, indeks, tipe yang ditentukan pengguna, kesadaran pusat data, strategi yang digunakan dalam keyspace, faktor replikasi, dll.
Memerintah "Buat Ruang Kunci” digunakan untuk membuat keyspace di Cassandra.
Sintaksis
CREATE KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 };
Berbagai Komponen Cassandra Ruang kunci
- Penyelarasan: Sambil menyatakan nama strategi di Cassandra. Ada dua macam strategi yang dinyatakan dalam Cassandra Sintaksis.
- Strategi Sederhana: Strategi sederhana digunakan saat Anda hanya memiliki satu pusat data. Dalam strategi ini, replika pertama ditempatkan pada node yang dipilih oleh pemartisi. Node yang tersisa ditempatkan searah jarum jam di dalam ring tanpa mempertimbangkan lokasi rak atau node.
- Strategi Topologi Jaringan: Strategi topologi jaringan digunakan saat Anda memiliki lebih dari satu pusat data. Dalam strategi ini, Anda harus menyediakan faktor replikasi untuk setiap pusat data secara terpisah. Strategi topologi jaringan menempatkan replika di node searah jarum jam di pusat data yang sama. Strategi ini mencoba menempatkan replika di rak yang berbeda.
- Faktor Replikasi: Faktor replikasi adalah jumlah replika data yang ditempatkan pada node berbeda. Jika tidak ada kegagalan, 3 adalah faktor replikasi yang baik. Lebih dari dua faktor replikasi memastikan tidak ada satu titik kegagalan pun. Kadang-kadang, server bisa mati, atau masalah jaringan bisa terjadi, kemudian replika lain memberikan layanan tanpa kegagalan.
- Contoh: Berikut adalah cuplikan dari perintah “Create Keyspace” yang dijalankan yang akan membuat keyspace masuk Cassandra.
CREATE KEYSPACE University WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': 3 };
Setelah eksekusi perintah “Create Keyspace” berhasil, Universitas Keyspace akan dibuat Cassandra dengan strategi “SimpleStrategy” dan faktor replikasi 3. Perhatikan bahwa nama strategi harus diberi tanda kutip; nilai tanpa tanda kutip akan ditolak sebagai kesalahan sintaks.
Ubah Ruang Kunci Cassandra
Perintah “Alter Keyspace” mengubah faktor replikasi, nama strategi, dan properti penulisan tahan lama di keyspace yang dibuat Cassandra.
Sintaksis
ALTER KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 } AND DURABLE_WRITES = true;
Aspek kunci saat mengubah Keyspace Cassandra
- Nama Keyspace: Nama keyspace tidak dapat diubah Cassandra.
- Nama Strategi: Nama strategi dapat diubah dengan menentukan nama strategi baru.
- Faktor Replikasi: Faktor replikasi dapat diubah dengan menentukan faktor replikasi baru.
- DURABLE_WRITES: Nilai DURABLE_WRITES dapat diubah dengan menentukan nilainya true atau false. Secara default, nilainya adalah true. Jika diatur ke false, tidak ada pembaruan yang akan ditulis ke log commit dan sebaliknya.
- Eksekusi: Berikut adalah cuplikan dari perintah yang dijalankan “Alter Keyspace” yang mengubah strategi keyspace dari 'SimpleStrategy' menjadi 'NetworkTopologyStrategy' dan faktor replikasi dari 3 menjadi 1 untuk DataCenter1.
ALTER KEYSPACE University WITH replication = { 'class': 'NetworkTopologyStrategy', 'DataCenter1': 1 };
Setelah perintah “Alter Keyspace” berhasil dieksekusi, nama strategi akan diubah dari 'SimpleStrategy' menjadi 'NetworkTopologyStrategy' dan faktor replikasi akan diubah dari 3 menjadi 1 untuk 'DataCenter1.'
Penting: Meningkatkan faktor replikasi tidak secara otomatis menyalin data yang sudah ada. Jalankan perbaikan nodetool pada keyspace yang terpengaruh setelahnya, jika tidak, replika baru akan tetap kosong sampai perbaikan baca terjadi untuk menyentuh setiap baris.
Cassandra Jatuhkan Ruang Kunci
Memerintah 'Jatuhkan Ruang Kunci' menghilangkan keyspace termasuk semua data, kelompok kolom, tipe yang ditentukan pengguna, dan indeks darinya CassandraSebelum jatuhping ruang kunci, Cassandra mengambil snapshot dari keyspace. Jika keyspace tidak ada di Cassandra, Cassandra akan mengembalikan kesalahan kecuali IF EXISTS digunakan.
Sintaksis
DROP KEYSPACE IF EXISTS KeyspaceName;
Example
Berikut adalah cuplikan dari perintah 'Drop Keyspace' yang dijalankan yang akan menghapus keyspace University.
DROP KEYSPACE University;
Setelah perintah 'Drop keyspace University' berhasil dijalankan, keyspace University akan dihapus Cassandra dengan semua data dan skema.
Berikut adalah cuplikan di mana kesalahan dikembalikan ketika mencoba mengakses keyspace yang tidak ada.
Note: Tidak ada perbedaan antara drop keyspace dan delete keyspace. Drop keyspace sama dengan menghapus keyspace.
Properti Ruang Kunci dan Ruang Kunci Sistem
Di luar pembuatan dan penghapusanpingTiga perintah tersebut mencakup hampir semua pekerjaan keyspace sehari-hari di cqlsh.
DESCRIBE KEYSPACES; DESCRIBE KEYSPACE University; USE University;
Yang pertama mencantumkan setiap keyspace pada cluster, yang kedua mencetak skema lengkap dari satu keyspace termasuk tabel-tabelnya, dan yang ketiga mengatur keyspace saat ini sehingga nama tabel tidak lagi memerlukan awalan.
Bersamaan dengan keyspace pengguna, Cassandra mengirimkan beberapa di antaranya sendiri. Mereka muncul dalam output DESCRIBE KEYSPACES dan layak dikenali daripada dihapus.
- sistem: Status node lokal, termasuk rentang tokennya dan rekan-rekan yang diketahuinya.
- skema_sistem: Definisi dari setiap keyspace, tabel, kolom, dan indeks pada klaster.
- otentikasi sistem: Peran, izin, dan kredensial saat otentikasi diaktifkan.
- sistem_terdistribusi: Riwayat perbaikan dan pencatatan lainnya di seluruh klaster.ping.
- sistem_tracadalah: Pertanyaan traces ditangkap ketika tracing dihidupkan.
Dua di antaranya perlu mendapat perhatian dalam proses produksi. otentikasi sistem Keyspace dibuat dengan faktor replikasi satu secara default; jika node tersebut hilang, tidak ada yang dapat masuk, jadi faktor replikasi harus dinaikkan agar sesuai dengan cluster. skema sistem Keyspace menjelaskan mengapa perubahan skema harus diterapkan satu per satu, karena perubahan secara bersamaan dapat menghasilkan versi skema yang saling bertentangan di berbagai node.
Kesalahan dan Solusi Umum pada Keyspace
Sebagian besar kegagalan keyspace menghasilkan pesan singkat yang mudah dikenali.
| error | Penyebab dan solusinya |
|---|---|
| Ruang kunci tidak dikenal | Tidak ada keyspace yang dipilih. Jalankan USE KeyspaceName, atau tambahkan awalan Keyspace.Table pada tabel. |
| Kesalahan sintaks pada 'SimpleStrategy' | Nama strategi tidak diberi tanda kutip. Tulis 'class': 'SimpleStrategy' dengan tanda kutip. |
| Opsi strategi yang tidak dikenali {replication_factor} | `replication_factor` digunakan dengan `NetworkTopologyStrategy`. Strategi tersebut menggunakan faktor per nama pusat data. |
| Tidak dapat menambahkan ruang kunci yang sudah ada. | Ruang kunci sudah ada. Tambahkan IF NOT EXISTS, atau hapus yang lama terlebih dahulu. |
| Data hilang setelah menaikkan faktor replikasi | Sesuai harapan. Jalankan nodetool repair pada keyspace agar replika baru terisi. |
Setelah keyspace terbentuk, langkah selanjutnya adalah mendefinisikan penyimpanan di dalamnya, yang akan dibahas lebih lanjut di bagian berikut. Cassandra tabel tutorial.





