airflow.providers.google.cloud.transfers.gcs_to_gcs

此模块包含一个 Google Cloud Storage 运算符。

模块内容

GCSToGCSOperator

将对象从一个存储桶复制到另一个存储桶,如果需要,可以重命名。

属性

WILDCARD

airflow.providers.google.cloud.transfers.gcs_to_gcs.WILDCARD = '*'[源代码]
class airflow.providers.google.cloud.transfers.gcs_to_gcs.GCSToGCSOperator(*, source_bucket, source_object=None, source_objects=None, destination_bucket=None, destination_object=None, delimiter=None, move_object=False, replace=True, gcp_conn_id='google_cloud_default', last_modified_time=None, maximum_modified_time=None, is_older_than=None, impersonation_chain=None, source_object_required=False, exact_match=False, match_glob=None, **kwargs)[源代码]

基类: airflow.models.BaseOperator

将对象从一个存储桶复制到另一个存储桶,如果需要,可以重命名。

另请参阅

有关如何使用此运算符的更多信息,请查看以下指南:GCSToGCSOperator

参数
  • source_bucket – 源 Google Cloud Storage 存储桶,对象位于其中。(模板化)

  • source_object – 要在 Google Cloud Storage 存储桶中复制的对象的源名称。(模板化) 您只能对存储桶中的对象(文件名)使用一个通配符。通配符可以出现在对象名称的内部或对象名称的末尾。不支持将通配符附加到存储桶名称。

  • source_objects – 要在 Google Cloud Storage 存储桶中复制的对象的源名称列表。(模板化)

  • destination_bucket – 目标 Google Cloud Storage 存储桶,对象应位于其中。如果 destination_bucket 为 None,则默认为 source_bucket。(模板化)

  • destination_object – 目标 Google Cloud Storage 存储桶中对象的名称。(模板化) 如果在 source_object 参数中提供了通配符,则这是将添加到最终目标对象路径的前缀。 请注意,源路径中通配符之前的部分将被删除; 如果需要保留它,则应将其附加到 destination_object。 例如,使用前缀 foo/* 和 destination_object blah/,文件 foo/baz 将被复制到 blah/baz;要保留前缀,请将 destination_object 写为例如 blah/foo,在这种情况下,复制的文件将被命名为 blah/foo/baz。这同样适用于 source_objects 中的源对象。

  • move_object – 当 move object 为 True 时,对象将被移动而不是复制到新位置。 这等效于 mv 命令,而不是 cp 命令。

  • replace – 是否要替换现有的目标文件。

  • delimiter – (已弃用) 用于将结果限制为给定“文件夹”中的“文件”。如果 source_objects = [‘foo/bah/’] 且 delimiter = ‘.avro’,则只有文件夹 ‘foo/bah/’ 中带有 ‘.avro’ 分隔符的 “文件” 将被复制到目标对象。

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

  • last_modified_time – 如果指定,则仅当对象在 last_modified_time 之后修改时才会被复制或移动。如果未设置 tzinfo,则假定为 UTC。

  • maximum_modified_time – 如果指定,则仅当对象在 maximum_modified_time 之前修改时才会被复制或移动。如果未设置 tzinfo,则假定为 UTC。

  • is_older_than – 如果指定,则如果对象早于指定的秒数,则会被复制。

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

  • source_object_required – 是否要在源对象不存在时引发异常。当源对象是文件夹或模式时,它没有任何效果。

  • exact_match – 如果指定,则只会复制源对象(文件名)的完全匹配项。

  • match_glob (str | None) – (可选) 根据字符串给定的 glob 模式过滤对象(例如,'**/*/.json'

示例

以下运算符会将名为 sales/sales-2017/january.avro 的单个文件从 data 存储桶复制到名为 copied_sales/2017/january-backup.avro 的文件,该文件位于 data_backup 存储桶中

copy_single_file = GCSToGCSOperator(
    task_id="copy_single_file",
    source_bucket="data",
    source_objects=["sales/sales-2017/january.avro"],
    destination_bucket="data_backup",
    destination_object="copied_sales/2017/january-backup.avro",
    exact_match=True,
    gcp_conn_id=google_cloud_conn_id,
)

以下运算符会将 data 存储桶中 sales/sales-2017 文件夹中的所有 Avro 文件(即,所有名称以该前缀开头的文件)复制到 data_backup 存储桶中的 copied_sales/2017 文件夹。

copy_files = GCSToGCSOperator(
    task_id='copy_files',
    source_bucket='data',
    source_objects=['sales/sales-2017'],
    destination_bucket='data_backup',
    destination_object='copied_sales/2017/',
    match_glob='**/*.avro'
    gcp_conn_id=google_cloud_conn_id
)

Or ::

copy_files = GCSToGCSOperator(
    task_id='copy_files',
    source_bucket='data',
    source_object='sales/sales-2017/*.avro',
    destination_bucket='data_backup',
    destination_object='copied_sales/2017/',
    gcp_conn_id=google_cloud_conn_id
)

以下运算符会将 data 存储桶中 sales/sales-2017 文件夹中的所有 Avro 文件(即,所有名称以该前缀开头的文件)移动到 data_backup 存储桶中的同一文件夹,并在过程中删除原始文件。

move_files = GCSToGCSOperator(
    task_id="move_files",
    source_bucket="data",
    source_object="sales/sales-2017/*.avro",
    destination_bucket="data_backup",
    move_object=True,
    gcp_conn_id=google_cloud_conn_id,
)
以下运算符会将 sales/sales-2019 中的所有 Avro 文件移动

data 存储桶中 sales/sales-2020 文件夹移动到 data_backup 存储桶中的同一文件夹,并在过程中删除原始文件。

move_files = GCSToGCSOperator(
    task_id="move_files",
    source_bucket="data",
    source_objects=["sales/sales-2019/*.avro", "sales/sales-2020"],
    destination_bucket="data_backup",
    delimiter=".avro",
    move_object=True,
    gcp_conn_id=google_cloud_conn_id,
)
template_fields: collections.abc.Sequence[str] = ('source_bucket', 'source_object', 'source_objects', 'destination_bucket', 'destination_object',...[源代码]
ui_color = '#f0eee4'[source]
execute(context)[source]

在创建操作符时派生。

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

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

get_openlineage_facets_on_complete(task_instance)[source]

实现 _on_complete,因为 execute 方法会对内部进行预处理。

这意味着我们不必规范化 self.source_object 和 self.source_objects,目标存储桶等等。

此条目是否有帮助?