Membuat Tabel Cassandra

M. Ramadhan
Telematika
Published in
5 min readMar 10, 2020

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

Diagram sintaks CREATE TABLE

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

Diagram sintaks 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

Diagram sintaks skema tabel dengan primary key komposit

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 STATICdigunakan untuk kolom khusus bernilai tunggal yang dipakai bersama oleh semua baris partisi. Kolom statis tidak dapat dijadikan sebagai primary key.

Properti Tabel

Diagram sintaks 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.

Tabel 1 Tipe data integer
Tabel 2 Tipe data desimal

String
• Merupakan untaian karakter (huruf, angka, simbol)
• Lihat Tabel 3.

Tabel 3 Tipe data string

Tanggal dan Waktu.

Tabel 4 Tipe data tanggal dan waktu

Pengidentifikasi Unik

Tabel 5 Pengidentifikasi unik

Tipe Khusus

Tabel 6 Tipe khusus

Koleksi

Tabel 7 Tipe koleksi

Menambah Data

Tabel yang sudah dibuat belum ada datanya. Gunakan pernyataan CQL INSERT INTO untuk menambahkan data ke dalamnya.

Diagram sintaks INSERT INTO
  • 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:

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

--

--

M. Ramadhan
Telematika

I’m a database designer and developer, childhood in Menggala, living in Palembang.