This project orchestrates an end-to-end data pipeline for an e-commerce dataset using Apache Airflow (in Docker) and a separate dbt (data build tool) project. The pipeline transforms raw source data into structured, analytics-ready datasets.
- Purpose: Automate and orchestrate dbt-powered transformations for e-commerce data using Apache Airflow.
- Architecture:
- Apache Airflow for orchestration
- BashOperators to trigger dbt CLI commands
- dbt project lives in a separate GitHub repo
- Docker for containerization and local orchestration
| DAG Name | Description |
|---|---|
create_staging_data |
Triggers dbt run for staging models |
create_data_marts |
Triggers dbt run for data marts |
NOTE: These DAGs are manually triggered at the moment. Future work includes adding scheduled automation.
- Configured to send email alerts upon successful DAG completion
- SMTP settings and recipient list can be configured via Airflow variables or environment variables
-
Clone this Airflow repo
git clone https://github.com/nishtha-pant/airflow.git cd airflow -
Clone the dbt repo inside this folder
git clone https://github.com/nishtha-pant/dbt-project.gitThe dbt project should now be available at `./dbt-project`
-
Start Airflow
docker-compose up --build
-
Access Airflow UI
- http://localhost:8080
- Login:
airflow/airflow
-
Trigger DAGs
create_staging_datacreate_data_marts
-
Each DAG uses BashOperator to run dbt commands inside the container:
cd /opt/airflow/dbt-project && dbt run --select staging -
Airflow interacts with the mounted dbt project and uses the appropriate
profiles.ymlto authenticate.
- Add DAG scheduling (daily/hourly runs)
- Add Slack alerting for failures
- Include dbt freshness checks
- Migrate to Airflow in the cloud (e.g., Cloud Composer + dbt Cloud)




