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

O modelo de conversão de formato de ficheiro é um pipeline em lote que converte ficheiros armazenados no Cloud Storage de um formato suportado para outro.

São suportadas as seguintes conversões de formatos:

  • CSV para Avro
  • CSV para Parquet
  • Avro para Parquet
  • Parquet para Avro

Requisitos do pipeline

  • O contentor do Cloud Storage de saída tem de existir antes de executar o pipeline.

Parâmetros de modelos

Parâmetro Descrição
inputFileFormat O formato do ficheiro de entrada. Tem de ser um dos seguintes valores: [csv, avro, parquet].
outputFileFormat O formato do ficheiro de saída. Tem de ser um dos seguintes valores: [avro, parquet].
inputFileSpec O padrão do caminho do Cloud Storage para ficheiros de entrada. Por exemplo, gs://bucket-name/path/*.csv
outputBucket A pasta do Cloud Storage para escrever ficheiros de saída. Este caminho tem de terminar com uma barra. Por exemplo, gs://bucket-name/output/
schema O caminho do Cloud Storage para o ficheiro de esquema Avro. Por exemplo, gs://bucket-name/schema/my-schema.avsc
containsHeaders (Opcional) Os ficheiros CSV de entrada contêm um registo de cabeçalho (verdadeiro/falso). O valor predefinido é false. Só é necessário quando lê ficheiros CSV.
csvFormat (Opcional) A especificação do formato CSV a usar para analisar registos. O valor predefinido é Default. Consulte o formato CSV do Apache Commons para ver mais detalhes.
delimiter (Opcional) O delimitador de campos usado pelos ficheiros CSV de entrada.
outputFilePrefix (Opcional) O prefixo do ficheiro de saída. O valor predefinido é output.
numShards (Opcional) O número de fragmentos de ficheiros de saída.

Execute o modelo

Consola

  1. Aceda à página do fluxo de dados Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. Opcional: para Ponto final regional, selecione um valor no menu pendente. A região predefinida é us-central1.

    Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte as localizações do Dataflow.

  5. No menu pendente Modelo do fluxo de dados, selecione the Convert file formats template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

gcloud

Na 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 o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • REGION_NAME: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • INPUT_FORMAT: o formato de ficheiro do ficheiro de entrada; tem de ser um dos seguintes: [csv, avro, parquet]
  • OUTPUT_FORMAT: o formato de ficheiro dos ficheiros de saída; tem de ser um dos seguintes: [avro, parquet]
  • INPUT_FILES: o padrão de caminho para ficheiros de entrada
  • OUTPUT_FOLDER: a sua pasta do Cloud Storage para ficheiros de saída
  • SCHEMA: o caminho para o ficheiro de esquema Avro

API

Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos 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 o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • LOCATION: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • INPUT_FORMAT: o formato de ficheiro do ficheiro de entrada; tem de ser um dos seguintes: [csv, avro, parquet]
  • OUTPUT_FORMAT: o formato de ficheiro dos ficheiros de saída; tem de ser um dos seguintes: [avro, parquet]
  • INPUT_FILES: o padrão de caminho para ficheiros de entrada
  • OUTPUT_FOLDER: a sua pasta do Cloud Storage para ficheiros de saída
  • SCHEMA: o caminho para o ficheiro de esquema Avro

O que se segue?