# Parquet File Writer

{% hint style="info" %}
O **Parquet File Writer** é um conector exclusivo do Pipeline Engine v2.
{% endhint %}

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](https://parquet.apache.org/).

## **Parâmetros**

Dê uma olhada nos parâmetros de configuração do conector. Parâmetros suportados por [expressões Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados com `(DB)`.

### **Aba General**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Parquet File Name</strong> <code>(DB)</code></td><td>Nome do arquivo Parquet a ser escrito.</td><td>file.parquet</td><td><em>String</em></td></tr><tr><td><strong>Avro File Name</strong> <code>(DB)</code></td><td><p>Nome do arquivo Avro que contém os dados a serem escritos no arquivo Parquet.</p><p>Aceita apenas arquivos Avro que possuam <em>schemas</em> com o tipo <code>RECORD</code> como tipo de dado raiz.</p></td><td>file.avro</td><td><em>String</em></td></tr><tr><td><strong>File Exists Policy</strong></td><td><p>Define qual comportamento a ser seguido quando um arquivo de mesmo nome (<strong>Parquet File Name</strong>) já existir na execução vigente do pipeline.</p><p>Você pode escolher as seguintes opções:</p><p><strong>Overwrite</strong> (sobrescreve o arquivo existente) ou <strong>Fail</strong> (a execução é interrompida com um erro se o arquivo já existir).</p></td><td><em>Overwrite</em></td><td><em>String</em></td></tr><tr><td><strong>Fail On Error</strong></td><td>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 <code>"success"</code>.</td><td><em>False</em></td><td>Booleano</td></tr></tbody></table>

### **Aba Advanced**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Dictionary Encoding</strong></td><td>Define se o <em>dictionary encoding</em> para colunas deve ser habilitado.</td><td><em>False</em></td><td>Booleano</td></tr><tr><td><strong>Compression Codec</strong></td><td><p>O <em>codec</em> de compressão a ser utilizado ao comprimir o arquivo Parquet.</p><p>Opções:</p><ul><li><strong>Uncompressed</strong></li><li><strong>Snappy</strong></li><li><strong>GZIP</strong></li><li><strong>LZ4</strong></li><li><strong>LZ4 Raw</strong></li></ul></td><td><em>Uncompressed</em></td><td><em>String</em></td></tr><tr><td><strong>Row Group Size</strong></td><td>Define o tamanho de grupos de linhas (<em>row groups)</em> do arquivo Parquet.</td><td>134217728</td><td>Inteiro</td></tr><tr><td><strong>Page Size</strong></td><td>Define o tamanho de páginas (<em>pages)</em> do arquivo Parquet.</td><td>1048576</td><td>Inteiro</td></tr></tbody></table>

### **Aba Documentation**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td>Seção para documentar qualquer informação necessária sobre a configuração do conector e regras de negócio.</td><td>N/A</td><td><em>String</em></td></tr></tbody></table>

## **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:**

{% code overflow="wrap" %}

```
{
  "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."
}

```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/files/parquet-file-writer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
