85 lines
3.7 KiB
Markdown
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.
|