Bulk Decompress Cloud Storage Files 模板

Bulk Decompress Cloud Storage Files 模板是一种批处理流水线,用于将 Cloud Storage 上的文件解压缩到指定位置。此功能适用于以下情况:您希望在迁移过程中使用压缩数据,以最大限度降低网络带宽费用,但在迁移后使用非压缩数据,以最大限度提高分析处理速度。此流水线会在一次运行期间自动处理多种压缩模式,并根据文件扩展名(.bzip2.deflate.gz.zip)确定要使用的解压缩模式。

流水线要求

  • 需要解压缩的文件必须是以下格式之一:Bzip2DeflateGzipZip
  • 在运行流水线之前,必须已存在输出目录。

模板参数

参数 说明
inputFilePattern 要从中读取数据的输入文件模式。例如 gs://bucket-name/compressed/*.gz
outputDirectory 要向其中写入内容的输出位置。例如 gs://bucket-name/decompressed
outputFailureFile 错误日志输出文件,用于写入在解压缩过程中发生的故障。例如 gs://bucket-name/decompressed/failed.csv。如果没有发生故障,则系统仍会创建该文件,但其中不会包含任何内容。文件内容采用 CSV 格式(文件名, 错误),并且每行对应一个解压缩失败的文件。

运行模板

控制台

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

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

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

gcloud

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

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Bulk_Decompress_GCS_Files \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/compressed/*.gz,\
outputDirectory=gs://BUCKET_NAME/decompressed,\
outputFailureFile=OUTPUT_FAILURE_FILE_PATH

替换以下内容:

  • JOB_NAME:您选择的唯一性作业名称
  • REGION_NAME:要在其中部署 Dataflow 作业的区域,例如 us-central1
  • VERSION:您要使用的模板的版本

    您可使用以下值:

  • BUCKET_NAME - Cloud Storage 存储桶的名称。
  • OUTPUT_FAILURE_FILE_PATH:您选择的包含失败信息的文件的路径

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_Decompress_GCS_Files
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/compressed/*.gz",
       "outputDirectory": "gs://BUCKET_NAME/decompressed",
       "outputFailureFile": "OUTPUT_FAILURE_FILE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

替换以下内容:

  • PROJECT_ID:您要在其中运行 Dataflow 作业的 Google Cloud 项目的 ID
  • JOB_NAME:您选择的唯一性作业名称
  • LOCATION:要在其中部署 Dataflow 作业的区域,例如 us-central1
  • VERSION:您要使用的模板的版本

    您可使用以下值:

  • BUCKET_NAME - Cloud Storage 存储桶的名称。
  • OUTPUT_FAILURE_FILE_PATH:您选择的包含失败信息的文件的路径

后续步骤