airflow.hooks.base¶
所有鉤子的基類。
屬性¶
類¶
鉤子的抽象基類。 |
|
提供者可以實現的介面,以便被 ProvidersManager 發現。 |
模組內容¶
- class airflow.hooks.base.BaseHook(logger_name=None)[source]¶
基類:
airflow.utils.log.logging_mixin.LoggingMixin鉤子的抽象基類。
鉤子旨在作為與外部系統互動的介面。MySqlHook、HiveHook、PigHook 返回可以處理與這些系統的特定例項的連線和互動的物件,並暴露一致的方法來與它們互動。
- 引數:
logger_name (str | None) – 鉤子用於發出日誌的記錄器名稱。如果設定為 None (預設),記錄器名稱將回退到 airflow.task.hooks.{class.__module__}.{class.__name__} (例如,DbApiHook 將使用 airflow.task.hooks.airflow.providers.common.sql.hooks.sql.DbApiHook 作為記錄器)。
- class airflow.hooks.base.DiscoverableHook[source]¶
基類:
Protocol提供者可以實現的介面,以便被 ProvidersManager 發現。
它不被任何鉤子使用,而只是這裡描述的方法和類欄位由那些鉤子實現。每個方法都是可選的 – 只實現你需要的那些。
conn_name_attr、default_conn_name、conn_type 應由那些希望在呼叫 get_hook 方法時自動從 connection_type 對映到 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()
您還需要將 Hook 類名新增到 provider.yaml 檔案中的 ‘hook_class_names’ 列表,如果您構建內部提供者;或者在您準備的包中,將其在 provider_info 入口點返回的字典中返回。
您可以在 airflow/providers/jdbc/hooks/jdbc.py 中看到一些示例。