
SMILE Indonesia Data Warehouse (OLAP ver 2)
Use Case: Data Ingestion, Data Processing
Overview
Setelah implementasi awal Data Warehouse SMILE, tantangan baru muncul seiring dengan pertumbuhan data yang semakin besar dan kebutuhan proses data yang lebih cepat. Proyek ini bertujuan untuk:
- Meningkatkan skalabilitas data warehouse agar dapat menangani lebih banyak data
- Menyediakan data pipeline dengan update near real-time untuk mendukung pengambilan keputusan yang lebih cepat.
- Mempercepat performa API dan query dashboard, terutama untuk skenario dengan jumlah user concurrent yang tinggi.
Problem
Volume data yang terus meningkat pesat
- Beberapa tabel telah mencapai ratusan juta baris dan terus bertambah.
- Query agregasi dan analitik menjadi semakin lambat.
Kebutuhan update data yang lebih cepat
- Proses data pipeline sebelumnya dilakukan dengan batch update (interval 7 menit - 1 hari).
- Untuk mendukung operasi dan pemantauan yang lebih responsif, data harus diperbarui secara near real-time (<1 menit delay).
Meningkatnya jumlah user concurrency
- Saat ini, sistem harus menangani lebih banyak akses simultan terhadap dashboard dan API.
- Arsitektur lama mengalami bottleneck pada query berat dan menyebabkan degradasi performa.
Solution
Data Ingestion - Implementasi Data Streaming
- Migrasi dari batch processing ke data streaming untuk memastikan data selalu up-to-date dalam hitungan detik.
-
Mendesain dan mengimplementasikan pipeline berbasis event-driven dengan teknologi:
- Debezium Kafka → Menangkap perubahan data di MySQL dan meneruskannya ke Kafka sebagai event stream.
- Flink → Memproses data secara real-time dengan windowing dan transformasi data yang lebih efisien.
- Kafka Sink → Meneruskan hasil pemrosesan ke database ClickHouse untuk analisis lebih lanjut.
Data Processing - Optimasi Data Model
- Mengoptimalkan struktur data ClickHouse dengan Materialized View untuk menyimpan hasil agregasi secara precomputed.
- Optimasi query dashboard agar lebih cepat dalam membaca dan menampilkan data ke pengguna (penyesuaian dengan model data terbaru).

Technology

Streaming Data Capture

Message Broker

Stream Processing

Data Warehouse (OLAP)

Materialized View

ETL & Automation
Impact
Semua data source berhasil diambil dan di-update dengan baik dalam periode setiap 7 menit
- Query yang sebelumnya butuh >1 menit, kini bisa diakses dalam hitungan detik atau dibawah 1 menit.
- Skalabilitas sistem meningkat untuk menangani lebih banyak user secara bersamaan tanpa bottleneck.
Update data pipeline near real-time (<1 menit)
- Sebelumnya: Update data dilakukan setiap 7 menit - 1 hari.
- Sekarang: Data langsung diperbarui dalam hitungan detik setelah transaksi terjadi.
Sistem lebih siap menghadapi pertumbuhan data jangka panjang
- Arsitektur streaming Kafka & Flink memungkinkan skalabilitas lebih baik untuk menangani miliaran baris data di masa depan.
- Penggunaan ClickHouse dengan Materialized View mempercepat query tanpa mengorbankan performa penyimpanan.