Cassandra Tabel CQL: Contoh Pembuatan, Pengubahan & Penghapusan
โก Ringkasan Cerdas
Cassandra Operasi tabel mencakup pembuatan, pengubahan, dan penghapusan.ping, dan memangkas keluarga kolom dengan CQL. Halaman ini menjelaskan setiap perintah, tiga bentuk kunci utama yang menentukan distribusi data, dan perbedaan antara menghapus baris dan menghapus tabel.

Sintaks dari Cassandra Bahasa kueri (CQL) menyerupai SQL bahasa.
Cara Membuat Tabel di Cassandra
Keluarga kolom di Cassandra mirip dengan tabel RDBMS. Keluarga kolom digunakan untuk menyimpan data.
Perintah 'Buat Tabel' digunakan untuk membuat kelompok kolom Cassandra.
Sintaksis
CREATE TABLE KeyspaceName.TableName ( ColumnName DataType, ColumnName DataType, ColumnName DataType, PRIMARY KEY (ColumnName) ) WITH PropertyName = PropertyValue;
1. Kunci utama: Ada dua jenis kunci utama.
- Kunci Utama Tunggal: Kunci utama tunggal ditentukan oleh sintaksis berikut.
Sintaksis
PRIMARY KEY (ColumnName)
Dalam kunci utama tunggal, hanya ada satu kolom. Kolom itu juga disebut kunci partisi. Data dipartisi berdasarkan kolom itu. Data tersebar di berbagai node berdasarkan kunci partisi.
2. Kunci Utama Gabungan: Kunci utama gabungan ditetapkan dengan sintaksis berikut.
Sintaksis
PRIMARY KEY (ColumnName1, ColumnName2, ...)
Dalam sintaks di atas, ColumnName1 adalah kunci partisi dan ColumnName2 adalah Clusterkunci ing. Data akan dipartisi berdasarkan ColumnName1 dan data akan dikelompokkan berdasarkan ColumnName2. Clustering adalah proses mengurutkan data di partisi.
3. Kunci Partisi Gabungan: Kunci partisi gabungan ditetapkan oleh sintaksis berikut.
Sintaksis
PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)
Dalam sintaks di atas, ColumnName1 dan ColumnName2 adalah kunci partisi gabungan. Data akan dipartisi berdasarkan kedua kolom ColumnName1 dan ColumnName2, dan data akan dikelompokkan berdasarkan ColumnName3. Jika Anda memiliki terlalu banyak data dalam satu partisi, maka kunci partisi gabungan digunakan. Kunci partisi gabungan digunakan untuk membuat beberapa partisi untuk data.
- Dengan Klausul
โDengan klausaโ digunakan untuk menentukan properti apa pun dan nilainya untuk tabel yang ditentukan. Misalnya saja ingin mengompres Cassandra data tabel. Anda dapat mengatur properti kompresi dengan menentukan nilai properti algoritma kompresi di klausa โWithโ. Klausa yang sama juga mengatur CLUSTERING ORDER BY untuk membalik arah pengurutan kolom pengelompokan, dan default_time_to_live untuk kedaluwarsa setiap baris secara otomatis.
Example
Berikut adalah eksekusi perintah 'Buat tabel' yang akan membuat nama tabel 'Mahasiswa' di keyspace 'Universitas'.
CREATE TABLE University.Student ( RollNo int, Name text, dept text, PRIMARY KEY (RollNo) );
Setelah perintah 'Create table' berhasil dieksekusi, tabel 'Student' akan dibuat di keyspace 'University' dengan kolom RollNo, Name, dan dept. RollNo adalah primary key. RollNo juga merupakan partition key, sehingga setiap mahasiswa menempati partisi baris tunggal yang terpisah.
Cassandra Ubah tabel
Perintah 'Ubah Tabel' digunakan untuk menghapus kolom, menambah kolom baru, mengubah nama kolom, mengubah jenis kolom dan mengubah properti tabel.
Sintaksis
Berikut ini adalah sintaks perintah 'Alter Table.'
ALTER TABLE KeyspaceName.TableName ADD ColumnName ColumnDataType; ALTER TABLE KeyspaceName.TableName DROP ColumnName; ALTER TABLE KeyspaceName.TableName RENAME ColumnName TO NewColumnName; ALTER TABLE KeyspaceName.TableName WITH PropertyName = PropertyValue;
Setiap formulir diterbitkan sebagai pernyataan terpisah. Dua batasan berlaku saat ini. Cassandra Pembaruan: tipe data kolom yang sudah ada tidak dapat lagi diubah, dan RENAME hanya berfungsi pada kolom pengelompokan (clustering column) dari kunci utama.
Example
Berikut adalah cuplikan dari perintah 'Ubah Tabel' yang akan menambah kolom baru pada tabel Siswa.
ALTER TABLE University.Student ADD Semester int;
Setelah perintah 'Ubah Tabel' berhasil dijalankan, kolom baru 'Semester' dengan tipe data 'int' akan ditambahkan ke tabel Siswa.
Berikut adalah tangkapan layar yang menunjukkan tabel Siswa yang telah diperbarui.
Cassandra Meja Taruh
Perintah 'Drop table' menghapus tabel yang ditentukan beserta seluruh datanya dari keyspace. Sebelum melakukan penghapusanping meja, Cassandra mengambil cuplikan data, bukan skema sebagai cadangan.
Sintaksis
DROP TABLE IF EXISTS KeyspaceName.TableName;
Example
Berikut adalah cuplikan dari perintah 'Drop Table' yang dijalankan yang akan menghapus tabel Student dari keyspace 'Universitas'.
DROP TABLE University.Student;
Setelah eksekusi perintah 'Drop Table' berhasil, tabel Student akan dikeluarkan dari keyspace Universitas.
Berikut adalah cuplikan yang menunjukkan kesalahan yang dikembalikan oleh Cassandra ketika mencoba mengakses tabel Siswa yang tidak ada.
Cassandra Potong Tabel
Perintah 'Pangkas tabel' menghapus semua data dari tabel yang ditentukan. Sebelum memotong data, Cassandra mengambil snapshot data sebagai cadangan.
Sintaksis
TRUNCATE KeyspaceName.TableName;
Example
Ada tiga catatan dalam tabel Siswa. Ini adalah catatan dalam tabel.
Berikut adalah cuplikan dari perintah 'Truncate table' yang dijalankan yang akan menghapus semua data dari tabel Siswa.
Setelah perintah 'Truncate Table' berhasil dieksekusi, semua data akan dihapus dari tabel Siswa.
Berikut adalah snapshot dari keadaan database dimana tidak ada record pada tabel Student.
Perintah truncate membutuhkan setiap node agar dapat dijangkau, karena dieksekusi di seluruh cluster sekaligus. Jika ada node yang mati, perintah tersebut akan gagal, yang merupakan pengamanan yang disengaja untuk mencegah tertinggalnya data parsial.
Drop vs Truncate vs Delete dalam Cassandra
Tiga perintah dapat menghapus data, dan memilih perintah yang salah akan merusak skema atau menimbulkan masalah kinerja.
| perintah | Apa yang dihilangkannya | Skema dipertahankan | Biaya |
|---|---|---|---|
| DROP MEJA | Semua baris dan definisi tabel | Tidak | Murah. SSTable diambil snapshot-nya lalu dibuang. |
| MEMOTONG | Semua baris | Ya | Murah, tetapi membutuhkan semua node aktif. Tidak ada data yang dihapus (tombstone) yang dibuat. |
| DELETE | Baris atau kolom yang dipilih | Ya | Mahal jika dilakukan dalam skala besar. Setiap pemindahan akan meninggalkan catatan yang bertuliskan "harus dilewati sampai terjadi pemadatan". |
Aturan praktisnya adalah lebih memilih TRUNCATE daripada DELETE secara massal saat membersihkan seluruh tabel, karena ribuan tombstone akan memperlambat setiap pembacaan partisi berikutnya. Penghapusan tingkat baris dibahas di bagian selanjutnya. Sisipkan, perbarui, dan hapus CQL tutorial.








