airflow.providers.google.cloud.transfers.bigquery_to_sql

BigQuery 到 SQL 操作符的基础操作符。

BigQueryToSqlBaseOperator

从 BigQuery 表中获取数据(或者获取选定列),并将其插入到 SQL 表中。

模块内容

class airflow.providers.google.cloud.transfers.bigquery_to_sql.BigQueryToSqlBaseOperator(*, dataset_table, target_table_name, selected_fields=None, gcp_conn_id='google_cloud_default', database=None, replace=False, batch_size=1000, location=None, impersonation_chain=None, dataset_id=None, table_id=None, **kwargs)[source]

基类: airflow.models.BaseOperator

从 BigQuery 表中获取数据(或者获取选定列),并将其插入到 SQL 表中。

这是一个 BaseOperator;一个抽象类。请参考与其相关的特定 SQL 数据库(MySQL、MsSQL、Postgres 等)的子类。

注意

如果您传递给 selected_fields 的字段顺序与 BQ 表中已有列的顺序不同,数据仍将以 BQ 表中的顺序返回。例如,如果 BQ 表有三列 [A,B,C],而您在 selected_fields 中传递 'B,A',数据仍将是 'A,B' 的形式,并以此形式传递给 SQL 数据库。

参数:
  • dataset_table (str) – 一个以点号分隔的 <dataset>.<table> 字符串:源 BigQuery 表

  • target_table_name (str | None) – 目标 SQL 表

  • selected_fields (list[str] | str | None) – 要返回的字段列表(逗号分隔)。如果未指定,则返回所有字段。

  • gcp_conn_id (str) – 指向特定 Google Cloud hook 的引用。

  • database (str | None) – 数据库名称,将覆盖连接中定义的名称

  • replace (bool) – 是否替换而不是插入

  • batch_size (int) – 每批处理的行数

  • location (str | None) – 操作中使用的位置。

  • impersonation_chain (str | collections.abc.Sequence[str] | None) – 可选的服务账号,用于使用短期凭据进行模拟,或者获取列表中最后一个账号(将在请求中被模拟)的 access_token 所需的链式账号列表。如果设置为字符串,该账号必须授予源账号 Service Account Token Creator IAM 角色。如果设置为序列,列表中的身份必须将其 Service Account Token Creator IAM 角色授予其直接前一个身份,列表中的第一个账号则将其此角色授予源账号(支持模板)。

template_fields: collections.abc.Sequence[str] = ('target_table_name', 'impersonation_chain', 'dataset_id', 'table_id')[source]
selected_fields = None[source]
gcp_conn_id = 'google_cloud_default'[source]
database = None[source]
target_table_name[source]
replace = False[source]
batch_size = 1000[source]
location = None[source]
impersonation_chain = None[source]
dataset_id = None[source]
table_id = None[source]
abstract get_sql_hook()[source]

返回一个具体的 SQL Hook(例如 PostgresHook)。

持久化与 SQL provider 的连接。

execute(context)[source]

创建操作符时派生。

Context 是用于渲染 Jinja 模板的同一个字典。

请参考 get_template_context 获取更多上下文信息。

此条目有帮助吗?