Comprimi in blocco il modello di file Cloud Storage

Il modello per la compressione collettiva dei file di Cloud Storage è una pipeline batch che comprime i file Cloud Storage in una località specificata. Questo modello può essere utile quando devi comprimere di grandi dimensioni di file nell'ambito di processi di archiviazione periodici. Le modalità di compressione supportate sono: BZIP2, DEFLATE e GZIP. L'output dei file nella posizione di destinazione seguirà uno schema di denominazione con il nome file originale aggiunto con l'estensione della modalità di compressione. Le estensioni aggiunte saranno una delle seguenti: .bzip2, .deflate e .gz.

Eventuali errori che si verificano durante il processo di compressione verranno inviati al file degli errori nel formato CSV nome file, messaggio di errore. Se non si verificano errori durante l'esecuzione della pipeline, il file degli errori verrà comunque creato ma non conterranno record di errore.

Requisiti della pipeline

  • La compressione deve essere in uno dei seguenti formati: BZIP2, DEFLATE e 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 Il percorso 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 la compressione e il processo di sviluppo. Ad esempio, gs://bucket-name/compressed/failed.csv. Se non sono presenti errori, il file viene ancora creato, ma sarà vuoto. I contenuti dei file sono in formato CSV. (Filename, Error) ed è costituito da una riga per ogni file che non riesce a essere compresso.
compression L'algoritmo di compressione utilizzato per comprimere i file corrispondenti. Deve essere uno dei seguenti: BZIP2, DEFLATE e 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. Il valore predefinito è us-central1.

    Per un elenco di regioni in cui è possibile eseguire un job Dataflow, consulta Località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Bulk Compress Files on Cloud Storage template.
  6. Inserisci i valori parametro negli appositi campi.
  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 job univoco di tua scelta
  • REGION_NAME: la regione in cui vuoi di 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 tuo Cloud Storage del bucket rimanente
  • COMPRESSION: l'algoritmo di compressione che preferisci

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per ulteriori informazioni sul API e i 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 progetto Google Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco di tua scelta
  • LOCATION: la regione in cui vuoi di 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 tuo Cloud Storage del bucket rimanente
  • COMPRESSION: l'algoritmo di compressione che preferisci

Passaggi successivi