feat(pipeline): add e2e cems industrial emissions medallion pipeline and dbt models
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
-- dbt Gold Industrial Emission Compliance & Load Mart
|
||||
SELECT
|
||||
region_zone,
|
||||
industry_sector,
|
||||
COUNT(log_id) AS total_telemetry_events,
|
||||
COUNT(DISTINCT source_id) AS active_chimneys_count,
|
||||
ROUND(AVG(so2_mg_nm3), 2) AS avg_so2_concentration,
|
||||
ROUND(AVG(nox_mg_nm3), 2) AS avg_nox_concentration,
|
||||
ROUND(AVG(pm_dust_mg_nm3), 2) AS avg_pm_concentration,
|
||||
ROUND(SUM(so2_mass_rate_kg_h) / 1000.0, 3) AS total_so2_emission_ton,
|
||||
ROUND(SUM(nox_mass_rate_kg_h) / 1000.0, 3) AS total_nox_emission_ton,
|
||||
ROUND(SUM(pm_mass_rate_kg_h) / 1000.0, 3) AS total_pm_emission_ton,
|
||||
COUNT(CASE WHEN compliance_status = 'EXCEEDING_LIMIT' THEN 1 END) AS total_violations_count,
|
||||
ROUND(
|
||||
(COUNT(CASE WHEN compliance_status = 'COMPLIANT' THEN 1 END)::NUMERIC / NULLIF(COUNT(log_id), 0)) * 100.0,
|
||||
2
|
||||
) AS compliance_rate_percent,
|
||||
CURRENT_TIMESTAMP AS mart_refreshed_at
|
||||
FROM {{ ref('silver_cems_emission_enriched') }}
|
||||
GROUP BY region_zone, industry_sector
|
||||
ORDER BY total_violations_count DESC, total_so2_emission_ton DESC
|
||||
@@ -0,0 +1,31 @@
|
||||
-- dbt Silver Cleansed CEMS Telemetry Enriched with Master Sources
|
||||
SELECT
|
||||
t.log_id,
|
||||
t.telemetry_timestamp,
|
||||
t.source_id,
|
||||
s.facility_name,
|
||||
s.industry_sector,
|
||||
s.chimney_code,
|
||||
s.region_zone,
|
||||
t.so2_mg_nm3,
|
||||
s.max_so2_limit_mg_nm3,
|
||||
t.nox_mg_nm3,
|
||||
s.max_nox_limit_mg_nm3,
|
||||
t.pm_dust_mg_nm3,
|
||||
s.max_pm_limit_mg_nm3,
|
||||
t.co_mg_nm3,
|
||||
t.flue_gas_flow_m3_s,
|
||||
t.flue_temp_celsius,
|
||||
ROUND((t.so2_mg_nm3 * t.flue_gas_flow_m3_s * 3600.0) / 1000000.0, 3) AS so2_mass_rate_kg_h,
|
||||
ROUND((t.nox_mg_nm3 * t.flue_gas_flow_m3_s * 3600.0) / 1000000.0, 3) AS nox_mass_rate_kg_h,
|
||||
ROUND((t.pm_dust_mg_nm3 * t.flue_gas_flow_m3_s * 3600.0) / 1000000.0, 3) AS pm_mass_rate_kg_h,
|
||||
CASE
|
||||
WHEN t.so2_mg_nm3 > s.max_so2_limit_mg_nm3 OR t.nox_mg_nm3 > s.max_nox_limit_mg_nm3 OR t.pm_dust_mg_nm3 > s.max_pm_limit_mg_nm3
|
||||
THEN 'EXCEEDING_LIMIT'
|
||||
ELSE 'COMPLIANT'
|
||||
END AS compliance_status,
|
||||
t.sensor_status
|
||||
FROM {{ ref('bronze_cems_telemetry_logs') }} t
|
||||
JOIN {{ ref('bronze_ref_emission_sources') }} s
|
||||
ON t.source_id = s.source_id
|
||||
WHERE t.sensor_status = 'VALID'
|
||||
+29
-25
@@ -1,27 +1,31 @@
|
||||
version: 2
|
||||
|
||||
sources:
|
||||
- name: bronze_lakehouse
|
||||
schema: bronze_lakehouse
|
||||
tables:
|
||||
- name: environmental_permits_cdc
|
||||
description: "Tabel landing Bronze staging untuk Change Data Capture (CDC) Perizinan Lingkungan"
|
||||
- name: gws_waste_reports
|
||||
description: "Tabel landing Bronze staging laporan penanganan sampah Google Workspace"
|
||||
- name: spku_api_raw
|
||||
description: "Tabel landing Bronze staging raw JSON payload sensor kualitas udara SPKU"
|
||||
|
||||
- name: bronze
|
||||
schema: bronze_lakehouse
|
||||
tables:
|
||||
- name: environmental_permits_cdc
|
||||
- name: gws_waste_reports
|
||||
- name: spku_api_raw
|
||||
|
||||
- name: public
|
||||
schema: public
|
||||
tables:
|
||||
- name: ref_waste_facilities
|
||||
description: "Master dataset fasilitas pengolahan limbah regional"
|
||||
- name: raw_waste_orders
|
||||
description: "Tabel transaksi manifest pengiriman dan penerimaan limbah"
|
||||
- name: bronze_lakehouse
|
||||
schema: bronze_lakehouse
|
||||
tables:
|
||||
- name: environmental_permits_cdc
|
||||
description: Tabel landing Bronze staging untuk Change Data Capture (CDC) Perizinan
|
||||
Lingkungan
|
||||
- name: gws_waste_reports
|
||||
description: Tabel landing Bronze staging laporan penanganan sampah Google Workspace
|
||||
- name: spku_api_raw
|
||||
description: Tabel landing Bronze staging raw JSON payload sensor kualitas udara
|
||||
SPKU
|
||||
- name: bronze
|
||||
schema: bronze_lakehouse
|
||||
tables:
|
||||
- name: environmental_permits_cdc
|
||||
- name: gws_waste_reports
|
||||
- name: spku_api_raw
|
||||
- name: public
|
||||
schema: public
|
||||
tables:
|
||||
- name: ref_waste_facilities
|
||||
description: Master dataset fasilitas pengolahan limbah regional
|
||||
- name: raw_waste_orders
|
||||
description: Tabel transaksi manifest pengiriman dan penerimaan limbah
|
||||
- name: ref_emission_sources
|
||||
description: Auto-registered source table 'ref_emission_sources' from canvas pipeline
|
||||
- name: raw_cems_telemetry_logs
|
||||
description: Auto-registered source table 'raw_cems_telemetry_logs' from canvas
|
||||
pipeline
|
||||
|
||||
Reference in New Issue
Block a user