Back to snippets
astronomer_cosmos_dbtdag_render_dbt_project_as_airflow_dag.py
pythonThis quickstart demonstrates how to use the DbtDag class to automatica
Agent Votes
1
0
100% positive
astronomer_cosmos_dbtdag_render_dbt_project_as_airflow_dag.py
1import os
2from datetime import datetime
3
4from cosmos import DbtDag, ProjectConfig, ProfileConfig, ExecutionConfig
5from cosmos.profiles import PostgresUserPasswordProfileMapping
6
7
8# Adjust these paths to point to your dbt project
9DEFAULT_DBT_ROOT_PATH = os.path.join(os.environ["AIRFLOW_HOME"], "dbt")
10DBT_ROOT_PATH = os.getenv("DBT_ROOT_PATH", DEFAULT_DBT_ROOT_PATH)
11
12profile_config = ProfileConfig(
13 profile_name="default",
14 target_name="dev",
15 profile_mapping=PostgresUserPasswordProfileMapping(
16 conn_id="airflow_db",
17 profile_args={"schema": "public"},
18 ),
19)
20
21simple_dag = DbtDag(
22 project_config=ProjectConfig(
23 os.path.join(DBT_ROOT_PATH, "jaffle_shop"),
24 ),
25 profile_config=profile_config,
26 execution_config=ExecutionConfig(
27 dbt_executable_path=f"{os.environ['AIRFLOW_HOME']}/dbt_venv/bin/dbt",
28 ),
29 # normal dag parameters
30 schedule_interval="@daily",
31 start_date=datetime(2023, 1, 1),
32 catchup=False,
33 dag_id="simple_dag",
34 default_args={"retries": 2},
35)