Plantilla Comprimir archivos de Cloud Storage en bloque

La plantilla Comprimir archivos de Cloud Storage en bloque es un flujo de procesamiento por lotes que comprime archivos de Cloud Storage y los transfiere a la ubicación que se indique. Te resultará útil si necesitas comprimir grandes lotes de archivos como parte de un proceso de archivado periódico. Los modos de compresión admitidos son: BZIP2, DEFLATE y GZIP. Los archivos que se transfieran a la ubicación de destino conservarán el nombre del archivo original y se les añadirá la extensión del modo de compresión. Las extensiones añadidas serán una de las siguientes: .bzip2, .deflate o .gz.

Cualquier error que se produzca durante el proceso de compresión se incluirá en un archivo de error en formato CSV con el nombre del archivo y el mensaje de error. Si no se produce ningún fallo al ejecutar la canalización, el archivo de error se creará igualmente, pero no contendrá datos de errores.

Requisitos del flujo de procesamiento

  • La compresión se debe realizar en uno de los siguientes formatos: BZIP2, DEFLATE o GZIP.
  • Deberás crear el directorio de salida antes de ejecutar el flujo de procesamiento.

Parámetros de plantilla

Parámetros obligatorios

  • inputFilePattern: la ubicación de Cloud Storage de los archivos que quieras procesar. Por ejemplo, gs://your-bucket/your-files/*.txt.
  • outputDirectory prefijo de ruta y de nombre de archivo para escribir archivos de salida. Debe terminar con una barra diagonal. El formato DateTime se usa para analizar la ruta del directorio de los formateadores de fecha y hora. Por ejemplo, gs://your-bucket/your-path.
  • outputFailureFile el archivo de salida del registro de errores que se va a usar para los errores de escritura que se produzcan durante la compresión. El contenido será una línea por cada archivo que no se haya podido comprimir. Ten en cuenta que este parámetro permitirá que la canalización siga procesando los datos en caso de que se produzca un error. Por ejemplo, gs://your-bucket/compressed/failed.csv.
  • Compresión: el algoritmo de compresión que se usa para comprimir los archivos coincidentes. Algoritmos válidos: BZIP2, DEFLATE y GZIP.

Parámetros opcionales

  • outputFilenameSuffix sufijo del nombre de los archivos de salida que se van a escribir. El valor predeterminado es .bzip2, .deflate o .gz, según el algoritmo de compresión.

Ejecutar la plantilla

Consola

  1. Ve a la página Crear tarea a partir de plantilla de Dataflow.
  2. Ir a Crear tarea a partir de plantilla
  3. En el campo Nombre de la tarea, introduce un nombre único.
  4. Opcional: En Endpoint regional, seleccione un valor en el menú desplegable. La región predeterminada es us-central1.

    Para ver una lista de las regiones en las que puedes ejecutar una tarea de Dataflow, consulta Ubicaciones de Dataflow.

  5. En el menú desplegable Plantilla de flujo de datos, seleccione the Bulk Compress Files on Cloud Storage template.
  6. En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
  7. Haz clic en Ejecutar trabajo.

gcloud

En tu shell o terminal, ejecuta la plantilla:

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

Haz los cambios siguientes:

  • JOB_NAME: un nombre de trabajo único que elijas
  • REGION_NAME: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • BUCKET_NAME: el nombre de tu segmento de Cloud Storage
  • COMPRESSION: el algoritmo de compresión que elijas

API

Para ejecutar la plantilla mediante la API REST, envía una solicitud HTTP POST. Para obtener más información sobre la API y sus ámbitos de autorización, consulta 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" }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto Google Cloud en el que quieres ejecutar la tarea de Dataflow
  • JOB_NAME: un nombre de trabajo único que elijas
  • LOCATION: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo, us-central1
  • VERSION: la versión de la plantilla que quieres usar

    Puedes usar los siguientes valores:

    • latest para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/
    • el nombre de la versión, como 2023-09-12-00_RC00, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
  • BUCKET_NAME: el nombre de tu segmento de Cloud Storage
  • COMPRESSION: el algoritmo de compresión que elijas

Siguientes pasos