连接到 dbt Cloud

在您的 Airflow 环境中安装 dbt Cloud Provider 后,相应的连接类型 dbt_cloud 将可用。以下说明如何配置 API 令牌,以及如何选择性地为您的 dbt Cloud 连接提供账户 ID 和/或租户名称。

默认连接 ID

所有与 dbt Cloud 相关的 Hook 和 Operator 默认使用 dbt_cloud_default

认证 dbt Cloud API

要在 Airflow 中与 dbt Cloud API 交互,需要 用户 API 令牌服务账户 API 令牌

配置连接

密码 (必填)

认证 dbt Cloud API 时使用的 API 令牌。

如果在 Airflow UI 中使用连接表单,令牌也可以存储在“API 令牌”字段中。

登录 (可选)

要用作 dbt Cloud Operator 或 DbtCloudHook 方法的默认账户 ID。如果在连接中提供了账户 ID,则无需将 account_id 传递给 Operator 或 Hook 方法。account_id 的值将改为从 Airflow 连接中检索。如果需要,account_id 仍然可以显式传递给 Operator 或 Hook 方法,以覆盖连接中配置的默认值。

如果在 Airflow UI 中使用连接表单,账户 ID 也可以存储在“账户 ID”字段中。

注意

如果 Airflow 连接中未提供账户 ID,则 必须account_id 显式传递给 Operator 或 Hook 方法。

主机 (可选)

您的 dbt Cloud 环境的租户域(例如:“my-tenant.getdbt.com”)。这在使用单租户 dbt Cloud 实例或像 EMEA 或虚拟私有 dbt Cloud 等其他 dbt Cloud 区域时特别有用。如果未提供租户域,将使用“cloud.getdbt.com”作为默认值,假设是在北美地区的多租户实例。

如果在 Airflow UI 中使用连接表单,租户域也可以存储在“租户”字段中。

Extra (可选)

以 JSON 字典形式指定额外参数。目前,仅支持通过代理连接到 dbt Cloud 时的 proxies 参数。

proxies 应该是一个字典,包含 HTTP 和 HTTPS 连接要使用的代理。

{
  "proxies": {
    "http": "http://myproxy.mycompany.local:8080",
    "https": "http://myproxy.mycompany.local:8080"
  }
}

将连接指定为环境变量时,应遵循数据库连接的标准语法进行指定。请注意,URI 的所有组成部分都应进行 URL 编码。

例如,添加连接 ID 为“dbt_cloud_default”的连接

指定账户 ID 时

export AIRFLOW_CONN_DBT_CLOUD_DEFAULT='dbt-cloud://account_id:api_token@'

未指定账户 ID 时

export AIRFLOW_CONN_DBT_CLOUD_DEFAULT='dbt-cloud://:api_token@'

指定租户域时,请务必遵循此处表格中的访问 URL 模式:[链接](https://docs.getdbt.com/docs/cloud/about-cloud/access-regions-ip-addresses)

export AIRFLOW_CONN_DBT_CLOUD_DEFAULT='dbt-cloud://:api_token@my-access-url'

例如,如果我的账户托管在基于 Cell 的北美地区,访问 URL 是 ab123.us1.dbt.com,那么我的连接字符串应该是

export AIRFLOW_CONN_DBT_CLOUD_DEFAULT='dbt-cloud://:api_token@ab123.us1.dbt.com'

您可以参考有关 通过环境变量创建连接 的文档以获取更多信息。

本条目有帮助吗?