O modelo de conversão do formato de arquivo é um pipeline em lote que converte arquivos armazenados no Cloud Storage de um formato compatível para outro.
As conversões de formato a seguir são compatíveis:
- CSV para Avro
- CSV para Parquet
- Avro para Parquet
- Parquet para Avro
Requisitos de pipeline
- O bucket de saída do Cloud Storage precisa existir antes da execução do pipeline.
Parâmetros do modelo
Parâmetro | Descrição |
---|---|
inputFileFormat |
O formato do arquivo de entrada. Precisa ser um dos seguintes valores: [csv, avro, parquet] . |
outputFileFormat |
O formato do arquivo de saída. Precisa ser um dos seguintes valores: [avro, parquet] . |
inputFileSpec |
O padrão de caminho do Cloud Storage para arquivos de entrada. Por exemplo, gs://bucket-name/path/*.csv . |
outputBucket |
Pasta do Cloud Storage para gravar arquivos de saída. Esse caminho precisa terminar com uma barra.
Por exemplo, gs://bucket-name/output/ . |
schema |
O caminho do Cloud Storage para o arquivo de esquema do Avro. Por exemplo, gs://bucket-name/schema/my-schema.avsc . |
containsHeaders |
(Opcional) Os arquivos CSV de entrada contêm um registro de cabeçalho (verdadeiro/falso). O valor padrão é false . Obrigatório somente durante a leitura de arquivos CSV. |
csvFormat |
(Opcional) A especificação de formato CSV a ser usada para analisar registros. O valor padrão é Default .
Consulte Formato CSV do Apache Commons
para mais detalhes. |
delimiter |
(Opcional) O delimitador de campo usado pelos arquivos CSV de entrada. |
outputFilePrefix |
(Opcional) O prefixo do arquivo de saída. O valor padrão é output . |
numShards |
(Opcional) O número de fragmentos de arquivo de saída. |
Executar o modelo
Console
- Acesse a página Criar job usando um modelo do Dataflow. Acesse Criar job usando um modelo
- No campo Nome do job, insira um nome exclusivo.
- Opcional: em Endpoint regional, selecione um valor no menu suspenso. A região padrão é
us-central1
.Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.
- No menu suspenso Modelo do Dataflow, selecione the Convert file formats template.
- Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
- Cliquem em Executar job.
gcloud
No shell ou no terminal, execute o modelo:
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
Substitua:
PROJECT_ID
: o ID do projeto do Google Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaREGION_NAME
: a região onde você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates-REGION_NAME/
INPUT_FORMAT
: o formato do arquivo de entrada. Precisa ser um dos seguintes:[csv, avro, parquet]
OUTPUT_FORMAT
: o formato do arquivo de saída. Precisa ser um dos seguintes:[avro, parquet]
INPUT_FILES
: o padrão de caminho para arquivos de entradaOUTPUT_FOLDER
: pasta do Cloud Storage para arquivos de saídaSCHEMA
: o caminho para o arquivo de esquema Avro
API
Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a
API e os respectivos escopos de autorização, consulte
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", } }
Substitua:
PROJECT_ID
: o ID do projeto do Google Cloud em que você quer executar o job do DataflowJOB_NAME
: um nome de job de sua escolhaLOCATION
: a região onde você quer implantar o job do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que você quer usarUse estes valores:
latest
para usar a versão mais recente do modelo, disponível na pasta mãe não datada no bucket: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na respectiva pasta mãe datada no bucket: gs://dataflow-templates-REGION_NAME/
INPUT_FORMAT
: o formato do arquivo de entrada. Precisa ser um dos seguintes:[csv, avro, parquet]
OUTPUT_FORMAT
: o formato do arquivo de saída. Precisa ser um dos seguintes:[avro, parquet]
INPUT_FILES
: o padrão de caminho para arquivos de entradaOUTPUT_FOLDER
: pasta do Cloud Storage para arquivos de saídaSCHEMA
: o caminho para o arquivo de esquema Avro
A seguir
- Saiba mais sobre os modelos do Dataflow.
- Confira a lista de modelos fornecidos pelo Google.