Modello Compressione in blocco dei file di Cloud Storage

Il modello Bulk Compress Cloud Storage Files è una pipeline batch che comprime i file su Cloud Storage in una posizione specificata. Questo modello può essere utile quando devi comprimere grandi batch di file nell'ambito di un processo di archiviazione periodico. Le modalità di compressione supportate sono: BZIP2, DEFLATE, GZIP. I file di output nella posizione di destinazione seguiranno uno schema di denominazione del nome file originale a cui è stata aggiunta l'estensione della modalità di compressione. Le estensioni aggiunte saranno una delle seguenti: .bzip2, .deflate, .gz.

Gli eventuali errori che si verificano durante il processo di compressione verranno inseriti nel file degli errori in formato CSV di nome file, messaggio di errore. Se non si verificano errori durante l'esecuzione della pipeline, verrà comunque creato un file degli errori, ma non conterrà alcun record.

Requisiti della pipeline

  • La compressione deve avvenire in uno dei seguenti formati: BZIP2, DEFLATE, GZIP.
  • La directory di output deve esistere prima dell'esecuzione della pipeline.

Parametri del modello

Parametri obbligatori

  • inputFilePattern: la posizione Cloud Storage dei file che vuoi elaborare. Ad esempio, gs://your-bucket/your-files/*.txt.
  • outputDirectory: il percorso e il prefisso del nome file per la scrittura dei file di output. Deve terminare con una barra. La formattazione DateTime viene utilizzata per analizzare il percorso della directory per i formattatori di data e ora. Ad esempio, gs://your-bucket/your-path.
  • outputFailureFile: il file di output del log degli errori da utilizzare per gli errori di scrittura che si verificano durante la compressione. I contenuti saranno una riga per ogni file per cui la compressione non è riuscita. Tieni presente che questo parametro consentirà alla pipeline di continuare l'elaborazione in caso di errore. Ad esempio, gs://your-bucket/compressed/failed.csv.
  • compressione: l'algoritmo di compressione utilizzato per comprimere i file corrispondenti. Algoritmi validi: BZIP2, DEFLATE, GZIP.

Parametri facoltativi

  • outputFilenameSuffix: suffisso del nome dei file di output da scrivere. Il valore predefinito è .bzip2, .deflate o .gz a seconda dell'algoritmo di compressione.

Esegui il modello

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. La regione predefinita è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta Località di Dataflow.

  5. Nel menu a discesa Modello Dataflow, seleziona il modello Comprimi in blocco i file su Cloud Storage.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/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

Sostituisci quanto segue:

  • JOB_NAME: un nome univoco del job a tua scelta
  • REGION_NAME: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare l'ultima versione del modello, disponibile nella cartella principale senza data nel bucket: gs://dataflow-templates/latest/
    • il nome della versione, ad esempio 2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella principale con data nel bucket: gs://dataflow-templates/
  • BUCKET_NAME: il nome del bucket Cloud Storage
  • COMPRESSION: l'algoritmo di compressione che hai scelto

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta HTTP POST. Per saperne di più sull'API e sui relativi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/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" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome univoco del job a tua scelta
  • LOCATION: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare l'ultima versione del modello, disponibile nella cartella principale senza data nel bucket: gs://dataflow-templates/latest/
    • il nome della versione, ad esempio 2023-09-12-00_RC00, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella principale con data nel bucket: gs://dataflow-templates/
  • BUCKET_NAME: il nome del bucket Cloud Storage
  • COMPRESSION: l'algoritmo di compressione che hai scelto

Passaggi successivi