Setting the file. One moment.
Subchapter 2.119
references/integrations/dagster-dbt/dbt-cloud.mdMarkdown2 KBView on GitHub
The dagster-dbt library provides integration with dbt Cloud via the v2 API (recommended) for projects hosted on dbt Cloud.
Use the dbt Cloud integration when:
For dbt Core projects (self-hosted), use the Component-Based or Pythonic integration instead.
DbtCloudWorkspace: Resource for accessing a dbt Cloud workspaceDbtCloudCredentials: Authentication credentials (account_id, token, access_url)dbt_cloud_assets: Decorator for defining assets from a dbt Cloud jobload_dbt_cloud_asset_specs(): Load asset specs from dbt Cloud jobbuild_dbt_cloud_polling_sensor(): Create a sensor that polls for dbt Cloud job completionimport dagster as dg
from dagster_dbt import DbtCloudCredentials, DbtCloudWorkspace, dbt_cloud_assets
# Define credentials
dbt_cloud_credentials = DbtCloudCredentials(
account_id=12345,
token=dg.EnvVar("DBT_CLOUD_API_TOKEN"),
access_url="https://cloud.getdbt.com",
)
# Define workspace resource
dbt_cloud = DbtCloudWorkspace(
credentials=dbt_cloud_credentials,
project_id=67890,
environment_id=1,
)
# Define assets from dbt Cloud job
@dbt_cloud_assets(workspace=dbt_cloud)
def my_dbt_cloud_assets(context: dg.AssetExecutionContext):
# Trigger the dbt Cloud job and wait for completion
...
defs = dg.Definitions(
assets=[my_dbt_cloud_assets],
resources={"dbt_cloud": dbt_cloud},
)The dbt Cloud integration:
For detailed usage, refer to the dagster-dbt dbt Cloud documentation.