This project demonstrates a data pipeline using Dagster, dbt, and Snowflake, all containerized with Docker.
.
├── dbt_project/ # dbt project directory
│ ├── models/ # dbt models
│ ├── macros/ # dbt macros
│ └── dbt_project.yml # dbt project configuration
├── dagster/ # Dagster project files
│ └── dagster_home/ # Dagster home directory
├── docker/ # Docker configuration files
│ ├── Dockerfile.dagster
│ └── Dockerfile.dbt
├── docker-compose.yml # Docker Compose configuration
└── requirements.txt # Python dependencies
- Docker and Docker Compose
- Snowflake account with appropriate permissions
- Git
-
Clone the repository:
git clone <repository-url> cd containerized_dagster_dbt_snowflake_pipeline
-
Configure Snowflake credentials:
- Create a
profiles.ymlfile in thedbt_projectdirectory with your Snowflake credentials - Ensure the credentials match the configuration in
docker-compose.yml
- Create a
-
Start the containers:
docker-compose up -d
-
Access Dagster UI:
- Open
http://localhost:3000in your browser - The Dagster UI will be available with your pipeline
- Open
- Create new model files in
dbt_project/models/ - Update
dbt_project/dbt_project.ymlto include new models - Test locally using dbt commands:
docker-compose exec dbt dbt run
- Edit the Dagster job definitions in the
dagsterdirectory - Restart the Dagster container to apply changes:
docker-compose restart dagster
- Check container logs:
docker-compose logs -f
- Verify Snowflake connection:
docker-compose exec dbt dbt debug - Check dbt model status:
docker-compose exec dbt dbt ls