连接到 dbt Cloud¶
在您的 Airflow 环境中安装 dbt Cloud provider 后,将可以使用相应的 dbt_cloud
连接类型。以下描述如何配置 API 令牌,并可选择为您的 dbt Cloud 连接提供帐户 ID 和/或租户名称。
默认连接 ID¶
所有与 dbt Cloud 相关的 hooks 和操作符默认使用 dbt_cloud_default
。
验证 dbt Cloud API 的身份¶
要在 Airflow 中与 dbt Cloud API 交互,需要 用户 API 令牌 或 服务帐户 API 令牌。
配置连接¶
- 密码(必需)
用于验证 dbt Cloud API 身份的 API 令牌。
如果使用 Airflow UI 中的“连接”表单,则令牌也可以存储在“API 令牌”字段中。
- 登录名(可选)
要用作 dbt Cloud 操作符或
DbtCloudHook
方法的默认帐户 ID。如果在连接中提供了帐户 ID,则无需将account_id
传递给操作符或 hook 方法。account_id
值将从 Airflow 连接中检索。如果需要,仍然可以将account_id
显式传递给操作符或 hook 方法,以覆盖连接中配置的默认值。如果使用 Airflow UI 中的“连接”表单,则帐户 ID 也可以存储在“帐户 ID”字段中。
注意
如果 Airflow 连接中未提供帐户 ID,则必须将
account_id
显式传递给操作符或 hook 方法。- 主机(可选)
您的 dbt Cloud 环境的租户域(例如“my-tenant.getdbt.com”)。当使用单租户 dbt Cloud 实例或 其他 dbt Cloud 区域(如 EMEA 或虚拟私有 dbt Cloud)时,此项尤其有用。如果未提供租户域,则将使用“cloud.getdbt.com”作为默认值,假设是在北美地区的多租户实例。
如果使用 Airflow UI 中的“连接”表单,则租户域也可以存储在“租户”字段中。
- 额外(可选)
以 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 模式[here](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'例如,如果我的帐户托管在基于单元的北美区域,并且我的访问 URL 是 ab123.us1.dbt.com,则我的连接字符串应为:.. code-block:: bash
export AIRFLOW_CONN_DBT_CLOUD_DEFAULT='dbt-cloud://:[email protected]'
您可以参考有关通过环境变量创建连接的文档,以获取更多信息。