Files
merica-pipelines/docs/adding_new_pipeline.md
T

85 lines
3.7 KiB
Markdown

# 🚀 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`:
```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`):
```bash
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.