Part 10 — CQL — Materialized Views
Apache Cassandra Series
- Part 1 — Introduction to Apache Cassandra
- Part 2 — The CAP Theorm
- Part 3 — Query First Approach
- Part 4 — Partitioning, Rings and Tokens
- Part 5 — Replication, Data Centers and Racks
- Part 6 — CQL — Keyspace and Table
- Part 7 — CQL — Consistancy, Inserts and Selects
- Part 8 — CQL — Timestamps, TTLs, Collections and Secondary Indexs
- Part 9 — CQL — UUIDs and Counters
- Part 10 — CQL — Materialized Views
- Part 11 — Peer To Peer Architecture
- Part 12 — Snitch
- Part 13 — Gossip Protocol
- Part 14 — Cassandra Write Path
- Part 15 — Cassandra Read Path
- Part 16 — Compaction
Materialized View
Ketika kita memiliki masalah dengan performa searching data di tabel yang sangat besar, kita dapat menggunakan materialized view. Materialized view berfungsi sebagai view alternatif dari tabel yang sudah ada, dan dapat dioptimalkan dengan Partition Key agar pencarian data lebih cepat. Selain itu, jika terjadi perubahan pada tabel asli, materialized view juga akan secara otomatis diperbarui untuk mencerminkan perubahan tersebut.
Tabel employee_by_id
merupakan tabel awal dimana id merupakan Partition Key.
create table employee_by_id
(
id int primary key,
name text,
phone set<text>,
position text
);
Kemudian dibuat Materialized View bernama employee_by_position, dengan position sebagai Partition Key. Sebagai catatan field yang digunakan sebagai Partition Key tidak boleh null, baik di Tabel asli maupun Materialized View.
create materialized view test_keyspace.employee_by_position
as select * from test_keyspace.employee_by_id
where id is not null
primary key ( position );
Sekarang employee dapat difilter berdasarkan position.
select *
from employee_by_position where position = 'CEO';
🔔 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! 🌟