# Parquet File Reader

O conector **Parquet File Reader** permite que você leia arquivos Parquet.

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

Configure o conector usando os parâmetros abaixo. Campos que suportam [expressões Double Braces](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/double-braces/overview) estão marcados na coluna **Suporta DB**.&#x20;

{% tabs fullWidth="true" %}
{% tab title="General" %}

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</th></tr></thead><tbody><tr><td><strong>Alias</strong></td><td>Nome (alias) para a saída deste conector, permitindo que você o referencie posteriormente no fluxo usando Double Braces expressions.</td><td>String</td><td>✅</td><td><code>parquet-file-reader-1</code></td></tr><tr><td><strong>File Name</strong> </td><td>Nome do arquivo Parquet a ser lido.</td><td><em>String</em></td><td>✅</td><td>{{ message.fileName }}</td></tr><tr><td><strong>Check File Size</strong></td><td>Se habilitado, o valor de <strong>Maximum File Size</strong> é verificado. Caso o tamanho do arquivo seja maior que o especificado, um erro será exibido.</td><td>Booleano</td><td>❌</td><td><em>False</em></td></tr><tr><td><strong>Convert Date Fields</strong></td><td>If enabled, <code>DATE/TIMESTAMP</code> fields from the file are converted to string format (e.g. <code>yyyy-MM-dd</code> for <code>DATE</code>, ISO-8601 for <code>TIMESTAMP</code>). When default, dates remain as numeric values (days/millis since epoch).</td><td>Booleano</td><td>❌</td><td><em>False</em></td></tr><tr><td><strong>Date Field Paths (optional)</strong></td><td>Manually indicates date fields when the schema does not declare a logical type <code>DATE</code>.</td><td>String</td><td>❌</td><td>N/A</td></tr><tr><td><strong>Decode Base64 Fields</strong></td><td>If enabled, the connector recursively scans the output JSON nodes. Any string identified as a valid Base64 sequence is automatically decoded to UTF-8 and replaced in-place.</td><td>Booleano</td><td>❌</td><td><em>False</em></td></tr><tr><td><strong>Maximum File Size</strong></td><td>Especifica o tamanho máximo permitido (em <em>bytes</em>) do arquivo a ser lido.</td><td>Inteiro</td><td>❌</td><td>N/A</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>Booleano</td><td>❌</td><td><em>False</em></td></tr></tbody></table>

{% endtab %}

{% tab title="Documentation" %}

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Tipo</th><th>Suporta DB</th><th>Padrão</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><em>String</em></td><td><p>❌</p><p></p></td><td>N/A</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

{% hint style="info" %}
Note que um arquivo Parquet comprimido produz um conteúdo JSON de tamanho maior que o do arquivo ao ser lido. Portanto, é importante validar se o *pipeline* terá memória suficiente para lidar com os dados em questão, uma vez que serão armazenados na memória do *pipeline*.
{% endhint %}

## **Exemplos de uso**

### **Lendo arquivo**

Lendo um arquivo Parquet sem verificar o tamanho do arquivo:

* **File Name:** file.parquet
* **Check File Size:** desativado

**Saída:**

```
{
  "data": [
    {
      "name": "Aquiles",
      "phoneNumbers": [
        "11 99999-9999",
        "11 93333-3333"
      ],
      "active": true,
      "address": "St. Example",
      "score": 71.3,
      "details": "Some details"
    }
  ],
  "fileName": "file.parquet",
  "total": 1
}

```

### **Lendo arquivo - Verificando tamanho do arquivo**

Lendo um arquivo Parquet verificando se seu tamanho é maior que **Maximum File Size**:

* **File Name:** file.parquet
* **Check File Size:** ativado
* **Maximum File Size:** 5000000

**Saída:**

```
{
  "data": [
    {
      "name": "Aquiles",
      "phoneNumbers": [
        "11 99999-9999",
        "11 93333-3333"
      ],
      "active": true,
      "address": "St. Example",
      "score": 71.3,
      "details": "Some details"
    }
  ],
  "fileName": "file.parquet",
  "total": 1
}

```
