Belajar Apache Flink - Real-time Analytics & Use Cases
Episode 20 of 23

Belajar Apache Flink - Real-time Analytics & Use Cases

Episode ini merangkai semua kemampuan menjadi use case nyata: dashboard monitoring dan alerting, fraud detection, real-time recommendation, dan IoT processing. Kalian juga merancang end-to-end streaming pipeline dengan data enrichment, stream joins, dan real-time aggregations.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Dua puluh episode membangun satu per satu keterampilan. Episode 20 ini adalah ujian akhirnya: bagaimana semua itu menyatu dalam use case nyata. Streaming yang baik bukan sekadar teknologi yang berjalan — ia harus menghasilkan keputusan, alert, dan dashboard yang dipakai orang setiap hari.

Kita akan membangun dashboard monitoring dengan alerting, menerapkan fraud detection dan real-time recommendation, memproses data IoT, lalu merancang end-to-end pipeline dengan data enrichment, stream joins, dan agregasi real-time. Ini peta untuk menerjemahkan Flink menjadi nilai bisnis.

Dashboard Monitoring dan Alerting

Metrics ke Grafana

Dashboard monitoring dibangun dari metrics yang diekspor ke Prometheus (episode 13). Dari sana, Grafana menampilkan tren dan alert berbasis aturan:

Aturan alert di Grafana
groups:
  - name: flink-alerts
    rules:
      - alert: JobRestarted
        expr: flink_jobmanager_job_restarts > 0
        for: 1m

flink_jobmanager_job_restarts adalah metric jumlah restart job. Aturan ini memicu alert ketika restart terjadi — tanpa alert, job yang diam-diam restart tidak akan terlihat hingga masalah memburuk.

Business Metrics

Selain metrik teknis, pantau metrik bisnis: volume transaksi per menit, rasio data gagal, dan latency agregasi. Metric kustom yang dibuat dengan counter dan gauge (episode 13) menjadi dasar dashboard yang menjawab pertanyaan bisnis, bukan hanya pertanyaan infrastruktur.

Use Case: Fraud Detection

Mendeteksi Pola Mencurigakan

Fraud detection menggabungkan agregasi dan CEP: transaksi yang melewati ambang dalam window waktu langsung memicu alert:

Deteksi transaksi besar berurutan
SELECT user_id, COUNT(*) AS jumlah, SUM(amount) AS total
FROM transactions
GROUP BY user_id, TUMBLE(event_ts, INTERVAL '10' MINUTE)
HAVING COUNT(*) > 10 AND SUM(amount) > 10000000;

HAVING memfilter kelompok transaksi yang mencurigakan. Untuk pola berurutan yang lebih halus — misalnya dua transaksi besar dalam satu menit — gabungkan dengan CEP dari episode 10.

Alert ke Sistem Tujuan

Hasil deteksi bukan akhir — kirim ke sistem alerting dan case management:

Menjalankan job fraud detection
./bin/flink run -d target/fraud-job.jar

./bin/flink run -d mengirim job. Di produksi, alert diarahkan ke Kafka topic yang dikonsumsi platform deteksi fraud, atau langsung ke sistem paging untuk kasus kritis.

Use Case: Real-time Recommendation

Konteks Pengguna Saat Ini

Rekomendasi real-time menggunakan event terkini, bukan hanya riwayat batch: enrichment dengan data user, lalu stream joins untuk menggabungkan klik dan katalog:

Gabungkan klik dan katalog produk
SELECT c.user_id, p.product_name
FROM clicks c
JOIN products FOR SYSTEM_TIME AS OF c.event_ts AS p
ON c.product_id = p.id;

FOR SYSTEM_TIME AS OF memastikan rekomendasi memakai versi produk yang benar saat klik terjadi. Hasilnya di-sink ke engine rekomendasi yang mengembalikan top-N produk untuk tiap pengguna.

Skor dan Personalisasi

Kombinasikan frekuensi klik per pengguna (state), kategori favorit, dan sinyal real-time menjadi skor. Pipeline rekomendasi yang baik selalu dibangun dari agregasi stateful — persis pola yang sudah kalian kuasai di episode 6.

Use Case: IoT Processing

Sensor yang Tak Pernah Berhenti

IoT menghasilkan stream sensor yang terus-menerus: suhu, getaran, konsumsi energi. Agregasi per menit per device menjadi dasar monitoring:

Rata-rata suhu per sensor
SELECT device_id,
       AVG(temperature) AS rata_temperature,
       MAX(temperature) AS maks
FROM sensor_readings
GROUP BY device_id, TUMBLE(event_ts, INTERVAL '1' MINUTE);

AVG dan MAX memberi ringkasan per device. Tambahkan alert otomatis saat maks melewati ambang — deteksi dini sebelum peralatan rusak.

End-to-end Streaming Pipeline

Arsitektur Lengkap

Rangkai semua komponen menjadi satu pipeline:

Arsitektur pipeline end-to-end
Kafka → Flink (enrich + join + aggregate) → Kafka → ClickHouse → Grafana

Kafka mengumpulkan event mentah, Flink memperkaya dengan dimensi (temporal join), menggabungkan stream, dan mengagregasi; hasilnya dikirim ke Kafka untuk disimpan di ClickHouse; Grafana menampilkan dashboard dan memicu alert.

Prinsip Desain

  • Enrich sedini mungkin: perbaiki kualitas data sebelum agregasi.
  • Satu tanggung jawab per pipeline: pisahkan pipeline enrichment dari pipeline agregasi.
  • Idempoten dan replayable: pastikan hasil tidak berubah saat event diproses ulang.
Menjalankan pipeline analytics
./bin/flink run -d target/analytics-job.jar

Perintah ./bin/flink run -d mengirim pipeline. Dari sini, seluruh rantai nilai — dari event mentah hingga keputusan bisnis — berjalan dalam hitungan detik, bukan jam.

Penutup

Episode 20 menyatukan semuanya: dashboard monitoring dengan alerting, fraud detection berbasis agregasi dan CEP, real-time recommendation dengan enrichment dan stream joins, IoT processing per sensor, serta perancangan end-to-end pipeline dari Kafka hingga dashboard.

Inti yang harus dibawa pulang:

  • Alert berbasis metric menjadikan sistem memantau dirinya sendiri.
  • Fraud detection menggabungkan agregasi window dan pola CEP.
  • Temporal join memberi konteks versi data yang benar untuk enrichment.
  • IoT processing memanfaatkan agregasi per device dengan alert ambang.
  • Pipeline end-to-end dibangun dengan enrichment awal dan satu tanggung jawab per job.

Di episode 21 selanjutnya kita akan membahas ecosystem & tooling — integrasi dengan Apache Beam, Flink SQL Gateway, dan State Processor API, tooling seperti Flink CLI, web UI, dan IDE plugins, sumber daya komunitas serta RFC/FLIPs, dan managed offerings di cloud. Kalian akan melihat Flink sebagai bagian dari ekosistem yang lebih luas.

Belajar Apache Flink - Real-time Analytics & Use Cases | Belajar Apache Flink