Parquet File Writer

Saiba mais sobre o conector Parquet File Writer e saiba como utilizá-lo na Digibee Integration Platform.

O Parquet File Writer é um conector exclusivo do Pipeline Engine v2.

O conector Parquet File Writer permite que você escreva arquivos Parquet com base em arquivos Avro.

Parquet é um formato de arquivo em coluna projetado para armazenamento e recuperação de dados eficientes. Você pode obter mais informações no site oficial.

Parâmetros

Dê uma olhada nos parâmetros de configuração do conector. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

Aba General

ParâmetroDescriçãoValor padrãoTipo de dado

Parquet File Name (DB)

Nome do arquivo Parquet a ser escrito.

file.parquet

String

Avro File Name (DB)

Nome do arquivo Avro que contém os dados a serem escritos no arquivo Parquet.

Aceita apenas arquivos Avro que possuam schemas com o tipo RECORD como tipo de dado raiz.

file.avro

String

File Exists Policy

Define qual comportamento a ser seguido quando um arquivo de mesmo nome (Parquet File Name) já existir na execução vigente do pipeline.

Você pode escolher as seguintes opções:

Overwrite (sobrescreve o arquivo existente) ou Fail (a execução é interrompida com um erro se o arquivo já existir).

Overwrite

String

Fail On Error

Se a opção estiver ativada, a execução do pipeline com erro será interrompida. Do contrário, a execução do pipeline continua, mas o resultado irá mostrar um valor falso para a propriedade "success".

False

Booleano

Aba Advanced

ParâmetroDescriçãoValor padrãoTipo de dado

Dictionary Encoding

Define se o dictionary encoding para colunas deve ser habilitado.

False

Booleano

Compression Codec

O codec de compressão a ser utilizado ao comprimir o arquivo Parquet.

Opções:

  • Uncompressed

  • Snappy

  • GZIP

  • LZ4

  • LZ4 Raw

Uncompressed

String

Row Group Size

Define o tamanho de grupos de linhas (row groups) do arquivo Parquet.

134217728

Inteiro

Page Size

Define o tamanho de páginas (pages) do arquivo Parquet.

1048576

Inteiro

Aba Documentation

ParâmetroDescriçãoValor padrãoTipo de dado

Documentation

Seção para documentar qualquer informação necessária sobre a configuração do conector e regras de negócio.

N/A

String

Informações importantes

O conector Parquet File Writer só pode gerar arquivos Parquet com base em arquivos Avro. Não é possível criá-los diretamente a partir de um payload JSON.

Apesar dessa limitação, a Digibee Integration Platform oferece uma maneira de gerar arquivos Avro por meio do conector Avro File Writer, além do fato de que o conector Parquet File Writer pode lidar com arquivos Avro gerados por outras fontes externas à plataforma.

Ao escrever arquivos Parquet através do conector Parquet File Writer, arquivos Avro contendo os tipos de dados BINARY e FIXED são ambos tratados como dados binários. Ao ler o arquivo gerado através do conector Parquet File Reader, os dados são apresentados no formato base64.

Você também deve observar que existem diferenças de performance ao escrever arquivos Parquet comprimidos e não comprimidos. Uma vez que a compressão exige um maior consumo de memória e processamento, é importante validar os limites que o pipeline irá suportar ao aplicá-la.

Exemplos de uso

Arquivo Parquet não comprimido

Escrevendo um arquivo Parquet não comprimido com base em um arquivo Avro:

  • Parquet File Name: file.parquet

  • Avro File Name: file.avro

  • File Exists Policy: Overwrite

  • Compression Codec: Uncompressed

Exemplo de conteúdo de um arquivo Avro no formato JSON:

{
  "name": "Aquiles",
  "phoneNumbers": [
    "11 99999-9999",
    "11 93333-3333"
  ],
  "active": true,
  "address": "St. Example",
  "score": 71.3,
  "details": "Some details"
}

Saída:

{
  "success": true,
  "fileName": "file.parquet"
}

Arquivo Parquet comprimido

Escrevendo um arquivo Parquet comprimido com base em um arquivo Avro:

  • Parquet File Name: file.parquet

  • Avro File Name: file.avro

  • File Exists Policy: Overwrite

  • Compression Codec: Snappy

Exemplo de conteúdo de um arquivo Avro no formato JSON:

{
  "name": "Aquiles",
  "phoneNumbers": [
    "11 99999-9999",
    "11 93333-3333"
  ],
  "active": true,
  "address": "St. Example",
  "score": 71.3,
  "details": "Some details"
}

Saída:

{
  "success": true,
  "fileName": "file.parquet"
}

File Exists Policy como Fail

Escrevendo um arquivo Parquet com o mesmo nome de um arquivo já existente no diretório de arquivos do pipeline:

  • Parquet File Name: file.parquet

  • Avro File Name: file.avro

  • File Exists Policy: Fail

Saída:

{
  "success": false,
  "message": "Something went wrong while trying to execute the Parquet Writer connector",
  "error": "com.digibee.pipelineengine.exception.PipelineEngineRuntimeException: Parquet file file.parquet already exists."
}

Atualizado