Part 7 — CQL — Consistancy, Inserts and Selects

Muhammad Hafidz
3 min readMay 13, 2024

--

Apache Cassandra Series

Insert

Melakukan insert data ke tabel di Cassandra mirip seperti insert data di database SQL lainya, yaitu :

insert into employee_by_id(id, name, position)
VALUES (1, 'John', 'Manager');
insert into employee_by_id(id, name, position)
VALUES (2, 'Bob', 'CEO');

Lalu wajib hukumnya untuk menginsert Partition Key dan Clustering Column. Jika tidak maka akan terjadi error.

insert into employee_by_car_make_and_car_model(car_make,car_model,id,name)
values ('BMW','TDR-3000',1,'John'); -- success
insert into employee_by_car_make_and_car_model(car_make,id,name)
values ('BMW',1,'John'); -- error

Sorting & Filter

Filtering data di Cassandra hanya bisa dilakukan di Partition Key, jika dipaksakan filter diluar Partition Key maka akan terjadi error.

select * from employee_by_id where id = 1; -- success
select * from employee_by_id where name = 'John'; -- error

Begitu juga dengan sorting, jika ingin melakukan order harus menggunakan Clustering Column dan wajib dilakukan filter terlebih dahulu.

select *
from employee_by_car_make_sorted
where car_make = 'BMW'
order by age, id; -- success
select *
from employee_by_car_make_sorted
where car_make = 'BMW'
order by name; -- error

Jika ingin mensorting data lebih dari 1 field harus sesuai dengan urutan field saat membuat tabel. Karena saat membuat tabel urutanya adalah id kemudian age, maka ordernya juga harus seperti itu.

select *
from employee_by_car_make_sorted
where car_make = 'BMW'
order by age, id; -- success
select *
from employee_by_car_make_sorted
where car_make = 'BMW'
order by id; -- error

Jika ingin melakukan filtering data, diwajibkan untuk memfilter menggunakan semsua partition key.

select * from employee_by_car_make_and_car_model 
where car_make = 'BMW' and car_model = 'TDR-3000'; -- success
select * from employee_by_car_make_and_car_model
where car_make = 'BMW'; -- error

Consistency Level

Consistency level adalah koefisien yang digunakan untuk menentukan seberapa konsisten data pada suatu database. Terdapat beberapa level consistency level, di antaranya:

  • Any (hanya digunakan pada operasi penulisan data), yaitu memastikan data tersimpan setidaknya di 1 node.
  • Integer (seperti 1, 2, 3 dst), yaitu memastikan data tersimpan sebanyak N node.
  • Quorum, yaitu memastikan data tersimpan di mayoritas node dalam cluster. Rumus untuk menghitung Quorum adalah (RF+1)/2, di mana RF adalah Replication factor.

Dan masih banyak lagi tingkatan consistency level yang dapat disesuaikan dengan kebutuhan aplikasi.

Untuk mengecek dan mengubah consistency level yang ada bisa menggunakan command berikut :

-- cek consistency level 
CONSISTENCY;

-- mengubah consistency level
CONSISTENCY QUORUM;

🔔 Jika anda menyukai artikel ini, silahkan subscribe agar anda bisa mendapatkan notifikasi jika ada artikel baru atau anda bisa melihat artikel yang telah dipublikasikan disini. 🚀

📝 Jika ada pertanyaan atau saran, anda bisa menulisnya di kolom komentar atau mengirim pesan lewat Medium.

Thank you for your support! 🌟

--

--