连接与 Hook¶
Airflow 常用于将数据拉取和推送至其他系统,因此它具备一流的*连接*概念,用于存储与外部系统通信所需的凭据。
连接本质上是一组参数——例如用户名、密码和主机名——以及其连接的系统类型,以及一个称为 conn_id
的唯一名称。
可以通过 UI 或 CLI 进行管理;有关创建、编辑和管理连接的更多信息,请参见管理连接。存在可定制的连接存储和后端选项。
您可以直接从自己的代码中使用连接,也可以通过 Hook 使用它们,或者从模板中使用它们
echo {{ conn.<conn_id>.host }}
Hook¶
Hook 是连接外部平台的高级接口,使您无需编写调用其 API 或使用特殊库的低级代码即可快速轻松地与其通信。它们也常常是构建 Operator 的基本组成部分。
它们与连接集成以获取凭据,并且许多 Hook 都拥有默认的 conn_id
;例如,如果您不传入 conn_id
,PostgresHook
会自动查找 conn_id
为 postgres_default
的连接。
您可以在我们的 API 文档中查看完整的 Airflow Hook 列表。
自定义连接¶
Airflow 允许定义自定义连接类型。这在Provider 中有详细描述——Provider 使您能够定义自己的连接。任何 Provider 都可以进行连接定制,而且许多由社区管理的 Provider 也定义了自定义连接类型。Apache Airflow 社区管理 Provider
提供的所有 Provider 的完整列表可在连接中找到。