airflow.providers.common.sql.operators.generic_transfer

GenericTransfer

將資料從一個連線移動到另一個連線。

模組內容

class airflow.providers.common.sql.operators.generic_transfer.GenericTransfer(*, sql, destination_table, source_conn_id, source_hook_params=None, destination_conn_id, destination_hook_params=None, preoperator=None, insert_args=None, page_size=None, **kwargs)[原始碼]

基類: airflow.models.BaseOperator

將資料從一個連線移動到另一個連線。

假設它們都在各自的 hook 中提供了所需的方法。源 hook 需要暴露一個 get_records 方法,目標 hook 需要暴露一個 insert_rows 方法。

這適用於適合記憶體的較小資料集。

引數:
  • sql (str) – 對源資料庫執行的 SQL 查詢。(模板化)

  • destination_table (str) – 目標表。(模板化)

  • source_conn_id (str) – 源連線。(模板化)

  • source_hook_params (dict | None) – 源 hook 引數。

  • destination_conn_id (str) – 目標連線。(模板化)

  • destination_hook_params (dict | None) – 目標 hook 引數。

  • preoperator (str | list[str] | None) – 在載入資料之前執行的 SQL 語句或語句列表。(模板化)

  • insert_args (dict | None) – insert_rows 方法的額外引數。

  • page_size (int | None) – 分頁模式下讀取的記錄數(可選)。

template_fields: collections.abc.Sequence[str] = ('source_conn_id', 'destination_conn_id', 'sql', 'destination_table', 'preoperator', 'insert_args')[原始碼]
template_ext: collections.abc.Sequence[str] = ('.sql', '.hql')[原始碼]
template_fields_renderers[原始碼]
ui_color = '#b0f07c'[原始碼]
sql[原始碼]
destination_table[原始碼]
source_conn_id[原始碼]
source_hook_params = None[原始碼]
destination_conn_id[原始碼]
destination_hook_params = None[原始碼]
preoperator = None[原始碼]
insert_args[原始碼]
page_size = None[原始碼]
classmethod get_hook(conn_id, hook_params=None)[原始碼]

返回此連線 ID 的 DbApiHook。

引數:
  • conn_id (str) – 連線 ID

  • hook_params (dict | None) – hook 引數

返回:

此連線的 DbApiHook

返回型別:

airflow.providers.common.sql.hooks.sql.DbApiHook

property source_hook: airflow.providers.common.sql.hooks.sql.DbApiHook[原始碼]
property destination_hook: airflow.providers.common.sql.hooks.sql.DbApiHook[原始碼]
get_paginated_sql(offset)[原始碼]

使用當前格式化分頁的 SQL 語句。

render_template_fields(context, jinja_env=None)[原始碼]

模板化 self.template_fields 中列出的所有屬性。

這會就地改變屬性,且不可逆。

引數:
  • context (airflow.sdk.definitions.context.Context) – 包含要應用於內容的上下文字典。

  • jinja_env (jinja2.Environment | None) – 用於渲染的 Jinja 環境。

execute(context)[原始碼]

建立 operator 時派生。

Context 與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

execute_complete(context, event=None)[原始碼]

此條目是否有幫助?