airflow.hooks.base
¶
所有 hooks (鉤點) 的基礎類別。
模組內容¶
類別¶
hooks (鉤點) 的抽象基礎類別。 |
|
供應商可以實作以被 ProvidersManager 發現的介面。 |
屬性¶
- class airflow.hooks.base.BaseHook(logger_name=None)[原始碼]¶
基底:
airflow.utils.log.logging_mixin.LoggingMixin
hooks (鉤點) 的抽象基礎類別。
Hooks (鉤點) 旨在作為與外部系統互動的介面。MySqlHook、HiveHook、PigHook 返回可以處理與這些系統特定實例的連線和互動的物件,並公開一致的方法與它們互動。
- 參數
logger_name (str | None) – Hook 用於發出日誌的記錄器名稱。如果設定為 None (預設值),記錄器名稱將回退到 airflow.task.hooks.{class.__module__}.{class.__name__} (例如,DbApiHook 將具有 airflow.task.hooks.airflow.providers.common.sql.hooks.sql.DbApiHook 作為記錄器)。
- classmethod get_connections(conn_id)[原始碼]¶
取得給定連線 ID 的所有連線作為可迭代物件。
- 參數
conn_id (str) – 連線 ID
- 返回
連線陣列
- 返回類型
- class airflow.hooks.base.DiscoverableHook[原始碼]¶
基底:
airflow.typing_compat.Protocol
供應商可以實作以被 ProvidersManager 發現的介面。
任何 Hooks (鉤點) 皆未使用它,但此處描述的簡單方法和類別欄位由這些 Hooks (鉤點) 實作。每個方法都是選用的 – 僅實作您需要的方法。
conn_name_attr、default_conn_name、conn_type 應由那些想要在以 connection_type 呼叫 get_hook 方法時自動從 connection_type -> Hook 映射的 Hooks (鉤點) 實作。
此外,當您希望 hook (鉤點) 在 UI 選取名稱中具有自訂名稱時,應設定 hook_name。如果未指定,將使用 conn_name。
“get_ui_field_behaviour” 和 “get_connection_form_widgets” 是選用的 - 如果您想要自訂「連線表單」畫面,請覆寫它們。您可以透過 get_connection_form_widgets 方法新增額外的小工具來剖析您的額外欄位,以及透過 get_ui_field_behaviour 方法隱藏或重新標記欄位或使用預留位置預先填入它們。
請注意,“get_ui_field_behaviour” 和 “get_connection_form_widgets” 需要由類別階層中的每個類別設定,以便套用小工具自訂。
例如,即使您想要使用父類別中的欄位,您也必須在您的類別上明確擁有一個方法
@classmethod def get_ui_field_behaviour(cls): return super().get_ui_field_behaviour()
如果您建置內部供應商,或者在您準備的套件中的 provider_info entrypoint 返回的字典中返回 Hook 類別名稱,您還需要將 Hook 類別名稱新增至 provider.yaml 中的列表 ‘hook_class_names’。
您可以在 airflow/providers/jdbc/hooks/jdbc.py 中看到一些範例。