Membuat Tabel Cassandra
Tabel Cassandra berbeda dengan tabel relasional. Hal ini telah dibahas pada tulisan sebelumnya. Kali ini akan dibahas:
• pembuatan tabel menggunakan pernyataan CREATE TABLE
• macam-macam tipe data
• penambahan data ke dalam tabel menggunakan pernyataan INSERT INTO
Membuat Tabel
Nama Tabel
- Maksimum 48 karakter.
- Harus diawali dengan huruf.
- Karakter berikutnya boleh huruf, angka atau garis bawah.
- Jika tabel dengan nama yang sama sudah ada, muncul pesan kesalahan dan operasi gagal.
- Gunakan klausa
IF NOT EXIST
untuk meniadakan pesan kesalahan. - Untuk membuat tabel di keyspace yang aktif, cukup gunakan nama tabel baru.
- Untuk membuat tabel di keyspace yang berbeda dengan keyspace yang aktif, letakkan nama keyspace diikuti dengan tanda titik sebelum nama tabel.
Skema Tabel
Skema tabel terdiri atas primary key dan kolom data lainnya. Primary key mengidentifikasi lokasi dan urutan data yang tersimpan, didefinisikan saat tabel dibuat dan tidak dapat diubah. Untuk mengubah primary key, buat tabel baru dengan primary key baru lalu tulis data yang ada ke tabel baru.
Elemen pertama primary key, yaitu partition key (kunci partisi), menentukan simpul mana yang akan menyimpan baris tabel tertentu. Kunci partisi bertanggung jawab untuk mendistribusikan data antar node (simpul). Sekurang-kurangnya, primary key harus terdiri atas sebuah kunci partisi. Kunci partisi sama dengan primary key ketika primary key hanya terdiri atas satu kolom. Primary key yang demikian dikenal sebagai primary key sederhana. Adapun primary key yang terdiri atas dua kolom atau lebih — pada model relasional disebut primary key komposit — dikenal sebagai compound primary key.
Skema Tabel dengan Primary Key Sederhana
Jika aplikasi membutuhkan tabel pencarian sederhana menggunakan pengidentifikasi unik tunggal, maka primary key sederhana adalah pilihan yang tepat. Primary key hanya terdiri atas satu nama kolom yang juga sebagai kunci partisi. Data yang disimpan dengan primary key sederhana akan cepat ditambahkan dan diperoleh kembali ketika dibutuhkan.
Skema Tabel dengan Compound Primary Key
Walaupun diagram di atas lebih ditujukan untuk skema tabel dengan primary key komposit, namun dapat juga digunakan untuk skema tabel dengan primary key sederhana.
Compound primary key merupakan gabungan dua kolom atau lebih. Dengan demikian kunci partisinya boleh jadi sederhana, hanya terdiri atas satu kolom, atau komposit, terdiri atas gabungan dua kolom atau lebih.
STATIC
Klausa STATIC
digunakan untuk kolom khusus bernilai tunggal yang dipakai bersama oleh semua baris partisi. Kolom statis tidak dapat dijadikan sebagai primary key.
Properti Tabel
Properti tabel merupakan pilihan (optional), antara lain berkaitan dengan penanganan data, termasuk operasi masukan/keluaran, dan kompresi. Bagi pembaca yang ingin mendalami lebih lanjut dapat mempelajarinya dari sumber primernya di sini.
Tipe Data
Tipe data dideklarasikan dan diberlakukan untuk setiap kolom ketika membuat tabel. Tipe data dapat dikelompokkan sebagai berikut:
• numerik
• string
• tanggal dan waktu
• pengidentifikasi unik
• tipe khusus
• koleksi.
Numerik
• Menyatakan besaran.
• Ada dua jenis data numerik, yaitu bilangan bulat dan bilangan desimal.
• Bilangan bulat (integer), tidak memiliki tanda desimal, lihat Tabel 1.
• Bilangan desimal (real), memiliki tanda desimal, lihat Tabel 2.
String
• Merupakan untaian karakter (huruf, angka, simbol)
• Lihat Tabel 3.
Tanggal dan Waktu.
Pengidentifikasi Unik
Tipe Khusus
Koleksi
Menambah Data
Tabel yang sudah dibuat belum ada datanya. Gunakan pernyataan CQL INSERT INTO
untuk menambahkan data ke dalamnya.
- Jika primary key baris data baru sama dengan primary key baris data yang sudah ada, maka baris data baru akan menimpa baris data tesebut.
- Gunakan klausa
IF NOT EXISTS
untuk mencegah perubahan data karena ditimpa oleh data baru. - Gunakan klausa
USING TTL WaktuHidup
(time-to-live) untuk menentukan berapa lama data baru tersebut tersimpan sejak ditambahkan. Data akan terhapus ketika TTL (waktu hidup) dalam satuan detik tercapai. TTL hanya berlaku untuk data baru yang dimasukkan, tidak berlaku untuk seluruh kolom. Setiap pembaruan berikutnya TTL akan di-reset. Secara default, nilai waktu hidup tidak pernah kedaluwarsa. - Gunakan klausa
TIMESTAMP WaktuTulis
untuk menentukan kapan data baru tersebut ditulis, ditentukan sejak 1 Januari 1970 dalam satuan milidetik. Secara default, Cassandra menggunakan waktu penulisan yang sebenarnya.
Contoh Pembuatan Tabel
Berikut adalah contoh bagaimana membuat tabel mahasiswa dalam keyspace akademik. Setelah shell CQL aktif, lakukan hal berikut:
- Buat
KEYSPACE akademik
.
CREATE KEYSPACE IF NOT EXISTS akademik
WITH REPLICATION = {
'class' : 'SimpleStrategy',
'replication_factor' : 1
};
2. Aktifkan KEYSPACE akademik
.
3. Buat tabel mahasiswa.
CREATE TABLE IF NOT EXISTS mahasiswa(
NIM ascii PRIMARY KEY,
nama varchar,
noHP set<text>,
tglLahir date,
anakKe tinyint,
IPK float,
bekerja boolean
);
4. Ketikkan pernyataanSELECT * FROM mahasiswa;
Karena tabel belum ada datanya, pernyataan tersebut hanya menampilkan skema tabel. Perhatikan bahwa kolom pertamanya primary key, kolom selanjutnya terurut sesuai dengan urutan abjad nama kolom, tidak sesuai dengan urutan ketika tabelnya dibuat.
5. Tambahkan data ke tabel mahasiswa.
INSERT INTO mahasiswa (nim,nama,tgllahir,bekerja)
VALUES ('201911007','Rajabasa','2001-11-12',true) IF NOT EXISTS;
INSERT INTO mahasiswa (nim,nama,anakke,nohp)
VALUES ('202011003','Oryza Sativa',3,{'08123456789','0897654321'});
INSERT INTO mahasiswa (nim,nama,bekerja,nohp)
VALUES ('202012004',' Zea May',false,{'0811223344'}) IF NOT EXISTS;
6. Tampilkan data mahasiswa.
7. Ketikkan EXIT
[Enter] untuk mengkhiri shell CQL .
Berikut adalah tampilan shell berdasarkan semua pernyataan CQL di atas secara keseluruhan.
Pada tulisan berikutnya akan dibahas pernyataan ALTER TABLE
untuk mengubah tabel dan pernyataan DROP TABLE
untuk menghapus tabel.
Referensi
DataStax. (2018). CQL for Apache Cassandra 3.0