Avro File Writer
Saiba mais sobre o conector Avro File Writer e como utilizá-lo na Digibee Integration Platform.
O Avro File Writer é um conector exclusivo do Pipeline Engine v2.
O conector Avro File Writer permite que você escreva arquivos Avro com base em schemas Avro.
Avro é um framework para serialização de dados utilizado no ecossistema Hadoop Big Data, conhecido por seu suporte à evolução de schema e compactação. Para mais informações, veja o 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âmetro | Descrição | Valor padrão | Tipo de dado |
---|---|---|---|
File Name | Nome do arquivo Avro a ser escrito. | file.avro | String |
Data | Dados a serem escritos no arquivo Avro. Aceita apenas objetos e arrays de objetos JSON. | {{ message.data }} | String |
Schema | O schema Avro a ser utilizado na escrita do arquivo. Aceita apenas schemas com o tipo | N/A | String |
Data From File | Se o parâmetro estiver ativado, os dados a serem escritos no arquivo Avro devem ser informados através de outros arquivos Avro e não via payload JSON. | False | Booleano |
Files | Define os arquivos Avro contendo os dados a serem escritos no arquivo Avro final. Essa opção só está disponível quando Data From File estiver ativado. | N/A | Opções de Data From File |
File Name | Nome do arquivo Avro contendo os dados. Essa opção só está disponível quando Data From File for habilitado. | N/A | String |
Infer Schema From File | Se o parâmetro estiver ativado, o schema Avro será inferido do primeiro arquivo Avro definido no parâmetro Files. | False | Booleano |
File Exists Policy | Define qual comportamento a ser seguido quando um arquivo de mesmo nome (File Name) já existir na execução vigente do pipeline. Você pode escolher as seguintes opções: Append (o arquivo existente é complementado com os dados), Overwrite (sobrescreve o arquivo existente) ou Fail (a execução é interrompida com um erro se o arquivo já existir). | Append | 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 | False | Booleano |
Aba Advanced
Parâmetro | Descrição | Valor padrão | Tipo de dado |
---|---|---|---|
Compression Codec | O codec de compressão a ser utilizado ao comprimir o arquivo Avro. Opções:
| Uncompressed | String |
Compression Level | O nível de compressão a ser aplicado ao comprimir o arquivo Avro. Opções: 1-9 Essa opção só está disponível quando Compression Codec for configurado como DEFLATE. | 1 | Inteiro |
Aba Documentação
Parâmetro | Descrição | Valor padrão | Tipo 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 |
Note que podem ocorrer diferenças de performance ao escrever arquivos Avro comprimidos e não comprimidos. Como 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 a partir de um objeto JSON
Escrevendo um arquivo Avro a partir de um objeto JSON como payload:
File Name: file.avro
Data: {{ message.data }}
Schema: {{ message.schema }}
File Exists Policy: Overwrite
Compression Codec: Uncompressed
Dados de exemplo:
Schema de exemplo:
Saída:
Arquivo a partir de um array de objetos JSON
Escrevendo um arquivo Avro a partir de um array de objetos JSON como payload:
File Name: file.avro
Data: {{ message.data }}
Schema: {{ message.schema }}
File Exists Policy: Overwrite
Dados de exemplo:
Schema de exemplo:
Saída:
Arquivo Avro não comprimido
Escrevendo um arquivo Avro não comprimido:
File Name: file.avro
Data: {{ message.data }}
Schema: {{ message.schema }}
File Exists Policy: Overwrite
Compression Codec: Uncompressed
Saída:
Arquivo Avro comprimido
Escrevendo um arquivo Avro comprimido:
File Name: file.avro
Data: {{ message.data }}
Schema: {{ message.schema }}
File Exists Policy: Overwrite
Compression Codec: BZIP2
Saída:
File Exists Policy como Fail
Escrevendo um arquivo Avro com o mesmo nome de um arquivo já existente no diretório de arquivos do pipeline:
File Name: file.avro
Data: {{ message.data }}
Schema: {{ message.schema }}
File Exists Policy: Fail
Saída:
Escrevendo arquivo a partir de outro arquivo Avro - schema explícito
Escrevendo um arquivo Avro com dados vindo de outro arquivo Avro ao invés de um payload JSON, usando uma configuração de schema explícita:
File Name: file.avro
Data From File: ativado
Files:
File Name: {{ message.existingAvroFile }}
Schema: {{ message.schema }}
File Exists Policy: Overwrite
Saída:
Escrevendo arquivo a partir de outro arquivo Avro - inferindo schema
Escrevendo um arquivo Avro com dados vindo de outro arquivo Avro ao invés de um payload JSON, inferindo o schema através do arquivo:
File Name: file.avro
Data From File: ativado
Files:
File Name: {{ message.existingAvroFile }}
Infer Schema: ativado
File Exists Policy: Overwrite
Saída:
Atualizado