Arsitektur dan Model Data Cassandra

M. Ramadhan
Telematika
Published in
4 min readFeb 17, 2020

Kegagalan sistem dan perangkat keras dapat terjadi kapan pun. Oleh karena itu, Cassandra menyimpan data pada banyak node (simpul) dengan arsitektur terdistribusi peer to peer. Bila terjadi kegagalan pada suatu node, node lain dapat digunakan.

Arsitektur Cassandra

Sumber: diolah dari https://academy.datastax.com/resources/ds101-introduction-cassandra
  • Node
    - komponen infrastruktur dasar Cassandra
    - sebuah instance Cassandra
    - tempat menyimpan data yang merupakan bagian dari basis data
    - partisi: struktur data yang diidentifikasi secara unik pada sebuah node.
  • Rack
    - sekumpulan logis satu atau beberapa node.
  • Data center
    - sekumpulan logis satu atau beberapa rak
    - beban kerja yang berbeda menggunakan data center yang berbeda
    - replikasi diatur oleh data center.
    - bergantung pada faktor replikasi, data dapat ditulis ke beberapa data center.
  • Cluster
    -
    sekumpulan logis satu atau beberapa data center.

Untuk mengetahui status node yang digunakan, setelah menjalankan Cassandra, masuk ke command prompt, ketikkan nodetool status. Bagaimana menjalankan Cassandra sudah dibahas pada bagian akhir tulisan berjudul Instalasi Apache Cassandra pada Windows 10.

Nampak bahwa nama default data center adalah datacenter1, dan nama default rack adalah rack1.

Model Data Cassandra

Model data Cassandra menggunakan istilah yang sama dengan Google BigTable, misalnya, column family, column, row, dan sebagainya. Beberapa istilah ini juga ada dalam model data relasional, namun memiliki makna yang berbeda.

Column (Kolom)
Kolom adalah elemen model data terkecil di Cassandra. Meskipun ada juga di model relasional, namun kolom di Cassandra berbeda. Seperti yang ditunjukkan pada gambar, setiap kolom terdiri atas nama kolom, nilai kolom, stempel waktu dan TTL (Time-To-Live).

Sumber: Kan (2014:30)

Stempel waktu digunakan untuk resolusi konflik oleh aplikasi klien selama operasi penulisan. Time-To-Live adalah nilai kedaluwarsa opsional yang digunakan untuk menandai kolom yang dihapus setelah kedaluwarsa.

Row (Baris)
Setiap baris terdiri atas row key — dikenal juga sebagai primary key — dan sekumpulan kolom, sebagaimana terlihat pada gambar berikut.

Sumber: Kan (2014:30)

Setiap baris dimungkinkan memiliki nama-nama kolom yang berbeda. Itulah sebabnya Cassandra berorientasi baris dan berorientasi kolom. Tidak ada stempel waktu untuk baris. Selain itu, suatu baris harus disimpan pada suatu node, tidak dapat dipisah pada dua node atau lebih dalam cluster.

Column Family (Keluarga kolom)
Gambar berikut memperlihatkan keluarga kolom merupakan wadah untuk sekumpulan baris.

Sumber: Kan (2014:31)

Row key dalam keluarga kolom harus unik dan digunakan untuk mengidentifikasi baris. Walaupun tidak persis sama, keluarga kolom dapat dianalogikan sebagai tabel dalam basis data relasional. Keluarga kolom memberikan fleksibilitas yang lebih besar dengan memungkinkan kolom yang berbeda di baris yang berbeda.

Keyspace
Sebagaimana terlihat pada gambar berikut, keyspace adalah elemen model data terluar, merupakan wadah sekumpulan column family (keluarga kolom) dan super column family (keluarga super kolom).

Sumber: Kan (2014:32)

Keyspace analog dengan skema atau basis data di model relasional. Setiap instance Cassandra memiliki keyspace sistem untuk menyimpan metadata seluruh sistem. Keyspace berisi pengaturan replikasi yang mengendalikan bagaimana data didistribusikan dan direplikasi di cluster. Sangat sering, satu cluster hanya berisi satu keyspace.

Super column (super kolom), super column family (keluarga super kolom)
Kolom super terdiri atas dua kolom atau lebih, dan keluarga kolom super adalah kumpulan kolom super. Lihat gambar berikut.

Sumber: Kan (2014:33)

Super kolom populer di versi Cassandra sebelumnya tetapi tidak direkomendasikan lagi karena tidak didukung oleh Cassandra Query Language (CQL).

Bagaimana membuat keyspace dan column family akan dibahas pada tulisan berikutnya.

Referensi

--

--

M. Ramadhan
Telematika

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