Skip to content

Medallion Architecture: Pola 3 Layer yang Wajib Kamu Pahami sebelum Bangun Data Pipeline ​

Masalah yang nyata ​

Bayangkan kamu bekerja di perusahaan e-commerce. Data tersebar di banyak tempat: transaksi di database aplikasi, klik user di event tracking, data pembayaran dari payment gateway, data produk dari sistem inventory.

Lalu masalah mulai muncul:

  • Analyst A memakai data dari database langsung. Analyst B memakai hasil export CSV bulan lalu. Angka penjualan mereka berbeda, dan keduanya yakin datanya benar.
  • Data mentah mengandung duplikat, typo, dan transaksi gagal yang ikut terhitung.
  • Satu pipeline rusak, dan tidak ada cara untuk mengulang proses karena data mentahnya sudah tertimpa.

Medallion Architecture dipakai untuk menyelesaikan masalah seperti ini.

Apa itu Medallion Architecture? ​

Medallion Architecture adalah pola desain untuk mengatur alur data dalam tiga layer. Namanya dianalogikan seperti kualitas medali: Bronze (perunggu), Silver (perak), dan Gold (emas).

Ide intinya sederhana: data mentah tidak langsung dipakai bisnis. Data melewati pembersihan dan penyempurnaan bertahap. Di ujungnya ada satu sumber kebenaran yang bersih dan siap pakai.

Loading diagram...

Konsep ini dipopulerkan oleh Databricks, tetapi sekarang dipakai luas dan tidak terikat platform tertentu.

Tiga layer: tugas dan karakternya ​

Bronze Layer: data mentah ​

Bronze menyimpan data persis seperti yang datang dari sumber, tanpa perubahan. Yang di-ingest, itu yang disimpan.

  • Format biasanya dipertahankan seperti aslinya (JSON, CSV, dan sejenisnya), atau ditulis ke table format modern.
  • Append-only: data hanya ditambah, tidak diedit atau dihapus. Record lama tetap ada.
  • Jangan taruh transformasi bisnis di sini.

Layer ini adalah asuransi. Kalau pipeline di layer atas salah, kamu tidak perlu minta data ulang ke tim lain atau extract ulang dari production database. Cukup replay dari Bronze: jalankan ulang proses transformasi dari data yang sudah tersimpan.

Istilah di pekerjaan

Di beberapa perusahaan, layer ini disebut Landing atau Staging. Kalau rekan bilang "data staging area", biasanya maksudnya sama dengan Bronze atau Raw layer.

Silver Layer: data bersih ​

Di sinilah pembersihan terjadi. Data mentah di-transformasi menjadi terstruktur, bersih, dan konsisten.

Yang biasanya dilakukan di Silver:

  • Deduplikasi: menghapus record ganda, misalnya dari event tracking yang mengirim data dua kali.
  • Standardisasi: IDR, Rp, dan rupiah jadi satu format; timestamp diseragamkan ke UTC.
  • Data quality checks: buang atau tandai record yang invalid, misalnya email tanpa @ atau usia negatif.
  • Join antar tabel, misalnya gabungkan data order dengan data customer.
  • PII masking: sembunyikan data sensitif seperti nomor KTP atau kartu kredit.

Silver adalah single source of truth untuk data detail: satu versi data yang disepakati sebagai acuan. Kalau ada perdebatan "angka mana yang benar", lihat Silver.

Istilah di pekerjaan

Proses pembersihan ini sering disebut cleansing, conforming (menyamakan format antar sumber), atau harmonization. Layer-nya kadang disebut Cleansed layer.

Gold Layer: data siap konsumsi ​

Gold adalah layer tingkat bisnis: data sudah diagregasi dan dimodelkan sesuai kebutuhan konsumen (dashboard, laporan, machine learning).

Contoh tabel di Gold, namanya mengikuti pertanyaan bisnis:

  • daily_revenue_per_region
  • customer_lifetime_value
  • monthly_active_users

Beberapa tim merangkai Gold dengan star schema: tabel fact untuk kejadian atau transaksi (fact_orders), tabel dimension untuk konteks seperti pelanggan atau produk (dim_customer). Itu pola relasi antar tabel, bukan pengganti nama deskriptif di atas. Cukup paham bahwa Gold dibentuk supaya mudah dikonsumsi.

Istilah di pekerjaan

Layer ini sering disebut Curated layer atau Mart layer. Data mart adalah kumpulan tabel untuk satu kebutuhan bisnis, misalnya sales.

Kumpulan itu biasanya duduk di schema atau database. Dua kata ini sering dipakai untuk wadah yang sama, tergantung tool (Spark, Glue, dan Iceberg catalog biasanya memakai database atau namespace; Postgres dan Snowflake memisahkan database dan schema). Contoh: schema mart_sales, tabel daily_revenue_per_region. Di SQL terlihat sebagai mart_sales.daily_revenue_per_region. Titik memisahkan wadah dan tabel, bukan bagian dari nama tabel.

