Modello Compressione in blocco dei file di Cloud Storage

Il modello Compressione in blocco dei file di Cloud Storage è una pipeline batch che comprime i file su Cloud Storage in una posizione specificata. Questo modello può essere utile se devi comprimere grandi gruppi di file nell'ambito di procedure periodiche di archiviazione. Le modalità di compressione supportate sono: BZIP2, DEFLATE, GZIP. I file compressi collocati nella posizione della destinazione seguiranno lo schema di denominazione che prevede il nome file originale seguito dall'estensione della modalità di compressione. Le estensioni aggiunte saranno una delle seguenti: .bzip2, .deflate, .gz.

Eventuali errori che si verificano durante il processo di compressione verranno riportati nel file degli errori in formato CSV come record contenenti nome file e 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

Parametro Descrizione
inputFilePattern Il pattern del file di input da cui leggere. Ad esempio, gs://bucket-name/uncompressed/*.txt.
outputDirectory La posizione di output in cui scrivere. Ad esempio, gs://bucket-name/compressed/.
outputFailureFile Il file di output del log degli errori da utilizzare per gli errori di scrittura che si verificano durante il processo di compressione. Ad esempio, gs://bucket-name/compressed/failed.csv. Se non si verificano errori, il file viene comunque creato, ma sarà vuoto. I contenuti del file sono in formato CSV (Nome file, Errore) e sono costituiti da una riga per ogni file la cui compressione non va a buon fine.
compression L'algoritmo di compressione utilizzato per comprimere i file corrispondenti. Deve essere uno dei seguenti: BZIP2, DEFLATE, GZIP

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 di flusso di dati, seleziona the Bulk Compress Files on Cloud Storage template.
  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-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

Sostituisci quanto segue:

  • JOB_NAME: un nome di job univoco 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:

  • BUCKET_NAME: il nome del bucket Cloud Storage
  • COMPRESSION: l'algoritmo di compressione scelto

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per ulteriori informazioni 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-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" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Google Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome di job univoco 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:

  • BUCKET_NAME: il nome del bucket Cloud Storage
  • COMPRESSION: l'algoritmo di compressione scelto

Passaggi successivi