Library to convert DBT manifest metadata to Airflow tasks
Project description
DBT Airflow Factory
Library to convert DBT manifest metadata to Airflow tasks
Documentation
Read the full documentation at https://dbt-airflow-factory.readthedocs.io/
Installation
Use the package manager pip to install the library:
pip install dbt-airflow-factory
Usage
The library is expected to be used inside an Airflow environment with a Kubernetes image referencing dbt.
dbt-airflow-factory's main task is to parse manifest.json
and create Airflow DAG out of it. It also reads config
files from config
directory and therefore is highly customizable (e.g., user can set path to manifest.json
).
To start, create a directory with a following structure, where manifest.json
is a file generated by dbt:
.
├── config
│ ├── base
│ │ ├── airflow.yml
│ │ ├── dbt.yml
│ │ └── k8s.yml
│ └── dev
│ └── dbt.yml
├── dag.py
└── manifest.json
Then, put the following code into dag.py
:
from dbt_airflow_factory.airflow_dag_factory import AirflowDagFactory
from os import path
dag = AirflowDagFactory(path.dirname(path.abspath(__file__)), "dev").create()
When uploaded to Airflow DAGs directory, it will get picked up by Airflow, parse manifest.json
and prepare a DAG to run.
Configuration files
It is best to look up the example configuration files in tests directory to get a glimpse of correct configs.
You can use Airflow template variables in your dbt.yml
and k8s.yml
files, as long as they are inside
quotation marks:
target: "{{ var.value.env }}"
some_other_field: "{{ ds_nodash }}"
Analogously, you can use "{{ var.value.VARIABLE_NAME }}"
in airflow.yml
, but only the Airflow variable getter.
Any other Airflow template variables will not work in airflow.yml
.
Creation of the directory with data-pipelines-cli
DBT Airflow Factory works best in tandem with data-pipelines-cli tool. dp not only prepares directory for the library to digest, but also automates Docker image building and pushes generated directory to the cloud storage of your choice.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for dbt-airflow-factory-0.28.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78d3783c064c63d4c33a924bbcdf86d6c64e55fe96994d9609d1d3239ce11722 |
|
MD5 | 748d487f8b3d520aa73c32eb7283d064 |
|
BLAKE2b-256 | 381c1e8ccd5a6d718bcc73ddd4744d42dfc4d2c63a580afc428f20e2576d5b82 |