连接到 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]'

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

此条目是否有帮助?