Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Run your dbt Core projects as Apache Airflow DAGs and Task Groups with a few lines of code

License

NotificationsYou must be signed in to change notification settings

astronomer/astronomer-cosmos

Repository files navigation


furyossrankdownloadspre-commit.ci status

Run your dbt Core projects asApache Airflow® DAGs and Task Groups with a few lines of code. Benefits include:

  • Run dbt projects against Airflow connections instead of dbt profiles
  • Native support for installing and running dbt in a virtual environment to avoid dependency conflicts with Airflow
  • Run tests immediately after a model is done to catch issues early
  • Utilize Airflow's data-aware scheduling to run models immediately after upstream ingestion
  • Turn each dbt model into a task/task group complete with retries, alerting, etc.

Quickstart

Check out the Getting Started guide on ourdocs. See more examples at/dev/dags and at thecosmos-demo repo.

Example Usage

You can render a Cosmos Airflow DAG using theDbtDag class. Here's an example with thejaffle_shop project:

"""
An example DAG that uses Cosmos to render a dbt project.
"""
importos
fromdatetimeimportdatetime
frompathlibimportPath
fromcosmosimportDbtDag,ProjectConfig,ProfileConfig
fromcosmos.profilesimportPostgresUserPasswordProfileMapping
DEFAULT_DBT_ROOT_PATH=Path(__file__).parent/"dbt"
DBT_ROOT_PATH=Path(os.getenv("DBT_ROOT_PATH",DEFAULT_DBT_ROOT_PATH))
profile_config=ProfileConfig(
profile_name="default",
target_name="dev",
profile_mapping=PostgresUserPasswordProfileMapping(
conn_id="airflow_db",
profile_args={"schema":"public"},
),
)
# [START local_example]
basic_cosmos_dag=DbtDag(
# dbt/cosmos-specific parameters
project_config=ProjectConfig(
DBT_ROOT_PATH/"jaffle_shop",
),
profile_config=profile_config,
operator_args={
"install_deps":True,# install any necessary dependencies before running any dbt command
"full_refresh":True,# used only in dbt commands that support this flag
},
# normal dag parameters
schedule_interval="@daily",
start_date=datetime(2023,1,1),
catchup=False,
dag_id="basic_cosmos_dag",
default_args={"retries":2},
)
# [END local_example]

This will generate an Airflow DAG that looks like this:

https://github.com/astronomer/astronomer-cosmos/blob/main/docs/_static/jaffle_shop_dag.png

Community

  • Join us on the AirflowSlack at #airflow-dbt

Changelog

We followSemantic Versioning for releases.CheckCHANGELOG.rstfor the latest changes.

Contributing Guide

All contributions, bug reports, bug fixes, documentation improvements, enhancements are welcome.

A detailed overview an how to contribute can be found in theContributing Guide.

As contributors and maintainers to this project, you are expected to abide by theContributor Code of Conduct.

License

Apache License 2.0

Privacy Notice

The application and this website collect telemetry to support the project's development. These can be disabled by the end-users.

Read thePrivacy Notice to learn more about it.

https://static.scarf.sh/a.png?x-pxid=ae43a92a-5a21-4c77-af8b-99c2242adf93

Security Policy

Check the project'sSecurity Policy to learnhow to report security vulnerabilities in Astronomer Cosmos and how security issues reported to the Astronomer Cosmossecurity team are handled.


[8]ページ先頭

©2009-2025 Movatter.jp