Bulk Compress Cloud Storage Files 模板

Bulk Compress Cloud Storage Files 模板是一种批处理流水线,用于将 Cloud Storage 上的文件压缩到指定位置。如果您需要在定期归档过程中压缩大批量文件,此模板非常有用。支持的压缩模式包括 BZIP2DEFLATEGZIP。输出到目标位置的文件将遵循原始文件名附加压缩模式扩展名这一命名架构。可以附加以下扩展名之一:.bzip2.deflate.gz

压缩过程中发生的任何错误都将输出到故障文件中,该文件采用“文件名 + 错误消息”的 CSV 格式。如果在运行流水线期间没有发生故障,系统仍将创建错误文件,但其中不会包含任何错误记录。

流水线要求

  • 必须采用以下压缩格式之一:BZIP2DEFLATEGZIP
  • 在运行流水线之前,必须已存在输出目录。

模板参数

参数 说明
inputFilePattern 要从中读取数据的输入文件模式。例如 gs://bucket-name/uncompressed/*.txt
outputDirectory 要向其中写入内容的输出位置。例如 gs://bucket-name/compressed/
outputFailureFile 错误日志输出文件,用于写入在压缩过程中发生的故障。例如 gs://bucket-name/compressed/failed.csv。如果没有发生故障,则系统仍会创建该文件,但其中不会包含任何内容。文件内容采用“文件名 + 错误”的 CSV 格式,每一行对应一个压缩失败的文件。
compression 用于压缩匹配文件的压缩算法。必须为以下项之一:BZIP2DEFLATEGZIP

运行模板

控制台

  1. 转到 Dataflow 基于模板创建作业页面。
  2. 转到“基于模板创建作业”
  3. 作业名称字段中,输入唯一的作业名称。
  4. 可选:对于区域性端点,从下拉菜单中选择一个值。默认区域为 us-central1

    如需查看可以在其中运行 Dataflow 作业的区域列表,请参阅 Dataflow 位置

  5. Dataflow 模板下拉菜单中,选择 the Bulk Compress Files on Cloud Storage template。
  6. 在提供的参数字段中,输入您的参数值。
  7. 点击运行作业

gcloud

在 shell 或终端中,运行模板:

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 存储桶的名称。
  • 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 作业的 Google Cloud 项目的 ID
  • JOB_NAME:您选择的唯一性作业名称
  • LOCATION:要在其中部署 Dataflow 作业的区域,例如 us-central1
  • VERSION:您要使用的模板的版本

    您可使用以下值:

  • BUCKET_NAME - Cloud Storage 存储桶的名称。
  • COMPRESSION:您选择的压缩算法

后续步骤