# Stream Parquet File Reader

O conector **Stream Parquet File Reader** permite que você leia arquivos Parquet, acionando *subpipelines* para processar cada mensagem individualmente. Este conector deve ser usado para arquivos grandes.

Parquet é um formato de arquivo colunar projetado para armazenamento e recuperação eficiente de dados. Para maiores informações, [veja o 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) estão marcados na coluna **Suporta DB**.

{% tabs %}
{% 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>stream-parquet-reader-1</code></td></tr><tr><td><strong>File Name</strong> </td><td>O nome do arquivo Parquet a ser lido.</td><td><em>String</em></td><td>✅</td><td>{{ message.fileName }}</td></tr><tr><td><strong>Parallel Execution</strong></td><td>Ocorre em paralelo com a execução do <em>loop</em>.</td><td>Booleano</td><td>❌</td><td><em>False</em></td></tr><tr><td><strong>Convert Date Fields</strong></td><td>Se habilitado, campos <code>DATE/TIMESTAMP</code> do arquivo são convertidos para o formato de texto (ex: <code>yyyy-MM-dd</code> para <code>DATE</code>, ISO-8601 para <code>TIMESTAMP</code>). No modo padrão, as datas permanecem como valores numéricos (dias/milissegundos desde o epoch).</td><td>Booleano</td><td>❌</td><td><em>False</em></td></tr><tr><td><strong>Date Field Paths (opcional)</strong></td><td>Indica manualmente quais são os campos de data quando o esquema não declara explicitamente um tipo lógico <code>DATE</code>.</td><td><em>String</em></td><td>❌</td><td>N/A</td></tr><tr><td><strong>Decode Base64 Fields</strong></td><td>Se habilitado, o conector varre recursivamente os nós do JSON de saída. Qualquer string identificada como uma sequência Base64 válida é automaticamente decodificada para UTF-8 e substituída no local.</td><td>Booleano</td><td>❌</td><td><em>False</em></td></tr><tr><td><strong>Fail On Error</strong></td><td>Se a opção estiver ativa, a execução do <em>pipeline</em> com erro será interrompida. Caso contrário, a execução do <em>pipeline</em> continuará, mas o resultado 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>❌</td><td>N/A</td></tr></tbody></table>

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Um arquivo Parquet compactado gera conteúdo JSON maior que o próprio arquivo quando é lido. É importante que você verifique se o *pipeline* possui memória suficiente para tratar os dados, pois eles ficarão armazenados na memória do *pipeline*.
{% endhint %}

## Exemplo de uso

### Lendo arquivo Parquet

* **File Name:** file.parquet
* **Parallel:** desativado

**Saída:**&#x20;

```
{
	"total": 1000,
	"success": 1000,
	"failed": 0
}
```

Se as linhas foram processadas corretamente, seus respectivos subpipelines retornam `{ "success": true }` para cada linha individual.
