Membangun lineage data end-to-end dari sumber sampai dashboard: impact analysis untuk perubahan yang aman, audit trail yang tercatat lengkap, dan praktik menyiapkan lineage di arsitektur nyata

Setelah di episode 19 kita menyiapkan compliance mapping, sekarang kita membahas teknologi yang menjadi tulang punggungnya: data lineage dan audit. Jika governance (episode 8) adalah kerangka organisasi, lineage adalah peta jejak data — dan audit trail adalah rekaman siapa melakukan apa.
Mengapa episode ini penting? Karena hampir semua masalah serius di tim data berujung pada dua pertanyaan yang sama: "angka ini dari mana?" dan "siapa yang mengubah ini?". Lineage menjawab yang pertama, audit trail menjawab yang kedua. Tanpa keduanya, tim data hanya bisa menebak — dan menebak di data produksi itu mahal.
Lineage adalah peta lengkap perjalanan data: dari sumber asli, melewati setiap transformasi, sampai ke konsumen akhir (dashboard, model, API).
Tingkat ketelitian lineage:
| Level | Skala | Kegunaan |
|---|---|---|
| Table-level | Tabel → tabel | Gambaran alur kasar |
| Column-level | Kolom → kolom | Impact analysis presisi |
| Row-level | Filter & transformasi | Debugging detail (mahal) |
Untuk arsitek, column-level lineage adalah sweet spot: cukup presisi untuk impact analysis, cukup murah untuk dijalankan otomatis.
Kegunaan utama lineage #1: impact analysis — sebelum mengubah apa pun, tahu siapa yang terdampak.
"Kalau saya ganti tipe kolom revenue di silver.orders, siapa yang rusak?"
→ jawab: gold.fact_orders (via join), dashboard revenue, ML feature,
dan 3 pipeline downstreamFlow kerja yang benar:
1. pilih kolom/tabel yang akan diubah
2. lineage menampilkan semua downstream
3. hitung blast radius: berapa dashboard, model, API
4. beri notifikasi ke pemilik downstream sebelum perubahan
5. jalankan perubahan dengan grace period + validasiIni menyelesaikan masalah klasik "pipeline berubah diam-diam, dashboard semua salah": perubahan ditelusuri dan dikomunikasikan lebih dulu.
Kegunaan utama lineage #2: root cause — saat angka salah, menelusuri dari mana kesalahan berasal.
dashboard revenue salah
→ lineage naik: gold.fact_orders
→ lineage naik: silver.orders_vault
→ lineage naik: bronze.orders
→ ditemukan: kolom qty di bronze berubah tipe karena CDC baruTanpa lineage, debugging seperti mencari jarum di tumpukan pipeline. Dengan lineage, jalur bisa dilacak langkah demi langkah dalam hitungan menit.
Audit trail adalah rekaman siapa mengakses/mengubah apa, kapan, dan dengan hasil apa. Dua jenis yang harus dipisahkan:
| Jenis | Merekam | Contoh |
|---|---|---|
| Data access log | Akses ke data | User X baca tabel Y jam 14:02, 200 baris |
| Data change log | Perubahan pada data/pipeline | Pipeline Z load 100k baris, versi model W |
Persyaratan audit trail yang baik:
id | user | action | resource | context | result | ts
1 | andi | SELECT | sales.orders | role=analyst | allow | 14:02
2 | bot | INSERT | bronze.orders| pipeline=daily | allow | 02:00
3 | adi | SELECT | sales.orders | region=null | deny | 09:13Lineage sebaiknya dikumpulkan otomatis dari tool yang dipakai, bukan ditulis manual:
dbt → manifest.json (model ke model, kolom ke kolom)
Airflow → DAG dependencies (task ke task)
Platform → query history / audit log (BI query lineage)
CDC → source connector lineageAgar menjadi satu peta utuh, kumpulkan di OpenLineage (standar terbuka) atau platform catalog yang mendukungnya (OpenMetadata/DataHub). Satu tempat = satu kebenaran.
- setiap tabel punya lineage yang jelas dari sumbernya
- dbt manifest wajib di-publish ke catalog tiap rilis
- model tanpa lineage → ditandai "untrusted" di katalog
- konsumen dashboard hanya boleh pakai data ber-lineageLineage tidak berguna kalau tidak dipakai: jadikan impact analysis langkah wajib sebelum perubahan model (episode 24 ADR), dan gunakan untuk root cause saat insiden kualitas.
Note
Lineage manual (tulis tangan di spreadsheet) selalu usang dan tidak dipercaya. Harga lineage otomatis adalah disiplin: setiap transformasi harus lewat tool yang mencatat lineage (dbt, Spark, orchestrator). Arsitek menetapkan aturan ini, bukan melukis peta manual.
Tip
Mulai dengan critical data elements (episode 8): pastikan lineage lengkap untuk data yang paling berpengaruh, bukan semua dataset. Sepuluh jalur data kritis dengan lineage yang benar lebih berharga daripada seratus tabel dengan lineage parsial.
Inti yang harus dibawa pulang:
Di episode 21 selanjutnya kita akan membahas AI-Ready Data Architecture — feature store, vector database, dan data untuk LLM/RAG sebagai arah baru arsitektur data. Sampai jumpa di episode 21!