Plantilla Descomprimir archivos de Cloud Storage por lotes

La plantilla Bulk Decompress Cloud Storage Files es un flujo de procesamiento por lotes que descomprime archivos de Cloud Storage y los transfiere a la ubicación que se indique. Esta función resulta muy útil si quieres comprimir los datos para reducir los costes de ancho de banda de red durante el proceso de migración y, al mismo tiempo, maximizar la velocidad de procesamiento de las analíticas trabajando con los datos descomprimidos después de la migración. El flujo de procesamiento gestiona automáticamente varios modos de compresión durante una sola ejecución, que vienen determinados por la extensión del archivo (.bzip2, .deflate, .gz o .zip).

Requisitos del flujo de procesamiento

  • Los archivos que quieras descomprimir tienen que estar en formato Bzip2, Deflate, Gzip o Zip.
  • Deberás crear el directorio de salida antes de ejecutar el flujo de procesamiento.

Parámetros de plantilla

Parámetro Descripción
inputFilePattern El patrón del archivo de entrada del que se va a leer. Por ejemplo, gs://bucket-name/compressed/*.gz.
outputDirectory Ubicación de salida en la que se escribirá. Por ejemplo, gs://bucket-name/decompressed.
outputFailureFile El archivo de salida del registro de errores que se va a usar para los errores de escritura que se produzcan durante el proceso de descompresión. Por ejemplo, gs://bucket-name/decompressed/failed.csv. Si no se produce ningún fallo, el archivo se creará igualmente pero estará vacío. El contenido del archivo está en formato CSV (nombre de archivo, error) y consta de una línea por cada archivo que no se puede descomprimir.

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 Decompress 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_Decompress_GCS_Files \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/compressed/*.gz,\
outputDirectory=gs://BUCKET_NAME/decompressed,\
outputFailureFile=OUTPUT_FAILURE_FILE_PATH

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
  • OUTPUT_FAILURE_FILE_PATH: la ruta que elijas para el archivo que contiene la información sobre el fallo

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_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" }
}

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
  • OUTPUT_FAILURE_FILE_PATH: la ruta que elijas para el archivo que contiene la información sobre el fallo

Siguientes pasos