Um arquivo Apache Parquet é um formato de armazenamento de dados de código aberto usado para bancos de dados em colunas em consultas analíticas. Se você tiver pequenos conjuntos de dados, mas milhões de linhas para pesquisar, pode ser melhor usar um formato colunar para melhor desempenho. Os bancos de dados de colunas armazenam dados agrupando colunas em vez do banco de dados padrão baseado em linhas que agrupa por linhas. Um arquivo Parquet é um dos vários formatos de armazenamento em colunas.
O que é um arquivo Parquet?
Em vez de agrupar linhas como uma planilha do Excel ou um banco de dados relacional padrão, um arquivo Apache Parquet agrupa colunas para um desempenho mais rápido. O Parquet é um formato de armazenamento colunar e não um banco de dados em si, mas o formato Parquet é comum com data lakes, especialmente com o Hadoop. Como é um formato colunar, é popular com armazenamento e consultas de dados analíticos.
A maioria dos desenvolvedores está acostumada ao armazenamento de dados baseado em linhas, mas imagine girar uma planilha do Excel para que as colunas agora sejam mostradas no lugar de linhas numeradas. Por exemplo, em vez de manter uma tabela de clientes com uma lista de colunas de nome e sobrenome em que cada nome e sobrenome são agrupados como uma linha, um arquivo Parquet armazena colunas juntas para que os bancos de dados possam retornar informações mais rapidamente de uma coluna específica em vez de pesquisar em cada linha com várias colunas.
Benefícios dos arquivos Parquet
Além do desempenho da consulta com base na forma como os arquivos da Parquet armazenam dados, a outra principal vantagem é a economia. Os arquivos Apache Parquet têm compactação e descompressão altamente eficientes, para que não ocupem tanto espaço quanto um arquivo de banco de dados padrão. Ao ocupar menos espaço de armazenamento, uma empresa poderia economizar milhares de dólares em custos de armazenamento.
Os formatos de armazenamento em colunas são melhores com Big Data e consultas analíticas. Os arquivos Parquet podem armazenar imagens, vídeos, objetos, arquivos e dados padrão para que possam ser usados em qualquer tipo de aplicativo analítico. Como as estratégias de arquivos Parquet são de código aberto, elas também são boas para organizações que desejam personalizar suas estratégias de armazenamento e consulta de dados.
Como funcionam os arquivos Parquet
Os arquivos Parquet contêm armazenamento baseado em coluna, mas também contêm metadados . As colunas são agrupadas em cada grupo de linhas para eficiência de consulta, e os metadados ajudam o mecanismo de banco de dados a localizar dados. Os metadados contêm informações sobre as colunas, grupos de linhas que contêm dados e o esquema.
O esquema em um arquivo Parquet descreve a abordagem do armazenamento baseada em coluna. O formato de esquema é binário e pode ser usado em um ambiente de data lake Hadoop. Os arquivos Parquet podem ser armazenados em qualquer sistema de arquivos, portanto, não estão limitados apenas aos ambientes Hadoop.
Uma vantagem do formato de armazenamento de arquivos da Parquet é uma estratégia chamada pushdown predicado. Com o pushdown avançado, o mecanismo de banco de dados filtra os dados no início do processamento para que dados mais direcionados sejam transferidos no fluxo. Ao ter menos dados direcionados a uma consulta, melhora o desempenho da consulta. Menos processamento de dados também reduz o uso de recursos de computador e também os custos.
Usando arquivos Parquet
Os arquivos Parquet são arquivos Apache, para que você possa criá-los em seus próprios scripts Python, desde que importe várias bibliotecas. Digamos que você tenha uma tabela em Python:
import numpy as np
import pandas as pd
import pyarrow as pa
df = pd.DataFrame({'one': [-1, 4, 1.3],
'two': ['blue', 'green', 'white'],
'three': [False, False, True]},
index=list('abc'))
table = pa.Table.from_pandas(df)
Com essa tabela, agora podemos criar um arquivo Parquet:
import pyarrow.parquet as pq
pq.write_table(table, 'mytable.parquet')
O código acima cria o arquivo “mytable.parquet” e grava a tabela nele. Agora, você pode ler a partir do seu banco de dados favorito e importar os dados, ou pode usar os dados para suas próprias consultas e análises.
Você também pode ler esta tabela do arquivo usando Python:
pq.read_table('mytable.parquet', columns=['one', 'three'])
A função write() permite definir opções ao gravar a tabela em um arquivo. Você pode encontrar uma lista de opções no site do Apache, mas aqui está um exemplo de configuração da compatibilidade do arquivo com o Apache Spark:
import numpy as np
import pandas as pd
import pyarrow as pa
df = pd.DataFrame({'one': [-1, 4, 1.3],
'two': ['blue', 'green', 'white'],
'three': [False, False, True]},
flavor=’spark’)
table = pa.Table.from_pandas(df)
Conclusão
Se você planeja usar arquivos Parquet para Hadoop, Apache Spark ou outros bancos de dados compatíveis, pode automatizar a criação de arquivos usando Python ou importar arquivos para o ambiente de banco de dados para análise. Os arquivos Parquet usam compactação para reduzir os requisitos de espaço de armazenamento, mas você ainda precisa de capacidade de armazenamento excessiva para grandes silos de Big Data. A Pure Storage pode ajudar com o armazenamento de Big Data com nossa tecnologia de desduplicação e compactação.