Pendahuluan
Cassandra adalah perangkat lunak basis data terdistribusi sumber terbuka untuk menangani basis data NoSQL. Perangkat lunak ini menggunakan CQL (Cassandra Query Language) sebagai dasar komunikasi. CQL menyimpan data dalam tabel yang disusun dalam kumpulan baris dengan kolom yang berisi pasangan nilai kunci.
Tabel CQL dikelompokkan dalam wadah data yang disebut ruang kunci di Cassandra. Data yang disimpan dalam satu keyspace tidak terkait dengan data lain dalam cluster. Jadi, Anda dapat memiliki tabel untuk berbagai tujuan berbeda di ruang kunci terpisah dalam sebuah cluster, dan datanya tidak akan sama.
Dalam panduan ini, Anda akan mempelajari cara membuat tabel Cassandra untuk beberapa tujuan berbeda, dan cara mengubah, melepaskan, atau memotong tabel menggunakan cangkang Cassandra.
Prasyarat
- Perangkat lunak basis data Cassandra terinstal di sistem Anda
- Akses ke terminal atau alat baris perintah untuk memuat cqlsh
- Pengguna dengan izin yang diperlukan untuk menjalankan perintah
Memilih Keyspace untuk Tabel Cassandra
Sebelum Anda mulai menambahkan tabel, Anda perlu menentukan keyspace tempat Anda ingin membuat tabel . Ada dua opsi untuk melakukan ini.
Opsi 1:Perintah USE
Jalankan USE
perintah untuk memilih keyspace yang akan diterapkan semua perintah Anda. Untuk melakukannya, di cqlsh shell ketik:
USE keyspace_name;
Kemudian, Anda dapat mulai menambahkan tabel.
Opsi 2:Tentukan Nama Keyspace di Kueri
Opsi kedua adalah menentukan nama keyspace dalam kueri untuk pembuatan tabel. Bagian pertama dari perintah, sebelum nama kolom dan opsi, terlihat seperti ini:
CREATE TABLE keyspace_name.table_name
Dengan cara ini, Anda segera membuat tabel di ruang kunci yang Anda tentukan.
Sintaks Dasar untuk Membuat Tabel Cassandra
Membuat tabel menggunakan CQL terlihat mirip dengan kueri SQL. Di bagian ini, kami akan menunjukkan kepada Anda sintaks dasar untuk membuat tabel di Cassandra.
Sintaks dasar untuk membuat tabel terlihat seperti ini:
CREATE TABLE tableName (
columnName1 dataType,
columnName2 dataType,
columnName2 datatype
PRIMARY KEY (columnName)
);
Secara opsional, Anda dapat menentukan properti dan nilai tabel tambahan menggunakan WITH
:
WITH propertyName=propertyValue;
Misalnya, gunakan untuk menentukan cara menyimpan data pada disk atau apakah akan menggunakan kompresi.
Jenis Kunci Utama Cassandra
Setiap tabel di Cassandra harus memiliki kunci utama, yang membuat baris menjadi unik. Dengan kunci utama, Anda menentukan node mana yang menyimpan data dan cara mempartisinya.
Ada dua jenis kunci utama:
- Kunci utama sederhana . Hanya berisi satu nama kolom sebagai kunci partisi untuk menentukan node mana yang akan menyimpan data.
- Kunci utama gabungan. Menggunakan satu kunci partisi dan beberapa kolom pengelompokan untuk menentukan tempat menyimpan data dan cara mengurutkannya pada partisi.
- Kunci partisi gabungan. Dalam hal ini, ada beberapa kolom yang menentukan tempat penyimpanan data. Dengan cara ini, Anda dapat memecah data menjadi bagian-bagian yang lebih kecil untuk mendistribusikannya ke beberapa partisi untuk menghindari hotspot.
Cara Membuat Tabel Cassandra
Bagian berikut menjelaskan cara membuat tabel dengan tipe kunci utama yang berbeda. Pertama, pilih keyspace tempat Anda ingin membuat tabel. Dalam kasus kami:
USE businesinfo;
Setiap tabel berisi kolom dan tipe data Cassandra untuk setiap entri.
Buat Tabel dengan Kunci Utama Sederhana
Contoh pertama adalah tabel dasar dengan pemasok. ID unik untuk setiap pemasok, dan akan berfungsi sebagai kunci utama.
Kueri CQL terlihat seperti ini:
CREATE TABLE suppliers (
supp_id int PRIMARY KEY,
supp_city text,
supp_email text,
supp_fee int,
supp_name text,
supp_phone int
);
Kueri ini membuat tabel bernama pemasok dengan supp_id
sebagai kunci utama untuk tabel. Saat Anda menggunakan kunci utama sederhana dengan nama kolom sebagai kunci partisi, Anda dapat meletakkannya di awal kueri (di sebelah kolom yang akan berfungsi sebagai kunci utama) atau di bagian bawah lalu tentukan nama kolom :
CREATE TABLE suppliers (
supp_id int,
supp_city text,
supp_email text,
supp_fee int,
supp_name text,
supp_phone int
PRIMARY KEY(supp_id)
);
Untuk melihat apakah tabel berada di keyspace, ketik:
DESCRIBE TABLES;
Outputnya mencantumkan semua tabel di keyspace itu bersama dengan yang Anda buat.
Untuk menampilkan isi tabel, masukkan:
SELECT * FROM suppliers;
Outputnya menunjukkan semua kolom yang ditentukan saat membuat tabel.
Cara lain untuk melihat detail tabel adalah dengan menggunakan DESCRIBE
dan tentukan nama tabel:
DESCRIBE suppliers;
Output menampilkan kolom dan pengaturan default untuk tabel.
Buat Tabel dengan Kunci Utama Gabungan
Untuk membuat kueri dan mengurutkan hasil dalam urutan tertentu, buat tabel dengan kunci utama majemuk.
Misalnya, buat tabel untuk pemasok dan semua produk yang mereka tawarkan. Karena produk mungkin tidak unik untuk setiap pemasok, Anda perlu menambahkan satu atau beberapa kolom pengelompokan di kunci utama untuk membuatnya unik.
Skema tabel terlihat seperti ini:
CREATE TABLE suppliers_by_product (
supp_product text,
supp_id int,
supp_product_quantity text,
PRIMARY KEY(supp_product, supp_id)
);
Dalam hal ini, kami menggunakan supp_product
dan supp_id
untuk membuat kunci majemuk yang unik. Di sini, entri pertama di brackets supp_product
adalah kunci partisi. Ini menentukan tempat untuk menyimpan data, yaitu, bagaimana sistem mempartisi data.
Entri berikutnya adalah kolom clustering yang menentukan bagaimana Cassandra mengurutkan data, dalam kasus kami ini dengan supp_id
.
Gambar di atas menunjukkan tabel berhasil dibuat. Untuk memeriksa detail tabel, jalankan DESCRIBE TABLE
kueri untuk tabel baru:
DESCRIBE TABLE suppliers_by_product;
Pengaturan default untuk urutan pengelompokan adalah Ascending (ASC). Anda dapat mengubah ke descending (DESC) dengan menambahkan pernyataan berikut setelah kunci utama:
WITH CLUSTERING ORDER BY (supp_id DESC);
Kami menentukan satu kolom pengelompokan setelah kunci partisi. Jika Anda perlu mengurutkan data menggunakan dua kolom, tambahkan kolom lain di dalam kurung kunci utama.
Membuat Tabel Menggunakan Kunci Partisi Komposit
Membuat tabel dengan kunci partisi komposit sangat membantu saat satu node menyimpan volume data yang tinggi, dan Anda ingin membagi beban pada beberapa node.
Dalam hal ini, tentukan kunci utama dengan kunci partisi yang terdiri dari beberapa kolom. Anda perlu menggunakan tanda kurung ganda. Kemudian, tambahkan kolom pengelompokan seperti yang kita lakukan sebelumnya untuk membuat kunci utama yang unik.
Misalnya:
CREATE TABLE suppliers_by_product_type (
supp_product_consume text,
supp_product_stock text,
supp_id int,
supp_name text,
PRIMARY KEY((supp_product_consume, supp_product_stock), supp_id)
);
Pada contoh di atas, kami memisahkan data menjadi dua kategori, produk pemasok yang dapat dikonsumsi, dan produk yang dapat disimpan, dan mendistribusikan data menggunakan kunci partisi komposit.
Jika Anda menggunakan kunci utama majemuk dengan kunci partisi sederhana dan beberapa kolom pengelompokan, maka satu node akan menangani semua data yang diurutkan berdasarkan beberapa kolom.
Meja Jatuhkan Cassandra
Untuk menghapus tabel di Cassandra, gunakan DROP TABLE
penyataan. Untuk memilih tabel yang ingin Anda hapus, masukkan:
DESCRIBE TABLES;
Temukan tabel yang ingin Anda jatuhkan. Gunakan nama tabel untuk menghapusnya:
DROP TABLE suppliers_by_product_type;
Jalankan DESCRIBE TABLES
kueri lagi untuk memverifikasi bahwa Anda berhasil menghapus tabel.
Tabel Pengubah Cassandra
Cassandra CQL memungkinkan Anda untuk menambah atau menghapus kolom dari tabel. Gunakan ALTER TABLE
perintah untuk membuat perubahan pada tabel.
Menambahkan Kolom ke Tabel
Sebelum menambahkan kolom ke tabel, kami sarankan Anda melihat konten tabel untuk memverifikasi bahwa nama kolom belum ada.
Setelah Anda memverifikasi, gunakan ALTER TABLE
kueri dalam format ini untuk menambahkan kolom:
ALTER TABLE suppliers_by_product
ADD supp_name text;
Jelaskan tabel untuk mengonfirmasi bahwa kolom muncul pada daftar.
Menghapus Kolom dari Tabel
Mirip dengan menambahkan kolom, Anda bisa menjatuhkan kolom dari tabel. Cari kolom yang ingin Anda hapus dengan menggunakan DESCRIBE TABLES
kueri.
Kemudian masukkan:
ALTER TABLE suppliers_by_product
DROP supp_product_quantity;
Tabel Pemotongan Cassandra
Jika Anda tidak ingin menghapus seluruh tabel, tetapi Anda harus menghapus semua baris, gunakan TRUNCATE
perintah.
Misalnya, untuk menghapus semua baris dari tabel pemasok , masukkan:
TRUNCATE suppliers;
Untuk memverifikasi bahwa tidak ada baris lagi di tabel Anda, gunakan SELECT
pernyataan.
Setelah Anda memotong tabel, perubahan bersifat permanen, jadi berhati-hatilah saat menggunakan kueri ini.