Skip to main content

Integrations Overview

Dagster provides a comprehensive set of integrations that connect your data pipelines to the modern data stack. These integrations enable you to build end-to-end data workflows that span multiple tools and platforms.

Available Integrations

Dagster offers 60+ integration libraries that extend the core framework with specialized functionality for working with external systems.

Data Transformation

dbt

Build software-defined assets from dbt models with full lineage tracking

Sling

Extract and load data between databases and storage systems

Data Warehouses

Snowflake

Execute queries and manage data in Snowflake

BigQuery

Run BigQuery jobs and query datasets

Redshift

Connect to Amazon Redshift for data warehousing

Databricks

Execute Databricks jobs and use Databricks SQL

DuckDB

Embedded analytical database for fast queries

Postgres

Connect to PostgreSQL databases

Cloud Platforms

AWS

S3, EMR, ECS, Athena, Lambda, and more AWS services

GCP

BigQuery, GCS, Dataproc, and other Google Cloud services

Azure

Azure Blob Storage, Data Lake, and Azure services

Orchestration & Migration

Airflow

Migrate from Airflow or run Airflow DAGs in Dagster

Airlift

Incrementally migrate Airflow DAGs to Dagster

Data Quality & Observability

Great Expectations

Data quality testing and validation

Pandera

DataFrame validation for Pandas and PySpark

Datadog

Send metrics and events to Datadog

Business Intelligence

Tableau

Refresh Tableau workbooks and datasources

Looker

Trigger Looker PDTs and manage dashboards

PowerBI

Refresh PowerBI datasets and reports

Sigma

Integrate with Sigma Computing for analytics

Data Integration

Fivetran

Trigger and monitor Fivetran sync jobs

Airbyte

Run Airbyte connection syncs

Census

Trigger Census reverse ETL syncs

Hightouch

Execute Hightouch syncs for reverse ETL

Machine Learning

MLflow

Track ML experiments and deploy models

Weights & Biases

Log experiments and artifacts to W&B

OpenAI

Build LLM-powered data pipelines

Data Processing

Spark

Execute Spark jobs for distributed processing

PySpark

Write Spark jobs in Python

Pandas

DataFrame validation and type checking

Polars

Fast DataFrame operations with Polars

DuckDB

In-process analytical queries

Delta Lake

Work with Delta Lake tables

Compute & Execution

Kubernetes

Run Dagster on Kubernetes

Docker

Execute ops in Docker containers

Celery

Distributed task execution with Celery

Dask

Parallel computing with Dask

Notifications

Slack

Send notifications to Slack channels

PagerDuty

Create incidents and alerts in PagerDuty

Microsoft Teams

Post messages to Teams channels

Twilio

Send SMS notifications via Twilio

Infrastructure

SSH

Execute commands on remote servers via SSH

GitHub

Interact with GitHub API and repositories

Installation

Each integration is distributed as a separate Python package. Install integrations using pip or uv:
# Install a single integration
pip install dagster-dbt

# Install multiple integrations
pip install dagster-dbt dagster-snowflake dagster-aws
Most integration libraries require dagster to be installed first. Some integrations have additional dependencies that will be automatically installed.

Using Integrations

Integrations typically provide one or more of the following:
  • Resources: Configurable clients for connecting to external systems
  • Assets: Pre-built asset definitions for common patterns
  • Ops: Reusable operations for specific tasks
  • IO Managers: Persistent storage backends
  • Sensors: Monitors for external events
Example using multiple integrations:
from dagster import Definitions
from dagster_dbt import DbtCliResource, dbt_assets
from dagster_snowflake import SnowflakeResource
from dagster_slack import SlackResource

@dbt_assets(manifest="path/to/manifest.json")
def dbt_models(context, dbt: DbtCliResource):
    yield from dbt.cli(["build"], context=context).stream()

defs = Definitions(
    assets=[dbt_models],
    resources={
        "dbt": DbtCliResource(project_dir="path/to/dbt"),
        "snowflake": SnowflakeResource(
            account="my-account",
            user="my-user",
            password={"env": "SNOWFLAKE_PASSWORD"},
        ),
        "slack": SlackResource(token={"env": "SLACK_TOKEN"}),
    },
)

Creating Custom Integrations

You can extend Dagster with custom integrations by:
  1. Creating a ConfigurableResource for your external system
  2. Building asset definitions or ops that use your resource
  3. Packaging as a library for reuse across projects
See the Resources guide for more details.

Next Steps

Explore specific integration guides:

Build docs developers (and LLMs) love