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)[源代码]

此条目是否有帮助?