# Pengenalan ETL dan ELT

Pahami definisi ETL dan ELT, kapan masing-masing pola dipilih, evolusi menuju warehouse modern, lalu bangun mini pipeline Python dari CSV ke SQLite.

Buka →
# Ekstraksi Data

Kenali ragam sumber data, seleksi kolom, sampling untuk eksplorasi, dan ekstraksi bertahap dengan generator untuk file besar.

Buka →
# Transformasi Data

Pelajari lima kategori transformasi data — cleaning, konversi tipe, derivasi kolom, agregasi, dan join — dengan contoh nyata membersihkan string, mengonversi tanggal, dan menghitung total.

Buka →
# Pemuatan Data

Bandingkan pola load penuh, append, truncate-and-load, dan upsert, lalu uji nyata performa executemany dibanding INSERT satu per satu di SQLite.

Buka →
# Transformasi dengan Python

Tulis transformasi bergaya functional dengan fungsi murni dan compose, kenali pandas melalui groupby sederhana, dan pahami kapan memilih stdlib atau pandas.

Buka →
# Transformasi dengan SQL

Geser transformasi ke dalam database dengan CREATE TABLE AS SELECT, CASE, window function, dan upsert, melalui contoh nyata staging ke dimensi di SQLite.

Buka →
# Join dan Agregasi Data

Pilih strategi join untuk tabel kecil dan tabel besar, bangun agregasi bertingkat dari penjualan harian ke bulanan per kota, dan hindari jebakan agregat-dari-agregat.

Buka →
# Deduplikasi Data

Telusuri sumber duplikat dari reprocess dan at-least-once delivery, bandingkan dedup kunci dengan dedup konten, dan terapkan keep-latest dengan ROW_NUMBER serta dict Python.

Buka →
# Incremental Transformation

Pelajari cara memproses hanya data baru dengan watermark, lalu menggabungkan hasil delta ke tabel agregat penjualan harian tanpa membangun ulang seluruh riwayat.

Buka →
# Idempotent Transformation

Pahami transformasi yang aman dijalankan ulang, bandingkan pola append yang menduplikasi data dengan full rebuild per partisi, dan buktikan hasil identik setelah dua eksekusi.

Buka →
# Late Arriving Data

Tangani data yang tiba setelah partisi tanggalnya selesai dihitung: pahami event_time vs waktu kedatangan, deteksi baris terlambat, rebuild partisi dalam jendela toleransi, dan lakukan restatement.

Buka →
# Data Reconciliation

Verifikasi data antara sumber dan target dengan pemeriksaan jumlah baris, checksum agregat, dan perbandingan sampel, lalu lacak mismatch hingga ke akar masalahnya.

Buka →
# Penanganan Data yang Gagal

Terapkan pola dead letter untuk mengkarantina baris yang gagal transformasi, pisahkan penyebab data dan kode, lalu jalankan retry per baris hingga bersih.

Buka →
# Pemrosesan Ulang Data

Jalankan ulang transformasi atas data historis secara aman: pahami alasan reprocess, syarat idempotent dan versioned output, lalu perbaiki partisi tertentu dengan kode v2.

Buka →
# Memilih ETL atau ELT

Putuskan arsitektur transformasi dengan kerangka keputusan yang mempertimbangkan skala data, biaya compute, tooling dbt, keahlian tim, dan regulasi — dilengkapi tabel perbandingan, diagram keputusan, dan tiga studi kasus.

Buka →