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.

  • ๏ธ Buat Tabel: Sebuah tabel membutuhkan keyspace, definisi kolom, dan klausa kunci utama yang menetapkan distribusi dan urutan pengurutan.
  • ๐Ÿ”‘ Kunci Utama Tunggal: Satu kolom bertindak sebagai kunci partisi, sehingga setiap baris dengan nilai tersebut berada di node yang sama.
  • ๐Ÿงฉ Kunci Utama Gabungan: Kolom pertama melakukan partisi, kolom-kolom yang tersisa mengelompokkan dan mengurutkan baris di dalam partisi.
  • ๐Ÿงฎ Kunci Partisi Gabungan: Dengan memberi jarak antara dua kolom, partisi yang terlalu besar akan terbagi menjadi banyak partisi yang lebih kecil.
  • ๏ธ Ubah Batas: Kolom dapat ditambahkan atau dihapus, tetapi kolom kunci utama tidak dapat diubah sama sekali.
  • ๏ธ Menghapus vs Memotong: Perintah `drop` menghapus skema dan data; `truncate` mengosongkan setiap baris tetapi mempertahankan definisi tabel.

Cassandra Tabel Buat Ubah Hapus

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'.

Cassandra Buat tabel

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.

Cassandra Ubah tabel

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 Ubah tabel

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'.

Cassandra Meja Taruh

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 Meja Taruh

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.

Cassandra Potong Tabel

Berikut adalah cuplikan dari perintah 'Truncate table' yang dijalankan yang akan menghapus semua data dari tabel Siswa.

Cassandra Potong Tabel

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.

Cassandra Potong Tabel

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.

Pertanyaan Umum Demo Slot

Tidak. Kunci utama menentukan penempatan data fisik, jadi nilainya tetap saat pembuatan. Mengubahnya berarti membuat tabel baru dengan kunci yang diinginkan dan memindahkan baris-baris data ke tabel baru tersebut.

Tambahkan WITH CLUSTERING ORDER BY (ColumnName DESC) pada saat pembuatan skema. Mengaturnya dalam skema jauh lebih hemat biaya daripada melakukan pengurutan pada saat kueri di setiap pembacaan.

Tidak. Kolom tersebut disembunyikan dari kueri sekaligus, tetapi datanya tetap berada di dalam SSTable yang ada hingga proses pemadatan menimpanya kembali. Ruang akan dikembalikan secara bertahap.

Daftar kolom diterjemahkan dengan rapi, tetapi AI sering menyimpan ID pengganti sebagai kunci partisi, yang menciptakan partisi satu baris. Nyatakan ulang pola kueri sehingga kunci dipilih untuk pembacaan.

Ya, untuk masalah tingkat pola seperti kolom pengelompokan yang hilang, partisi tak terbatas, atau kolom koleksi yang kemungkinan melebihi batas. Konfirmasikan dengan kardinalitas sebenarnya sebelum bertindak.

Ringkaslah postingan ini dengan: