- Pipeline Name:
ecomm_data_pipeline - Description: ETL/ELT pipeline for ecommerce analytics of {company_name}
- Objective: Ingest OLTP → S3 → Databricks DLT (Bronze/Silver/Gold) → dbt metrics → Tableau dashboards
- Frequency: Daily batch (01:00 ICT)
- Owner: Data Engineering Team
- Contact: #data-eng Slack / data-eng@company.com
- Airflow DAG (
batch_ecomm_pipeline) triggers extract:- Postgres tables (
orders,products,customers,order_items) exported → S3 (/ecomm_db_extracts/daily_extracts).
- Postgres tables (
- DLT Pipeline runs:
- Bronze: Load raw CSV with schema evolution (rescue mode).
- Silver: Cast types, enforce PKs, enrich with processed timestamp. Builds
fact_orders,dim_orders,dim_customer,dim_product. - Gold: Create analytics & aggregations (
sales_analytics,agg_daily_sales).
- dbt Job (
DailyRefresh) runs at 05:00 ICT:- Aggregates business metrics (
agg_sales_kpi,agg_product_kpi,agg_customer_kpi).
- Aggregates business metrics (
- Tableau extracts refresh → dashboards updated.
Expected Duration:
- Extraction + DLT pipeline: ~2–2.5 hrs
- dbt job: ~20 mins
- Tableau refresh: <30 mins
- DLT: Monitor via Databricks pipeline event logs; notifications configured for failure.
- dbt: Review run logs/artifacts in dbt Cloud (
DailyRefreshjob). - Airflow: DAG status and task logs.
- Tableau: Extract refresh history.
- Symptom: Missing or empty file in S3.
- Steps:
- Check Airflow task logs (
extract_postgres_to_s3). - Verify Postgres connectivity and
updated_atwatermark logic. - Manually trigger backfill using Airflow with custom
execution_date.
- Check Airflow task logs (
- Symptom: Pipeline fails with schema mismatch.
- Steps:
- Open DLT logs → check schema evolution warnings.
- Confirm S3 file schema matches Postgres export.
- If new column → confirm schema evolution handles via rescue.
- Symptom: Records dropped unexpectedly.
- Steps:
- Check expectations for PK validity.
- Confirm
updated_atlogic and deduplication rules. - Validate timestamps standardized to UTC.
- Symptom: Missing or incorrect
sales_analyticsoragg_daily_sales. - Steps:
- Inspect upstream Silver tables (
fact_orders,dim_orders). - Re-run DLT pipeline manually if partial failure.
- Inspect upstream Silver tables (
- Symptom: dbt job
DailyRefreshfails. - Steps:
- Check dbt Cloud run logs.
- Validate Gold tables (
sales_analytics,agg_daily_sales) exist. - Run model selectively:
dbt run -m agg_sales_kpi.
- Symptom: Dashboard shows stale data.
- Steps:
- Check Tableau extract refresh status.
- Trigger manual refresh.
- Confirm dbt metric tables populated in Databricks SQL Warehouse.
- Priority 1 (Pipeline Down / No Data in Tableau):
- Notify #data-eng Slack immediately.
- Escalate to On-call DE (PagerDuty).
- Priority 2 (Partial Data / Missing KPIs):
- File Jira ticket.
- Notify Data Analytics team.
- Priority 3 (Minor Schema Drift / Cosmetic Errors):
- Add to backlog for next sprint.
- Re-run Full DAG: Trigger
batch_ecomm_pipelinein Airflow. - Backfill Specific Date: Provide
execution_dateparam in Airflow DAG. - Re-run dbt Job: Trigger
DailyRefreshmanually from dbt Cloud. - Re-run Tableau Extract: Trigger manual extract refresh in Tableau Server.