连接到 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'
您可以参考有关 通过环境变量创建连接 的文档以获取更多信息。