Cassandra - Model Data
Model data Cassandra secara signifikan berbeda dari yang biasa kita lihat di RDBMS. Bab ini memberikan gambaran umum tentang bagaimana Cassandra menyimpan datanya.
Gugus
Database Cassandra didistribusikan melalui beberapa mesin yang beroperasi bersama. Wadah terluar dikenal sebagai Cluster. Untuk penanganan kegagalan, setiap node berisi replika, dan jika terjadi kegagalan, replika akan bertanggung jawab. Cassandra mengatur node dalam sebuah cluster, dalam format cincin, dan memberikan data kepada mereka.
Keyspace
Keyspace adalah wadah terluar untuk data di Cassandra. Atribut dasar dari Keyspace di Cassandra adalah -
Replication factor - Ini adalah jumlah mesin di cluster yang akan menerima salinan data yang sama.
Replica placement strategy- Ini tidak lain adalah strategi untuk menempatkan replika di atas ring. Kami memiliki strategi sepertisimple strategy (strategi sadar rak), old network topology strategy (strategi sadar rak), dan network topology strategy (strategi berbagi pusat data).
Column families- Keyspace adalah wadah untuk daftar satu atau lebih keluarga kolom. Keluarga kolom, pada gilirannya, adalah wadah dari kumpulan baris. Setiap baris berisi kolom terurut. Keluarga kolom mewakili struktur data Anda. Setiap ruang kunci memiliki setidaknya satu dan seringkali banyak keluarga kolom.
Sintaks untuk membuat Keyspace adalah sebagai berikut -
CREATE KEYSPACE Keyspace name
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3};
Ilustrasi berikut memperlihatkan tampilan skematik dari Keyspace.
Keluarga Kolom
Keluarga kolom adalah wadah untuk kumpulan baris yang teratur. Setiap baris, pada gilirannya, adalah kumpulan kolom yang teratur. Tabel berikut mencantumkan poin-poin yang membedakan keluarga kolom dari tabel database relasional.
Tabel Relasional | Keluarga Cassandra column |
---|---|
Skema dalam model relasional diperbaiki. Setelah kita mendefinisikan kolom tertentu untuk sebuah tabel, saat memasukkan data, di setiap baris semua kolom harus diisi setidaknya dengan nilai null. | Di Cassandra, meskipun keluarga kolom ditentukan, kolomnya tidak. Anda dapat dengan bebas menambahkan kolom apa pun ke keluarga kolom mana pun kapan saja. |
Tabel relasional hanya mendefinisikan kolom dan pengguna mengisi tabel dengan nilai. | Di Cassandra, tabel berisi kolom, atau dapat didefinisikan sebagai keluarga super kolom. |
Keluarga kolom Cassandra memiliki atribut berikut -
keys_cached - Ini mewakili jumlah lokasi untuk disimpan dalam cache per SSTable.
rows_cached - Ini mewakili jumlah baris yang seluruh isinya akan di-cache dalam memori.
preload_row_cache - Ini menentukan apakah Anda ingin mengisi cache baris.
Note − Tidak seperti tabel relasional di mana skema keluarga kolom tidak tetap, Cassandra tidak memaksa baris individu untuk memiliki semua kolom.
Gambar berikut menunjukkan contoh keluarga kolom Cassandra.
Kolom
Kolom adalah struktur data dasar Cassandra dengan tiga nilai, yaitu nama kunci atau kolom, nilai, dan cap waktu. Diberikan di bawah ini adalah struktur kolom.
SuperColumn
Kolom super adalah kolom khusus, oleh karena itu, ini juga merupakan pasangan nilai kunci. Tetapi kolom super menyimpan peta sub-kolom.
Umumnya keluarga kolom disimpan di disk dalam file individual. Oleh karena itu, untuk mengoptimalkan kinerja, penting untuk menyimpan kolom yang kemungkinan akan Anda kueri bersama dalam keluarga kolom yang sama, dan kolom super dapat membantu di sini. Di bawah ini adalah struktur kolom super.
Model Data Cassandra dan RDBMS
Tabel berikut mencantumkan poin-poin yang membedakan model data Cassandra dari yang ada di RDBMS.
RDBMS | Cassandra |
---|---|
RDBMS menangani data terstruktur. | Cassandra berurusan dengan data tidak terstruktur. |
Ini memiliki skema tetap. | Cassandra memiliki skema yang fleksibel. |
Dalam RDBMS, tabel adalah larik array. (BARIS x KOLOM) | Di Cassandra, tabel adalah daftar "pasangan nilai kunci bertingkat". (ROW x COLUMN key x COLUMN value) |
Database adalah wadah terluar yang berisi data yang sesuai dengan aplikasi. | Keyspace adalah wadah terluar yang berisi data yang sesuai dengan aplikasi. |
Tabel adalah entitas database. | Tabel atau keluarga kolom adalah entitas dari ruang kunci. |
Baris adalah catatan individu di RDBMS. | Baris adalah unit replikasi di Cassandra. |
Kolom mewakili atribut relasi. | Kolom adalah unit penyimpanan di Cassandra. |
RDBMS mendukung konsep kunci asing, bergabung. | Hubungan direpresentasikan menggunakan koleksi. |