Di dalam mart yang sama, tetap bisa ada tabel deskriptif atau pasangan fact/dimension.

Contoh alur: data transaksi e-commerce ​

Ikuti satu data dari hulu ke hilir.

Bronze. Transaksi dari database aplikasi diekstrak setiap jam, lalu disimpan apa adanya. Termasuk transaksi gagal, duplikat, dan kolom dengan format acak.

Silver.

  • Hapus duplikat berdasarkan transaction_id.
  • Buang transaksi dengan status FAILED.
  • Seragamkan nama kolom: txn_amt menjadi amount, format mata uang diseragamkan.
  • Join dengan tabel customer untuk menambah info demografi.

Gold.

  • Agregasi per hari per region menjadi tabel daily_revenue.
  • Tabel itu siap dipakai dashboard eksekutif.

Hasilnya: data engineer yang menemukan bug di agregasi cukup perbaiki logika, lalu reprocess dari Silver. Tidak perlu menyentuh sumber, tidak perlu panik.

Kenapa tiga layer, bukan satu? ​

Masalah tanpa MedallionSolusi dari Medallion
Data mentah tertimpa saat transformasiBronze append-only, selalu bisa replay
Setiap tim punya "versi kebenaran"Silver jadi single source of truth
Transformasi rumit bercampur jadi satuTiap layer fokus pada satu tanggung jawab
Bug di satu tahap merusak semuanyaPerbaikan bisa dilakukan per layer, terisolasi

Ini prinsip separation of concerns, sama seperti di software engineering kamu memisahkan presentation, business logic, dan data access. Bedanya, yang dipisahkan di sini adalah tingkat kematangan data.

Contoh mapping di AWS ​

Konsep ini tidak terikat platform. Di AWS, salah satu stack yang umum:

  • Ingest ke Bronze: AWS Glue, Amazon Kinesis, atau Amazon DMS. DMS sering dipakai untuk CDC (Change Data Capture): menyalin perubahan di database sumber (insert, update, delete) tanpa harus extract seluruh tabel setiap kali.
  • Storage: Amazon S3, biasanya satu bucket dengan prefix bronze/, silver/, gold/, atau bucket terpisah.
  • Transform ke Silver dan Gold: AWS Glue (Spark), Amazon Athena, atau dbt.
  • Table format: Apache Iceberg atau Delta Lake. Keduanya menambah jaminan transaksi (ACID) dan kemampuan melihat versi data lama (time travel) di atas S3. Detail fiturnya tidak perlu dikuasai dulu untuk paham polanya.
  • Konsumsi Gold: Amazon QuickSight untuk BI, SageMaker untuk ML, atau query langsung dengan Athena.

Di platform lain (Databricks, Snowflake, GCP, Azure) nama tool-nya berbeda, polanya sama. Itu sebabnya konsep lebih berharga daripada hafalan tool.

Anti-pattern (yang sebaiknya dihindari) ​

Ini yang sering terjadi pada praktiknya di pekerjaan, tapi sebaiknya dihindari:

  • Silver jadi dumping ground. Semua join dan aturan bisnis ditumpuk di Silver. Layer itu susah dirawat, Gold jadi tidak jelas peranannya. Silver cukup untuk cleansing dan conforming. Aturan untuk dashboard atau KPI taruh di Gold.
  • Gold kebanyakan tabel tanpa standar. Ratusan tabel kecil, orang tidak tahu mana sumber angka yang resmi. Samakan cara penamaan, dan tentukan tabel mana yang boleh dipakai laporan.
  • Memaksa tiga layer untuk kasus kecil. Satu sumber dan satu dashboard tidak butuh pola penuh. Yang didapat hanya kompleksitas (over-engineering), bukan manfaat. Sesuaikan dengan skala.
  • Quality check di Silver longgar. Bronze terlihat tersimpan rapi, tapi data kotor tetap naik ke Gold. Kalau Silver tidak menyaring dengan benar, sampah hanya pindah tempat.

Kapan Medallion cocok (dan tidak) ​

Cocok jika:

  • Banyak sumber data dan banyak konsumen.
  • Kualitas data bervariasi.
  • Ada kebutuhan audit atau replay.

Kurang cocok jika proyek kecil: satu sumber, satu dashboard. Pola penuh malah menambah kompleksitas tanpa nilai.

Rangkuman ​

  • Medallion memakai 3 layer: Bronze (mentah, append-only), Silver (bersih, single source of truth), Gold (agregat, siap konsumsi).
  • Nilai utamanya: pemisahan tanggung jawab, kemampuan audit dan replay, plus satu versi kebenaran.
  • Istilah yang sering muncul: raw, staging, cleansing, conforming, curated, mart, fact dan dimension, CDC.
  • Tool berubah, pola tetap. Kuasai konsepnya, lalu adaptasi di platform mana pun.

Kalau kamu baru mulai di data engineering, Medallion Architecture adalah fondasi yang akan sering muncul. Banyak tim data di skala menengah ke atas memakai variasi pola ini.

References ​