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 之後修改過,才會複製或移動物件。如果未設定時區資訊,則將假定為 UTC。

  • maximum_modified_time – 當指定時,只有在物件在 maximum_modified_time 之前修改過,才會複製或移動物件。如果未設定時區資訊,則將假定為 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'

範例

以下運算子會將 data 儲存桶中名為 sales/sales-2017/january.avro 的單個檔案複製到 data_backup 儲存桶中名為 copied_sales/2017/january-backup.avro 的檔案

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'[原始碼]
execute(context)[原始碼]

在建立運算子時衍生。

Context 是與呈現 Jinja 模板時使用的相同字典。

請參閱 get_template_context 以取得更多上下文。

get_openlineage_facets_on_complete(task_instance)[原始碼]

實作 _on_complete,因為 execute 方法會在內部執行預處理。

這表示我們不必標準化 self.source_object 和 self.source_objects、目的地儲存桶等等。

此條目是否有幫助?