Skip to main content

PyPI - Version GitHub Build

License PyPI - Python Version PyPI - Downloads

Ruff Checked with mypy

dmp-af: distributed dbt runs on Airflow

Overview

dmp-af runs your dbt models in parallel on Airflow. Each model becomes an independent task while preserving dependencies across domains.

Built for scale. Designed for large dbt projects (1000+ models) and data mesh architecture. Works with any project size.

dmp-af dbt-af3

Why dmp-af?

  1. Domain-driven architecture - Separate models by domain into different DAGs, run in parallel, perfect for data mesh
  2. dbt-first design - All configuration in dbt model configs, analytics teams stay in dbt, no Airflow knowledge required
  3. Flexible scheduling - Multiple schedules per model (@hourly, @daily, @weekly, @monthly, and more)
  4. Enterprise features - Multiple dbt targets, configurable test strategies, built-in maintenance, Kubernetes support

Installation

To install dmp-af run pip install dmp-af.

To contribute we recommend to use uv to install package dependencies. Run uv sync --all-packages --all-groups --all-extras to install all dependencies.

dmp-af by Example

All tutorials and examples are located in the examples folder.

To get basic Airflow DAGs for your dbt project, you need to put the following code into your dags folder:

# LABELS: dag, airflow (it's required for airflow dag-processor)
from dmp_af.dags import compile_dmp_af_dags
from dmp_af.conf import Config, DbtDefaultTargetsConfig, DbtProjectConfig

# specify here all settings for your dbt project
config = Config(
    dbt_project=DbtProjectConfig(
        dbt_project_name='my_dbt_project',
        dbt_project_path='/path/to/my_dbt_project',
        dbt_models_path='/path/to/my_dbt_project/models',
        dbt_profiles_path='/path/to/my_dbt_project',
        dbt_target_path='/path/to/my_dbt_project/target',
        dbt_log_path='/path/to/my_dbt_project/logs',
        dbt_schema='my_dbt_schema',
    ),
    dbt_default_targets=DbtDefaultTargetsConfig(default_target='dev'),
    dry_run=False,  # set to True if you want to turn on dry-run mode
)

dags = compile_dmp_af_dags(
    manifest_path='/path/to/my_dbt_project/target/manifest.json',
    config=config,
)
for dag_name, dag in dags.items():
    globals()[dag_name] = dag

In dbt_project.yml you need to set up default targets for all nodes in your project (see example):

sql_cluster: "dev"
daily_sql_cluster: "dev"
py_cluster: "dev"
bf_cluster: "dev"

This will create Airflow DAGs for your dbt project.

Check out the documentation for more details here.

Key Features

Auto-generated DAGs

  • Automatically creates Airflow DAGs from your dbt project
  • Organizes by domain and schedule
  • Handles dependencies across domains

Idempotent runs

  • Each model is a separate Airflow task
  • Date intervals passed to every run
  • Reliable backfills and reruns

Team-friendly

  • Analytics teams stay in dbt
  • No Airflow DAG writing required
  • Infrastructure handled automatically

Requirements

dmp-af is tested with:

Airflow version Python versions dbt-core versions
2.6.3 ≥3.10,<3.12 ≥1.7,<=1.10
2.7.3 ≥3.10,<3.12 ≥1.7,<=1.10
2.8.4 ≥3.10,<3.12 ≥1.7,<=1.10
2.9.3 ≥3.10,<3.13 ≥1.7,<=1.10
2.10.5 ≥3.10,<3.13 ≥1.7,<=1.10
2.11.0 ≥3.10,<3.13 ≥1.7,<=1.10
3.0.6 ≥3.10,<3.13 ≥1.7,≤1.10
3.1.3 ≥3.10,<3.14 ≥1.7,≤1.10
3.2.2 ≥3.10,<3.14 ≥1.7,≤1.10
3.3.0 ≥3.10,<3.14 ≥1.7,≤1.10
3.3.2 ≥3.10,<3.14 ≥1.7,≤1.10

Project Information

About this fork

This project is a fork of Toloka AI BV's original repository. It includes substantial modifications by IJKOS & PARTNERS LTD. This fork is not affiliated with or endorsed by Toloka AI BV.

The original project is licensed under the Apache License 2.0.

Migrating from dbt-af

If you're currently using dbt-af and want to migrate to dmp-af, see our Migration Guide for step-by-step instructions.

Metadata

Release files for dmp-af 0.19.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dmp-af 0.19.0
File Size Uploaded Provenance Actions
dmp_af-0.19.0.tar.gz 44.5 kB With provenance Details for dmp_af-0.19.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dmp-af 0.19.0
File Interpreter ABI Platform Actions
dmp_af-0.19.0-py3-none-any.whl Python 3 none any Details for dmp_af-0.19.0-py3-none-any.whl

Total release size: 102.2 kB

Release files / dmp_af-0.19.0.tar.gz

Download URL dmp_af-0.19.0.tar.gz
Size 44.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ec6cb0b3c0e7cb1ec6c617d3cae3c3318f1a5ad5c6e550115122f0c0cb93c939
BLAKE2b-256 checksum
How to use checksums
a991fa48191ff58c19ea841d29fe4264b22d936fa389c62a5633f6cebbb0eac6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / dmp_af-0.19.0-py3-none-any.whl

Download URL dmp_af-0.19.0-py3-none-any.whl
Size 57.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de0bf53c2772cdb6a24f1c33c11eca0d7c5d78a5b36b18fa05298ddd9ef09951
BLAKE2b-256 checksum
How to use checksums
eb38175259ac7f96cd938e9b2f7d0a227c01ae930503a70eb41c14c7fa0236f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Security for dmp-af 0.19.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for dmp_af-0.19.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page