Concepts¶
Three layers stacked together produce a dbt-aws DAG:
- Architecture — how dbt-aws turns a dbt project into a set of
Airflow tasks. The dispatch pipeline: manifest load → selector → per-node runner
resolution →
make_task→ wire edges → wrap in TaskGroups. - Runners — each runner is the backend that executes a single dbt
model on AWS. Four shapes are first-class:
- Glue Spark Job — one Glue Job per model (or per-DAG),
glue:CreateJob+StartJobRun. - Glue Interactive Session (warm) — one shared session,
CreateSessiononce, all models submit statements to it. - Glue Interactive Session (per-node) — one session per model, ephemeral.
- Glue Python Shell — small non-Spark jobs. (Currently disabled in demos — see Known issues.)
- Glue Spark Job — one Glue Job per model (or per-DAG),
- Routing + Visual grouping — independent
features that compose:
tag_runnersdecides which runner executes a model (bulk by tag).task_groupsdecides which UI folder the task lives in (visual nesting).overridesis the per-node escape hatch (wins over both).
- Deployment helpers — how the lib gets your dbt project + worker
entrypoint script to the Glue/EMR workers. Content-addressed S3 keys, idempotent
uploads, parse-time
HEAD-and-skip.