airflow.providers.google.cloud.transfers.sql_to_gcs

用于 SQL 到 GCS 操作符的基本操作符。

模块内容

BaseSQLToGCSOperator

将数据从 SQL 复制到 Google Cloud Storage,格式为 JSON、CSV 或 Parquet。

class airflow.providers.google.cloud.transfers.sql_to_gcs.BaseSQLToGCSOperator(*, sql, bucket, filename, schema_filename=None, approx_max_file_size_bytes=1900000000, export_format='json', stringify_dict=False, field_delimiter=',', null_marker=None, gzip=False, schema=None, parameters=None, gcp_conn_id='google_cloud_default', impersonation_chain=None, upload_metadata=False, exclude_columns=None, partition_columns=None, write_on_empty=False, parquet_row_group_size=100000, **kwargs)[源代码]

基类: airflow.models.BaseOperator

将数据从 SQL 复制到 Google Cloud Storage,格式为 JSON、CSV 或 Parquet。

参数
  • sql (str) – 要执行的 SQL。

  • bucket (str) – 要上传到的存储桶。

  • filename (str) – 上传到 Google Cloud Storage 时用作对象名称的文件名。应在文件名中指定 {},以便操作符在因大小而拆分文件的情况下注入文件编号。

  • schema_filename (str | None) – 如果设置,则用作对象名称的文件名,当上传一个 .json 文件时,该文件包含从数据库转储的表的 BigQuery 模式字段。

  • approx_max_file_size_bytes (int) – 此操作符支持将大型表转储拆分为多个文件的能力(请参阅上面 filename 参数文档中的注释)。此参数允许开发人员指定拆分的文件大小。请查看 https://cloud.google.com/storage/quotas,以查看单个对象允许的最大文件大小。

  • export_format (str) – 要导出的文件的所需格式。(json、csv 或 parquet)

  • stringify_dict (bool) – 是否将字典类型对象(例如 JSON 列)转储为字符串。仅适用于 CSV/JSON 导出格式。

  • field_delimiter (str) – 用于 CSV 文件的分隔符。

  • null_marker (str | None) – 用于 CSV 文件的空标记。

  • gzip (bool) – 用于压缩文件以上传的选项(不适用于模式)。

  • schema (str | list | None) – 要使用的模式(如果有)。应该是 dict 的列表或一个 str。如果使用 Jinja 模板,则传递一个字符串,否则传递一个 dict 列表。可以在以下位置查看示例:https://cloud.google.com/bigquery/docs /schemas#specifying_a_json_schema_file

  • gcp_conn_id (str) – (可选)用于连接到 Google Cloud 的连接 ID。

  • parameters (dict | None) – 一个参数字典,在查询运行时会被替换。

  • impersonation_chain (str | collections.abc.Sequence[str] | None) – 可选的服务帐户,用于使用短期凭据模拟,或获取列表中最后一个帐户的 access_token 所需的链式帐户列表,该帐户将在请求中被模拟。如果设置为字符串,则帐户必须授予发起帐户“服务帐户令牌创建者”IAM 角色。如果设置为序列,则列表中的身份必须将“服务帐户令牌创建者”IAM 角色授予紧邻的前一个身份,列表中的第一个帐户将此角色授予发起帐户(已模板化)。

  • upload_metadata (bool) – 是否将行计数元数据作为 Blob 元数据上传

  • exclude_columns (set | None) – 要从传输中排除的列的集合

  • partition_columns (list | None) – 用于文件分区的列的列表。为了使用此参数,您必须按 partition_columns 对数据集进行排序。通过将 ORDER BY 子句传递给 sql 查询来执行此操作。文件作为具有 Hive 样式分区目录结构的对象上传到 GCS(已模板化)。

  • write_on_empty (bool) – 可选参数,用于指定在导出不返回任何行时是否写入文件。默认为 False,因此如果导出不返回任何行,我们将不会写入文件。

  • parquet_row_group_size (int) – 使用 parquet 格式时,每个行组中的近似行数。使用较大的行组大小可以减少文件大小并提高读取数据的性能,但是它需要更多的内存来执行操作符。(默认值:100000)

template_fields: collections.abc.Sequence[str] = ('sql', 'bucket', 'filename', 'schema_filename', 'schema', 'parameters', 'impersonation_chain',...[源代码]
template_ext: collections.abc.Sequence[str] = ('.sql',)[源代码]
template_fields_renderers[源代码]
ui_color = '#a0e08c'[源代码]
execute(context)[源代码]

在创建操作符时派生。

上下文是与渲染 Jinja 模板时使用的相同字典。

有关更多上下文,请参阅 get_template_context。

convert_types(schema, col_type_dict, row)[源代码]

将值从 DBAPI 转换为输出友好的格式。

abstract query()[源代码]

执行 DBAPI 查询。

abstract field_to_bigquery(field)[源代码]

将 DBAPI 字段转换为 BigQuery 模式格式。

abstract convert_type(value, schema_type, **kwargs)[源代码]

将值从 DBAPI 转换为输出友好的格式。

此条目是否有帮助?