大量壓縮 Cloud Storage 檔案範本

「大量壓縮 Cloud Storage 檔案範本」是一個可將 Cloud Storage 中的檔案壓縮到指定位置的批次管道。當您進行定期封存需要壓縮大量檔案時,這個範本就非常實用。支援的壓縮格式為 BZIP2DEFLATEGZIP。檔案輸出到目的地位置時,會沿用原始檔案名稱的命名規則,後面再加上壓縮格式的副檔名。附加的副檔名為 .bzip2.deflate.gz 其中之一。

壓縮程序期間發生的所有錯誤都會輸出到 CSV 格式的失敗檔案,檔名為「錯誤訊息 (error message)」。如果執行管道時未發生任何錯誤,系統仍會建立錯誤檔案,只是其中不會有任何錯誤記錄。

管道相關規定

  • 壓縮格式必須是下列之一:BZIP2DEFLATEGZIP
  • 在執行管道之前,輸出目錄必須已存在。

範本參數

參數 說明
inputFilePattern 要讀取的輸入檔案模式,例如 gs://bucket-name/uncompressed/*.txt
outputDirectory 要寫入的輸出位置,例如 gs://bucket-name/compressed/
outputFailureFile 壓縮期間寫入失敗的錯誤記錄輸出檔案,例如,gs://bucket-name/compressed/failed.csv。如果沒有任何失敗,系統會建立空白的檔案。檔案內容為 CSV 格式 (檔案名稱, 錯誤),壓縮失敗的每個檔案各一行錯誤訊息。
compression 用於壓縮符合檔案的壓縮演算法,必須是下列之一:BZIP2DEFLATEGZIP

執行範本

控制台

  1. 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。
  2. 前往「依據範本建立工作」
  3. 在「工作名稱」欄位中,輸入專屬工作名稱。
  4. 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為 us-central1

    如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。

  5. 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 the Bulk Compress Files on Cloud Storage template。
  6. 在提供的參數欄位中輸入參數值。
  7. 按一下「Run Job」(執行工作)

gcloud

在殼層或終端機中執行範本:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Bulk_Compress_GCS_Files \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/uncompressed/*.txt,\
outputDirectory=gs://BUCKET_NAME/compressed,\
outputFailureFile=gs://BUCKET_NAME/failed/failure.csv,\
compression=COMPRESSION

更改下列內容:

  • JOB_NAME: 您選擇的不重複工作名稱
  • REGION_NAME: 您要部署 Dataflow 工作的地區,例如 us-central1
  • VERSION: 您要使用的範本版本

    您可以使用下列值:

  • BUCKET_NAME:Cloud Storage bucket 的名稱
  • COMPRESSION:您選擇的壓縮演算法

API

如要使用 REST API 執行範本,請傳送 HTTP POST 要求。如要進一步瞭解 API 和授權範圍,請參閱 projects.templates.launch

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Bulk_Compress_GCS_Files
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/uncompressed/*.txt",
       "outputDirectory": "gs://BUCKET_NAME/compressed",
       "outputFailureFile": "gs://BUCKET_NAME/failed/failure.csv",
       "compression": "COMPRESSION"
   },
   "environment": { "zone": "us-central1-f" }
}

更改下列內容:

  • PROJECT_ID: 您要執行 Dataflow 工作的專案 ID Google Cloud
  • JOB_NAME: 您選擇的不重複工作名稱
  • LOCATION: 您要部署 Dataflow 工作的地區,例如 us-central1
  • VERSION: 您要使用的範本版本

    您可以使用下列值:

  • BUCKET_NAME:Cloud Storage bucket 的名稱
  • COMPRESSION:您選擇的壓縮演算法

後續步驟