Modello di conversione di formato file (Avro, Parquet, CSV)

Il modello di conversione del formato file è una pipeline batch che converte i file archiviati in Cloud Storage da un formato supportato a un altro.

Sono supportate le seguenti conversioni di formato:

  • CSV in Avro
  • CSV in Parquet
  • Da Avro a Parquet
  • Da Parquet ad Avro

Requisiti della pipeline

  • Il bucket Cloud Storage di output deve esistere prima di eseguire la pipeline.

Parametri del modello

Parametro Descrizione
inputFileFormat Il formato del file di input. Deve essere uno dei seguenti: [csv, avro, parquet].
outputFileFormat Il formato del file di output. Deve essere uno dei seguenti: [avro, parquet].
inputFileSpec Pattern del percorso di Cloud Storage per i file di input. Ad esempio, gs://bucket-name/path/*.csv
outputBucket La cartella Cloud Storage per scrivere i file di output. Questo percorso deve terminare con una barra. Ad esempio, gs://bucket-name/output/
schema Il percorso Cloud Storage del file di schema Avro. Ad esempio, gs://bucket-name/schema/my-schema.avsc
containsHeaders (Facoltativo) I file CSV di input contengono un record di intestazione (true/false). Il valore predefinito è false. Obbligatorio solo per la lettura di file CSV.
csvFormat (Facoltativo) La specifica del formato CSV da utilizzare per l'analisi dei record. Il valore predefinito è Default. Per ulteriori dettagli, consulta la sezione Formato CSV Apache Commons.
delimiter (Facoltativo) Il delimitatore di campo utilizzato dai file CSV di input.
outputFilePrefix (Facoltativo) Prefisso del file di output. Il valore predefinito è output.
numShards (Facoltativo) Il numero di shard di file di output.

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, vedi Località Dataflow.

  5. Nel menu a discesa Modello Dataflow, seleziona the Convert file formats 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 flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/File_Format_Conversion \
    --parameters \
inputFileFormat=INPUT_FORMAT,\
outputFileFormat=OUTPUT_FORMAT,\
inputFileSpec=INPUT_FILES,\
schema=SCHEMA,\
outputBucket=OUTPUT_FOLDER

Sostituisci quanto segue:

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

  • INPUT_FORMAT: il formato file del file di input; deve essere uno dei seguenti: [csv, avro, parquet]
  • OUTPUT_FORMAT: il formato dei file di output; deve essere uno dei seguenti: [avro, parquet]
  • INPUT_FILES: il pattern del percorso per i file di input
  • OUTPUT_FOLDER: la tua cartella di Cloud Storage per i file di output
  • SCHEMA: il percorso del file dello schema Avro

API

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

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputFileFormat": "INPUT_FORMAT",
          "outputFileFormat": "OUTPUT_FORMAT",
          "inputFileSpec": "INPUT_FILES",
          "schema": "SCHEMA",
          "outputBucket": "OUTPUT_FOLDER"
      },
      "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/File_Format_Conversion",
   }
}

Sostituisci quanto segue:

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

  • INPUT_FORMAT: il formato file del file di input; deve essere uno dei seguenti: [csv, avro, parquet]
  • OUTPUT_FORMAT: il formato dei file di output; deve essere uno dei seguenti: [avro, parquet]
  • INPUT_FILES: il pattern del percorso per i file di input
  • OUTPUT_FOLDER: la tua cartella di Cloud Storage per i file di output
  • SCHEMA: il percorso del file dello schema Avro

Passaggi successivi