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
- Aceda à página do fluxo de dados Criar tarefa a partir de um modelo. Aceda a Criar tarefa a partir de modelo
- No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
- 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.
- No menu pendente Modelo do fluxo de dados, selecione the Convert file formats template.
- Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
- 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 CloudJOB_NAME
: um nome de tarefa exclusivo à sua escolhaREGION_NAME
: a região onde quer implementar a tarefa do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que quer usarPode usar os seguintes valores:
latest
para usar a versão mais recente do modelo, que está disponível na pasta principal sem data no contentor: 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 pasta principal com a data correspondente no contentor: gs://dataflow-templates-REGION_NAME/
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 entradaOUTPUT_FOLDER
: a sua pasta do Cloud Storage para ficheiros de saídaSCHEMA
: 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 CloudJOB_NAME
: um nome de tarefa exclusivo à sua escolhaLOCATION
: a região onde quer implementar a tarefa do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que quer usarPode usar os seguintes valores:
latest
para usar a versão mais recente do modelo, que está disponível na pasta principal sem data no contentor: 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 pasta principal com a data correspondente no contentor: gs://dataflow-templates-REGION_NAME/
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 entradaOUTPUT_FOLDER
: a sua pasta do Cloud Storage para ficheiros de saídaSCHEMA
: o caminho para o ficheiro de esquema Avro
O que se segue?
- Saiba mais sobre os modelos do Dataflow.
- Consulte a lista de modelos fornecidos pela Google.