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
- Vai alla pagina Crea job da modello di Dataflow. Vai a Crea job da modello
- Nel campo Nome job, inserisci un nome univoco per il job.
- (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.
- Nel menu a discesa Modello Dataflow, seleziona the Convert file formats template.
- Nei campi dei parametri forniti, inserisci i valori dei parametri.
- 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 DataflowJOB_NAME
: un nome job univoco a tua sceltaREGION_NAME
: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1
VERSION
: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latest
per utilizzare la versione più recente del modello, disponibile nella cartella padre senza data del bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, come
2023-09-12-00_RC00
, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella padre con data all'interno del bucket: gs://dataflow-templates-REGION_NAME/
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 inputOUTPUT_FOLDER
: la tua cartella di Cloud Storage per i file di outputSCHEMA
: 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 DataflowJOB_NAME
: un nome job univoco a tua sceltaLOCATION
: la regione in cui vuoi eseguire il deployment del job Dataflow, ad esempious-central1
VERSION
: la versione del modello che vuoi utilizzarePuoi utilizzare i seguenti valori:
latest
per utilizzare la versione più recente del modello, disponibile nella cartella padre senza data del bucket: gs://dataflow-templates-REGION_NAME/latest/- il nome della versione, come
2023-09-12-00_RC00
, per utilizzare una versione specifica del modello, che si trova nidificata nella rispettiva cartella padre con data all'interno del bucket: gs://dataflow-templates-REGION_NAME/
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 inputOUTPUT_FOLDER
: la tua cartella di Cloud Storage per i file di outputSCHEMA
: il percorso del file dello schema Avro
Passaggi successivi
- Scopri di più sui modelli Dataflow.
- Consulta l'elenco dei modelli forniti da Google.