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

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

Sono supportate le seguenti conversioni di formato:

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

Requisiti della pipeline

  • Il bucket Cloud Storage di output deve esistere prima dell'esecuzione della 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 Il pattern del percorso Cloud Storage per i file di input. Ad esempio, gs://bucket-name/path/*.csv
outputBucket La cartella Cloud Storage in cui 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 dello 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 durante la lettura di file CSV.
csvFormat (Facoltativo) La specifica del formato CSV da utilizzare per l'analisi dei record. Il valore predefinito è Default. Vedi Formato CSV Apache Commons per ulteriori dettagli.
delimiter (Facoltativo) Il delimitatore di campo utilizzato dai file CSV di input.
outputFilePrefix (Facoltativo) Il prefisso del file di output. Il valore predefinito è output.
numShards (Facoltativo) Il numero di shard del 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. 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 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 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:

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

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/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 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:

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

Passaggi successivi