Modelo de conversão de formato de arquivo (Avro, Parquet, CSV)

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

  1. Acesse a página Criar job usando um modelo do Dataflow.
  2. Acesse Criar job usando um modelo
  3. No campo Nome do job, insira um nome exclusivo.
  4. 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.

  5. No menu suspenso Modelo do Dataflow, selecione the Convert file formats template.
  6. Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
  7. 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 Dataflow
  • JOB_NAME: um nome de job de sua escolha
  • REGION_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 usar

    Use estes valores:

  • 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 entrada
  • OUTPUT_FOLDER: pasta do Cloud Storage para arquivos de saída
  • SCHEMA: 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 Dataflow
  • JOB_NAME: um nome de job de sua escolha
  • LOCATION: a região onde você quer implantar o job do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

  • 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 entrada
  • OUTPUT_FOLDER: pasta do Cloud Storage para arquivos de saída
  • SCHEMA: o caminho para o arquivo de esquema Avro

A seguir