feat(appliance): initial release of MERICA standalone appliance v1.0.0

This commit is contained in:
2026-10-21 17:16:46 +07:00
commit 851be0cda7
144 changed files with 31135 additions and 0 deletions
@@ -0,0 +1,204 @@
pipeline_id: e2e_medallion_permits_flow
description: Dynamic Data Lakehouse Pipeline via DLH Studio
schedule: 0 */1 * * *
mode: flexible
tasks:
- task_id: node-9377
type: source_db
label: Source Database
enabled: true
dependencies: []
config:
conn: Postgres
conn_id: conn_postgres_source_db
table: permits
table_name: public.stasiun_spku
target_type: minio_s3
- task_id: node-0405
type: ge_quality
label: GE Quality Check
enabled: true
dependencies:
- node-9377
config:
ge_scope_level: all
ge_table_name: staging_environmental_permits
test_table_row_count: true
test_table_schema_match: true
test_table_table_not_empty: true
table_min_rows: 1
table_max_rows: 1000000
ge_col_table: stasiun_spku
ge_target_column: stasiun_id
ge_column_test_type: not_null
sql_assertion: SELECT count(*) FROM silver.table WHERE status NOT IN ('APPROVED',
'IN_REVIEW', 'REJECTED')
sql: SELECT count(*) FROM silver.table WHERE status NOT IN ('APPROVED', 'IN_REVIEW',
'REJECTED')
expected: 0
error_message: Unexpected rows detected in table
suite: bronze
fail: Stop DAG
- task_id: node-1406
type: duckdb_transform
label: DuckDB Transform
enabled: true
dependencies:
- node-0405
config:
layer: silver
source_parquet_path: s3://dlh-bronze/db_cdc/environmental_permits/
source_path: s3://dlh-bronze/db_cdc/environmental_permits/
target_table: dlh_lakehouse.silver.environmental_permits
table_name: dlh_lakehouse.silver.environmental_permits
primary_keys: id, updated_at
query: SELECT * FROM source_tbl
sql_query: SELECT * FROM source_parquet
transformation_sql: SELECT permit_id, permit_number, company_name, business_type,
location, status, environmental_score, created_at, updated_at FROM read_parquet('s3://dlh-bronze/staging/environmental_permits/*.parquet')
QUALIFY ROW_NUMBER() OVER (PARTITION BY permit_id ORDER BY updated_at DESC)
= 1
- task_id: node-2426
type: ge_quality
label: GE Quality Check
enabled: true
dependencies:
- node-1406
config:
ge_scope_level: all
ge_table_name: bronze_environmental_permits
test_table_row_count: true
test_table_schema_match: true
test_table_table_not_empty: true
table_min_rows: 1
table_max_rows: 1000000
ge_col_table: stasiun_spku
ge_target_column: stasiun_id
ge_column_test_type: not_null
sql_assertion: SELECT count(*) FROM silver.table WHERE status NOT IN ('APPROVED',
'IN_REVIEW', 'REJECTED')
sql: SELECT count(*) FROM silver.table WHERE status NOT IN ('APPROVED', 'IN_REVIEW',
'REJECTED')
expected: 0
error_message: Unexpected rows detected in table
suite: bronze
fail: Stop DAG
- task_id: node-3473
type: dbt_transform
label: dbt Transform
enabled: true
dependencies:
- node-2426
config:
dbt_layer: silver
dbt_model: stg_spku_realtime
sel: silver
tgt: postgres
trino_catalog: iceberg
sql_query_preview: "-- dbt Silver Cleansed Model with Master Table Enrichment\n\
SELECT \n p.permit_id,\n p.permit_number,\n p.company_name,\n p.business_type,\n\
\ m.category_name,\n m.risk_level,\n m.compliance_weight,\n p.environmental_score,\n\
\ ROUND(p.environmental_score * m.compliance_weight, 2) AS weighted_compliance_score,\n\
\ p.status,\n p.location,\n p.updated_at\nFROM {{ ref('bronze_environmental_permits')\
\ }} p\nLEFT JOIN {{ ref('ref_business_categories') }} m \n ON p.business_type\
\ = m.business_type"
query: "-- dbt Silver Cleansed Model with Master Table Enrichment\nSELECT \n \
\ p.permit_id,\n p.permit_number,\n p.company_name,\n p.business_type,\n\
\ m.category_name,\n m.risk_level,\n m.compliance_weight,\n p.environmental_score,\n\
\ ROUND(p.environmental_score * m.compliance_weight, 2) AS weighted_compliance_score,\n\
\ p.status,\n p.location,\n p.updated_at\nFROM {{ ref('bronze_environmental_permits')\
\ }} p\nLEFT JOIN {{ ref('ref_business_categories') }} m \n ON p.business_type\
\ = m.business_type"
- task_id: node-4489
type: ge_quality
label: GE Quality Check
enabled: true
dependencies:
- node-3473
config:
ge_scope_level: all
ge_table_name: silver_environmental_compliance
test_table_row_count: true
test_table_schema_match: true
test_table_table_not_empty: true
table_min_rows: 1
table_max_rows: 1000000
ge_col_table: stasiun_spku
ge_target_column: stasiun_id
ge_column_test_type: not_null
sql_assertion: SELECT count(*) FROM silver.table WHERE status NOT IN ('APPROVED',
'IN_REVIEW', 'REJECTED')
sql: SELECT count(*) FROM silver.table WHERE status NOT IN ('APPROVED', 'IN_REVIEW',
'REJECTED')
expected: 0
error_message: Unexpected rows detected in table
suite: bronze
fail: Stop DAG
- task_id: node-5491
type: dbt_transform
label: dbt Transform
enabled: true
dependencies:
- node-4489
config:
dbt_layer: silver
dbt_model: stg_spku_realtime
sel: silver
tgt: postgres
trino_catalog: iceberg
sql_query_preview: "-- dbt Gold Aggregated Risk Mart\nSELECT \n risk_level,\n\
\ business_type,\n category_name,\n COUNT(permit_id) AS total_permits,\n\
\ COUNT(CASE WHEN status = 'ACTIVE' THEN 1 END) AS active_permits,\n COUNT(CASE\
\ WHEN status = 'SUSPENDED' THEN 1 END) AS suspended_permits,\n ROUND(AVG(environmental_score),\
\ 2) AS avg_environmental_score,\n ROUND(AVG(weighted_compliance_score), 2)\
\ AS avg_weighted_score,\n CURRENT_TIMESTAMP AS calculated_at\nFROM {{ ref('silver_environmental_compliance')\
\ }}\nGROUP BY risk_level, business_type, category_name\nORDER BY avg_weighted_score\
\ DESC"
query: "-- dbt Gold Aggregated Risk Mart\nSELECT \n risk_level,\n business_type,\n\
\ category_name,\n COUNT(permit_id) AS total_permits,\n COUNT(CASE WHEN status\
\ = 'ACTIVE' THEN 1 END) AS active_permits,\n COUNT(CASE WHEN status = 'SUSPENDED'\
\ THEN 1 END) AS suspended_permits,\n ROUND(AVG(environmental_score), 2) AS\
\ avg_environmental_score,\n ROUND(AVG(weighted_compliance_score), 2) AS avg_weighted_score,\n\
\ CURRENT_TIMESTAMP AS calculated_at\nFROM {{ ref('silver_environmental_compliance')\
\ }}\nGROUP BY risk_level, business_type, category_name\nORDER BY avg_weighted_score\
\ DESC"
- task_id: node-6528
type: ge_quality
label: GE Quality Check
enabled: true
dependencies:
- node-5491
config:
ge_scope_level: all
ge_table_name: gold_environmental_risk_summary
test_table_row_count: true
test_table_schema_match: true
test_table_table_not_empty: true
table_min_rows: 1
table_max_rows: 1000000
ge_col_table: stasiun_spku
ge_target_column: stasiun_id
ge_column_test_type: not_null
sql_assertion: SELECT count(*) FROM silver.table WHERE status NOT IN ('APPROVED',
'IN_REVIEW', 'REJECTED')
sql: SELECT count(*) FROM silver.table WHERE status NOT IN ('APPROVED', 'IN_REVIEW',
'REJECTED')
expected: 0
error_message: Unexpected rows detected in table
suite: bronze
fail: Stop DAG
- task_id: node-7512
type: sitomat_callback
label: Sitomat Callback
enabled: true
dependencies:
- node-6528
config:
layer: bronze
artifact_ref: lakehouse.bronze.dataset_cdc
checksum: sha256-verified-pipeline-pass
sitomat_base_url: http://localhost:3000
openmetadata_fqn: dlh_airflow_service.pipeline.task
ge_status: PASSED
url: /sitomat/callback
stage: bronze
@@ -0,0 +1,189 @@
pipeline_id: e2e_modernized_ingestion_flow
description: Dynamic Data Lakehouse Pipeline via DLH Studio
schedule: 0 */1 * * *
mode: flexible
governance:
domain: Lingkungan Hidup & Kehutanan
owner: de_team_dlh
tier: Tier.Tier1
certification: Certification.Gold
tasks:
- task_id: node-5630
type: source_db
label: Source Database (Environmental Permits)
enabled: true
dependencies: []
config:
conn: Postgres
conn_id: conn_postgres_source_db
table: public.environmental_permits
table_name: public.environmental_permits
target_type: minio_s3
watermark_column: updated_at
ingestion_mode: incremental_watermark
- task_id: node-6855
type: source_gws
label: Source GWS (Waste Reports)
enabled: true
dependencies: []
config:
url: gws_sheet_1OSRugXZvfjoY9M0yySKT_sampah_2026
spreadsheet_id: gws_sheet_1OSRugXZvfjoY9M0yySKT_sampah_2026
sheet_range: Sheet1
sheet_name: Sheet1
folder_id: 1OSRugXZvfjoY9M0yySKT
drive_folder_id: 1OSRugXZvfjoY9M0yySKT
selected_filename: Laporan_Sampah_Kabupaten_2026.xlsx
header_row: 2
- task_id: node-8156
type: source_api_dlt
label: Source REST API dlt (Sensor SPKU)
enabled: true
dependencies: []
config:
endpoint_url: https://api.spku.dlh.id/v1/telemetry
http_method: GET
auth_type: none
auth_token: ''
pagination_strategy: page_number
page_param: page
limit_param: limit
page_size: 100
cursor_column: measured_at
lookback_hours: 3
unnest_mode: auto_flatten
landing_bucket: dlh-landing
landing_prefix: api/spku_hourly/
bronze_table: bronze_spku_telemetry
url: https://api.spku.dlh.id/v1/telemetry
- task_id: node-9404
type: duckdb_transform
label: DuckDB Bronze Ingestion & Dedup
enabled: true
dependencies:
- node-5630
- node-6855
- node-8156
config:
layer: silver
source_parquet_path: s3://dlh-bronze/staging/environmental_permits/*.parquet
source_path: s3://dlh-bronze/staging/environmental_permits/*.parquet
target_table: bronze_environmental_permits
table_name: bronze_environmental_permits
primary_keys: permit_id
query: SELECT permit_id, permit_number, company_name, activity_type AS permit_type,
status, issued_date, updated_at FROM read_parquet('s3://dlh-bronze/staging/environmental_permits/*.parquet')
QUALIFY ROW_NUMBER() OVER (PARTITION BY permit_id ORDER BY updated_at DESC)
= 1
sql_query: SELECT permit_id, permit_number, company_name, activity_type AS permit_type,
status, issued_date, updated_at FROM read_parquet('s3://dlh-bronze/staging/environmental_permits/*.parquet')
QUALIFY ROW_NUMBER() OVER (PARTITION BY permit_id ORDER BY updated_at DESC)
= 1
transformation_sql: SELECT permit_id, permit_number, company_name, activity_type
AS permit_type, status, issued_date, updated_at FROM read_parquet('s3://dlh-bronze/staging/environmental_permits/*.parquet')
QUALIFY ROW_NUMBER() OVER (PARTITION BY permit_id ORDER BY updated_at DESC)
= 1
- task_id: node-0708
type: dbt_transform
label: dbt Silver Cleansed Permits Enriched
enabled: true
dependencies:
- node-9404
config:
dbt_layer: silver
dbt_model: silver_permits_enriched
sel: silver_permits_enriched
tgt: postgres
trino_catalog: iceberg
sql_query_preview: "-- dbt Silver Cleansed Environmental Permits\nSELECT \n permit_id,\n\
\ permit_number,\n company_name,\n permit_type,\n status,\n issued_date,\n\
\ updated_at,\n CURRENT_TIMESTAMP AS dbt_validated_at\nFROM {{ ref('bronze_environmental_permits')\
\ }}\nWHERE status != 'REVISED'"
query: "-- dbt Silver Cleansed Environmental Permits\nSELECT \n permit_id,\n\
\ permit_number,\n company_name,\n permit_type,\n status,\n issued_date,\n\
\ updated_at,\n CURRENT_TIMESTAMP AS dbt_validated_at\nFROM {{ ref('bronze_environmental_permits')\
\ }}\nWHERE status != 'REVISED'"
test_configs:
unique_columns: &id001
- permit_id
- permit_number
not_null_columns: &id002
- permit_id
- status
- updated_at
accepted_values: {}
enforce_contract: true
unique_columns: *id001
not_null_columns: *id002
enforce_contract: true
use_cosmos: true
transformation_engine: cosmos
- task_id: node-2234
type: ge_quality
label: GE Silver Compliance Quality Gate
enabled: true
dependencies:
- node-0708
config:
ge_scope_level: table
ge_table_name: silver_permits_enriched
test_table_row_count: true
test_table_schema_match: true
test_table_table_not_empty: true
table_min_rows: 1
table_max_rows: 1000000
ge_col_table: stasiun_spku
ge_target_column: stasiun_id
ge_column_test_type: not_null
sql_assertion: ''
sql: ''
expected: 0
error_message: Unexpected rows detected in table
suite: bronze
fail: Stop DAG
- task_id: node-3694
type: dbt_transform
label: dbt Gold Regulatory Compliance Mart
enabled: true
dependencies:
- node-2234
config:
dbt_layer: gold
dbt_model: gold_compliance_summary_mart
sel: gold_compliance_summary_mart
tgt: postgres
trino_catalog: iceberg
sql_query_preview: "-- dbt Gold Regulatory Compliance Mart\nSELECT \n permit_type,\n\
\ status,\n COUNT(permit_id) AS total_permits,\n COUNT(DISTINCT company_name)\
\ AS unique_companies,\n CURRENT_TIMESTAMP AS mart_refreshed_at\nFROM {{ ref('silver_permits_enriched')\
\ }}\nGROUP BY permit_type, status"
query: "-- dbt Gold Regulatory Compliance Mart\nSELECT \n permit_type,\n status,\n\
\ COUNT(permit_id) AS total_permits,\n COUNT(DISTINCT company_name) AS unique_companies,\n\
\ CURRENT_TIMESTAMP AS mart_refreshed_at\nFROM {{ ref('silver_permits_enriched')\
\ }}\nGROUP BY permit_type, status"
test_configs:
unique_columns: &id003 []
not_null_columns: &id004
- permit_type
- status
accepted_values: {}
enforce_contract: false
unique_columns: *id003
not_null_columns: *id004
use_cosmos: true
transformation_engine: cosmos
- task_id: node-4977
type: sitomat_callback
label: SITOMAT Governance Callback
enabled: true
dependencies:
- node-3694
config:
layer: gold
artifact_ref: lakehouse.gold.gold_compliance_summary_mart
checksum: sha256-verified-modernized-ingestion
sitomat_base_url: http://localhost:3000
openmetadata_fqn: dlh_airflow_service.pipeline.task
ge_status: PASSED
url: /sitomat/callback
stage: bronze
@@ -0,0 +1,256 @@
pipeline_id: e2e_orders_master_medallion_flow
description: Dynamic Data Lakehouse Pipeline via DLH Studio
schedule: 0 */1 * * *
mode: flexible
governance:
domain: Lingkungan Hidup & Kehutanan
owner: de_team_dlh
owner_name: Data Engineering DLH
tier: Tier.Tier1
certification: Certification.Gold
tasks:
- task_id: node-9826
type: source_db
label: Extract Master Facilities
enabled: true
dependencies: []
config:
conn: Postgres
conn_id: conn_postgres_source_db
table: public.ref_waste_facilities
table_name: public.ref_waste_facilities
target_type: minio_s3
- task_id: node-0827
type: duckdb_transform
label: DuckDB Master Facilities to Iceberg Bronze
enabled: true
dependencies:
- node-9826
config:
layer: silver
source_parquet_path: s3://dlh-bronze/staging/ref_facilities/*.parquet
source_path: s3://dlh-bronze/staging/ref_facilities/*.parquet
target_table: bronze_ref_facilities
table_name: bronze_ref_facilities
primary_keys: facility_id
query: SELECT facility_id, facility_name, operator_name, license_number, region_zone,
facility_type, max_daily_capacity_ton, facility_status, compliance_rating, created_at
FROM read_parquet('s3://dlh-bronze/staging/ref_facilities/*.parquet') QUALIFY
ROW_NUMBER() OVER (PARTITION BY facility_id ORDER BY created_at DESC) = 1
sql_query: SELECT facility_id, facility_name, operator_name, license_number, region_zone,
facility_type, max_daily_capacity_ton, facility_status, compliance_rating, created_at
FROM read_parquet('s3://dlh-bronze/staging/ref_facilities/*.parquet') QUALIFY
ROW_NUMBER() OVER (PARTITION BY facility_id ORDER BY created_at DESC) = 1
transformation_sql: SELECT facility_id, facility_name, operator_name, license_number,
region_zone, facility_type, max_daily_capacity_ton, facility_status, compliance_rating,
created_at FROM read_parquet('s3://dlh-bronze/staging/ref_facilities/*.parquet')
QUALIFY ROW_NUMBER() OVER (PARTITION BY facility_id ORDER BY created_at DESC)
= 1
- task_id: node-1812
type: source_db
label: Extract Raw Waste Orders
enabled: true
dependencies: []
config:
conn: Postgres
conn_id: conn_postgres_source_db
table: public.raw_waste_orders
table_name: public.raw_waste_orders
target_type: minio_s3
- task_id: node-2810
type: ge_quality
label: GE Orders Staging Quality Gate
enabled: true
dependencies:
- node-1812
config:
ge_scope_level: all
ge_table_name: staging_waste_orders
test_table_row_count: true
test_table_schema_match: true
test_table_table_not_empty: true
table_min_rows: 1
table_max_rows: 1000000
ge_col_table: stasiun_spku
ge_target_column: stasiun_id
sql_assertion: SELECT count(*) FROM public.raw_waste_orders WHERE order_status NOT IN ('COMPLETED', 'PENDING', 'CANCELLED', 'IN_TRANSIT')
sql: SELECT count(*) FROM public.raw_waste_orders WHERE order_status NOT IN ('COMPLETED', 'PENDING', 'CANCELLED', 'IN_TRANSIT')
expected: 0
error_message: Unexpected rows detected in table
suite: bronze
fail: Stop DAG
- task_id: node-3793
type: duckdb_transform
label: DuckDB Orders to Iceberg Bronze
enabled: true
dependencies:
- node-2810
config:
layer: silver
source_parquet_path: s3://dlh-bronze/staging/waste_orders/*.parquet
source_path: s3://dlh-bronze/staging/waste_orders/*.parquet
target_table: bronze_waste_orders
table_name: bronze_waste_orders
primary_keys: order_id
query: SELECT order_id, manifest_code, facility_id, generator_company, waste_category,
volume_ton, tariff_per_ton, transport_fee, order_status, order_date, created_at
FROM read_parquet('s3://dlh-bronze/staging/waste_orders/*.parquet') QUALIFY
ROW_NUMBER() OVER (PARTITION BY order_id ORDER BY created_at DESC) = 1
sql_query: SELECT order_id, manifest_code, facility_id, generator_company, waste_category,
volume_ton, tariff_per_ton, transport_fee, order_status, order_date, created_at
FROM read_parquet('s3://dlh-bronze/staging/waste_orders/*.parquet') QUALIFY
ROW_NUMBER() OVER (PARTITION BY order_id ORDER BY created_at DESC) = 1
transformation_sql: SELECT order_id, manifest_code, facility_id, generator_company,
waste_category, volume_ton, tariff_per_ton, transport_fee, order_status, order_date,
created_at FROM read_parquet('s3://dlh-bronze/staging/waste_orders/*.parquet')
QUALIFY ROW_NUMBER() OVER (PARTITION BY order_id ORDER BY created_at DESC) =
1
- task_id: node-4793
type: ge_quality
label: GE Orders Bronze Iceberg Quality
enabled: true
dependencies:
- node-3793
config:
ge_scope_level: all
ge_table_name: bronze_waste_orders
test_table_row_count: true
test_table_schema_match: true
test_table_table_not_empty: true
table_min_rows: 1
table_max_rows: 1000000
ge_col_table: stasiun_spku
ge_target_column: stasiun_id
sql_assertion: SELECT count(*) FROM public.raw_waste_orders WHERE volume_ton <= 0
sql: SELECT count(*) FROM public.raw_waste_orders WHERE volume_ton <= 0
expected: 0
error_message: Unexpected rows detected in table
suite: bronze
fail: Stop DAG
- task_id: node-5809
type: dbt_transform
label: dbt Silver Waste Manifest Enriched
enabled: true
dependencies:
- node-0827
- node-4793
config:
dbt_layer: silver
dbt_model: silver_waste_manifest_enriched
sel: silver_waste_manifest_enriched
tgt: postgres
trino_catalog: iceberg
sql_query_preview: "-- dbt Silver Cleansed Manifest Orders Enriched with Master\
\ Facilities\nSELECT \n o.order_id,\n o.manifest_code,\n o.order_date,\n\
\ o.generator_company,\n o.waste_category,\n o.volume_ton,\n o.tariff_per_ton,\n\
\ o.transport_fee,\n ROUND((o.volume_ton * o.tariff_per_ton) + o.transport_fee,\
\ 2) AS total_order_amount,\n o.order_status,\n f.facility_id,\n f.facility_name,\n\
\ f.region_zone,\n f.facility_type,\n f.compliance_rating,\n f.facility_status,\n\
\ CASE \n WHEN f.facility_status = 'ACTIVE' AND o.volume_ton <= f.max_daily_capacity_ton\
\ THEN 'COMPLIANT'\n WHEN f.facility_status != 'ACTIVE' THEN 'UNLICENSED_FACILITY_WARNING'\n\
\ ELSE 'CAPACITY_EXCEEDED_WARNING'\n END AS environmental_compliance_status\n\
FROM {{ ref('bronze_waste_orders') }} o\nLEFT JOIN {{ ref('bronze_ref_facilities')\
\ }} f\n ON o.facility_id = f.facility_id\nWHERE o.order_status != 'CANCELLED'"
query: "-- dbt Silver Cleansed Manifest Orders Enriched with Master Facilities\n\
SELECT \n o.order_id,\n o.manifest_code,\n o.order_date,\n o.generator_company,\n\
\ o.waste_category,\n o.volume_ton,\n o.tariff_per_ton,\n o.transport_fee,\n\
\ ROUND((o.volume_ton * o.tariff_per_ton) + o.transport_fee, 2) AS total_order_amount,\n\
\ o.order_status,\n f.facility_id,\n f.facility_name,\n f.region_zone,\n\
\ f.facility_type,\n f.compliance_rating,\n f.facility_status,\n CASE \n\
\ WHEN f.facility_status = 'ACTIVE' AND o.volume_ton <= f.max_daily_capacity_ton\
\ THEN 'COMPLIANT'\n WHEN f.facility_status != 'ACTIVE' THEN 'UNLICENSED_FACILITY_WARNING'\n\
\ ELSE 'CAPACITY_EXCEEDED_WARNING'\n END AS environmental_compliance_status\n\
FROM {{ ref('bronze_waste_orders') }} o\nLEFT JOIN {{ ref('bronze_ref_facilities')\
\ }} f\n ON o.facility_id = f.facility_id\nWHERE o.order_status != 'CANCELLED'"
- task_id: node-6793
type: ge_quality
label: GE Silver Compliance Quality Gate
enabled: true
dependencies:
- node-5809
config:
ge_scope_level: all
ge_table_name: silver_waste_manifest_enriched
test_table_row_count: true
test_table_schema_match: true
test_table_table_not_empty: true
table_min_rows: 1
table_max_rows: 1000000
ge_col_table: stasiun_spku
ge_target_column: stasiun_id
sql_assertion: SELECT count(*) FROM public.raw_waste_orders WHERE facility_id IS NULL
sql: SELECT count(*) FROM public.raw_waste_orders WHERE facility_id IS NULL
expected: 0
error_message: Unexpected rows detected in table
suite: bronze
fail: Stop DAG
- task_id: node-7793
type: dbt_transform
label: dbt Gold Regional Waste Revenue Mart
enabled: true
dependencies:
- node-6793
config:
dbt_layer: gold
dbt_model: gold_regional_waste_metrics
sel: gold_regional_waste_metrics
tgt: postgres
trino_catalog: iceberg
sql_query_preview: "-- dbt Gold Regional Waste Revenue & Compliance Mart\nSELECT\
\ \n region_zone,\n facility_type,\n waste_category,\n COUNT(order_id) AS\
\ total_orders,\n COUNT(DISTINCT facility_id) AS active_facilities_count,\n\
\ COUNT(DISTINCT generator_company) AS active_generators_count,\n ROUND(SUM(volume_ton),\
\ 2) AS total_waste_volume_ton,\n ROUND(SUM(total_order_amount), 2) AS total_gross_revenue,\n\
\ ROUND(AVG(total_order_amount / NULLIF(volume_ton, 0)), 2) AS avg_revenue_per_ton,\n\
\ COUNT(CASE WHEN environmental_compliance_status = 'COMPLIANT' THEN 1 END)\
\ AS compliant_orders_count,\n CURRENT_TIMESTAMP AS mart_refreshed_at\nFROM\
\ {{ ref('silver_waste_manifest_enriched') }}\nGROUP BY region_zone, facility_type,\
\ waste_category\nORDER BY total_waste_volume_ton DESC"
query: "-- dbt Gold Regional Waste Revenue & Compliance Mart\nSELECT \n region_zone,\n\
\ facility_type,\n waste_category,\n COUNT(order_id) AS total_orders,\n \
\ COUNT(DISTINCT facility_id) AS active_facilities_count,\n COUNT(DISTINCT\
\ generator_company) AS active_generators_count,\n ROUND(SUM(volume_ton), 2)\
\ AS total_waste_volume_ton,\n ROUND(SUM(total_order_amount), 2) AS total_gross_revenue,\n\
\ ROUND(AVG(total_order_amount / NULLIF(volume_ton, 0)), 2) AS avg_revenue_per_ton,\n\
\ COUNT(CASE WHEN environmental_compliance_status = 'COMPLIANT' THEN 1 END)\
\ AS compliant_orders_count,\n CURRENT_TIMESTAMP AS mart_refreshed_at\nFROM\
\ {{ ref('silver_waste_manifest_enriched') }}\nGROUP BY region_zone, facility_type,\
\ waste_category\nORDER BY total_waste_volume_ton DESC"
- task_id: node-8871
type: ge_quality
label: GE Gold Mart Integrity Gate
enabled: true
dependencies:
- node-7793
config:
ge_scope_level: all
ge_table_name: gold_regional_waste_metrics
test_table_row_count: true
test_table_schema_match: true
test_table_table_not_empty: true
table_min_rows: 1
table_max_rows: 1000000
ge_col_table: stasiun_spku
ge_target_column: stasiun_id
sql_assertion: SELECT count(*) FROM public.ref_waste_facilities WHERE max_daily_capacity_ton <= 0
sql: SELECT count(*) FROM public.ref_waste_facilities WHERE max_daily_capacity_ton <= 0
expected: 0
error_message: Unexpected rows detected in table
suite: bronze
fail: Stop DAG
- task_id: node-9855
type: sitomat_callback
label: SITOMAT Governance Callback
enabled: true
dependencies:
- node-8871
config:
layer: gold
artifact_ref: lakehouse.gold.gold_regional_waste_metrics
checksum: sha256-verified-waste-orders-pass
sitomat_base_url: http://localhost:3000
openmetadata_fqn: dlh_airflow_service.pipeline.task
ge_status: PASSED
url: /sitomat/callback
stage: bronze
mock_mode: true