Files
merica-pipelines/docs/adding_new_pipeline.md
T

3.7 KiB

🚀 Panduan Menambahkan Pipeline Baru (Authoring Tutorial)

Dokumen ini merupakan panduan praktis langkah-demi-langkah bagi Data Engineer untuk membuat, menguji, dan mempublikasikan data pipeline baru ke platform MERICA.


Alur Kerja Penambahan Pipeline

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                        DATA PIPELINE AUTHORING WORKFLOW                                │
├───────────┬──────────────────────────────────┬─────────────────────────────────────────┤
│ Langkah   │ Tindakan Pengembang              │ Lokasi Berkas                           │
├───────────┼──────────────────────────────────┼─────────────────────────────────────────┤
│ 1         │ Buat Deklarasi Pipeline YAML     │ `configs/ingestion_<nama_pipeline>.yaml`│
│ 2         │ (Opsional) Buat Model dbt        │ `dbt/models/silver/` atau `gold/`       │
│ 3         │ (Opsional) Registrasi Metadata   │ `metadata/<nama_pipeline>.json`         │
│ 4         │ Validasi Sintaksis Lokal         │ Pemeriksaan struktur YAML               │
│ 5         │ Git Commit & Push                │ Server Git On-Premise                   │
│ 6         │ Verifikasi Auto-Discovery        │ Airflow Web UI (Port 14080)             │
└───────────┴──────────────────────────────────┴─────────────────────────────────────────┘

Langkah 1: Menyiapkan File YAML

Buat file baru di direktori configs/, misalnya configs/ingestion_sensor_kebisingan.yaml:

pipeline_id: "ingestion_sensor_kebisingan"
pipeline_name: "Sensor Kebisingan Kota Realtime"
description: "Ingestion data kebisingan akustik dari jaringan sensor IoT lingkungan."
schedule_interval: "*/15 * * * *" # Berjalan setiap 15 menit
tags:
  - "iot"
  - "sensor"
  - "kebisingan"

source:
  type: "api"
  connection_id: "conn_spku_api_service"
  endpoint: "/v1/noise/telemetry"
  method: "GET"
  lookback_window_hours: 1
  response_path: "data.records"

target:
  bucket: "dlh-bronze"
  format: "parquet"
  partition_by: "ingest_date"

governance:
  owner: "bidang_ppkl@dlh.id"
  tier: "Tier2"
  domain: "Pengendalian Pencemaran Lingkungan"

Langkah 2: Menyiapkan Model Transformasi dbt (Bila Perlu)

Jika pipeline ini memerlukan pembersihan atau agregasi lanjutan:

  1. Buat model Silver: dbt/models/silver/silver_sensor_kebisingan_clean.sql
  2. Buat model Gold: dbt/models/gold/gold_noise_hourly_exceedance.sql

Langkah 3: Commit dan Push ke Git Server

Commit perubahan ke branch aktif (misal main):

git add configs/ingestion_sensor_kebisingan.yaml
git commit -m "feat(pipeline): register noise sensor telemetry pipeline"
git push origin main

Langkah 4: Verifikasi di Airflow 3 Runtime

Tunggu paling lama 30 detik. Buka antarmuka Airflow pada http://localhost:14080:

  • DAG dag_ingestion_sensor_kebisingan akan muncul secara otomatis.
  • Anda dapat memicu eksekusi manual via tombol Trigger DAG (Play button) untuk menguji aliran data dari sumber ke S3 Bronze.