Provavelmente a melhor alternativa para armazenamento CSV: Parquet Data

O Apache Parquet oferece vários benefícios para armazenamento e recuperação de dados quando comparado a métodos tradicionais como CSV.

O formato Parquet foi projetado para processamento de dados mais rápido de tipos complexos. Neste artigo, falamos sobre como o formato Parquet é adequado para as crescentes necessidades de dados de hoje.

Antes de nos aprofundarmos nos detalhes do formato Parquet, vamos entender o que são dados CSV e os desafios que eles representam para o armazenamento de dados.

O que é armazenamento CSV?

Todos nós já ouvimos muito sobre CSV (C omma S separados V alores) – uma das formas mais comuns de organizar e formatar dados. O armazenamento de dados CSV é baseado em linha. Os arquivos CSV são armazenados com a extensão .csv. Podemos armazenar e abrir dados CSV usando excel , Planilhas Google ou qualquer editor de texto. Os dados são prontamente visível uma vez que o arquivo é aberto.

Bem, isso não é bom – definitivamente não para um formato de banco de dados.

Além disso, à medida que o volume de dados cresce, torna-se difícil consultar, gerenciar e recuperar.

Aqui está um exemplo de dados armazenados em um arquivo .CSV:

 EmpId,First name,Last name, Division
2012011,Sam,Butcher,IT
2013031,Mike,Johnson,Human Resource
2010052,Bill,Matthew,Architect
2010079,Jose,Brian,IT
2012120,Adam,James,Solutions

Se visualizarmos no Excel, podemos ver uma estrutura linha-coluna conforme abaixo:

Desafios com armazenamento CSV

Armazenamentos baseados em linha, como CSV, são adequados para C reate, você atualize e D operações de seleção.

E quanto ao R ed em CRUD, então?

Imagine um milhão de linhas no arquivo .csv acima. Levaria um tempo razoável para abrir o arquivo e procurar os dados que você está procurando. Não tão legal. A maioria dos provedores de nuvem, como a AWS, cobra das empresas com base na quantidade de dados digitalizados ou armazenados – novamente, os arquivos CSV consomem muito espaço.

O armazenamento CSV não tem uma opção exclusiva para armazenar metadados, tornando a verificação de dados uma tarefa tediosa.

Então, qual é a solução ideal e econômica para realizar todas as operações CRUD? Vamos explorar.

O que é o armazenamento de dados do Parquet?

Parquet é um formato de armazenamento de código aberto para armazenar dados. É amplamente utilizado em HadoopGenericName e ecossistemas Spark. Os arquivos Parquet são armazenados como extensão .parquet.

Parquet é um formato altamente estruturado. Ele também pode ser usado para otimizar dados brutos complexos presentes em massa em data lakes. Isso pode reduzir significativamente o tempo de consulta.

O Parquet torna o armazenamento de dados eficiente e a recuperação mais rápida devido a uma combinação de formatos de armazenamento (híbridos) baseados em linhas e colunas. Nesse formato, os dados são particionados horizontalmente e verticalmente. O formato parquet também elimina em grande parte a sobrecarga de análise.

O formato restringe o número geral de operações de E/S e, por fim, o custo.

Parquet também armazena os metadados, que armazenam informações sobre dados como o esquema de dados, número de valores, localização das colunas, valor mínimo, valor máximo, número de grupos de linhas, tipo de codificação, etc. Os metadados são armazenados em diferentes níveis no arquivo , tornando o acesso aos dados mais rápido.

No acesso baseado em linha, como CSV, a recuperação de dados leva tempo, pois a consulta precisa navegar por cada linha e obter os valores específicos da coluna. Com o armazenamento Parquet, todas as colunas necessárias podem ser acessadas de uma só vez.

Resumindo,

  • Parquet é baseado na estrutura colunar para armazenamento de dados
  • É um formato de dados otimizado para armazenar dados complexos em massa em sistemas de armazenamento
  • O formato parquet inclui vários métodos para compactação e codificação de dados
  • Ele reduz significativamente o tempo de verificação de dados e o tempo de consulta e ocupa menos espaço em disco em comparação com outros formatos de armazenamento, como CSV
  • Minimiza o número de operações de E/S, diminuindo o custo de armazenamento e execução de consultas
  • Inclui metadados que facilitam a localização de dados
  • Fornece suporte de código aberto

Formato de dados parquet

Antes de entrar em um exemplo, vamos entender com mais detalhes como os dados são armazenados no formato Parquet:

Podemos ter várias partições horizontais conhecidas como Row groups em um arquivo. Dentro de cada grupo Row, o particionamento vertical é aplicado. As colunas são divididas em vários blocos de colunas. Os dados são armazenados como páginas dentro dos blocos de colunas. Cada página contém os valores de dados codificados e metadados. Como mencionamos anteriormente, os metadados de todo o arquivo também são armazenados no rodapé do arquivo no nível do grupo Row.

Provavelmente a melhor alternativa para armazenamento CSV Parquet Data

Como os dados são divididos em blocos de coluna, também é fácil adicionar novos dados codificando os novos valores em um novo bloco e arquivo. Os metadados são atualizados para os arquivos e grupos de linhas afetados. Assim, podemos dizer que o Parquet é um formato flexível.

O Parquet oferece suporte nativo à compactação de dados usando técnicas de compactação de página e codificação de dicionário. Vejamos um exemplo simples de compactação de dicionário:

1675362476 390 Provavelmente a melhor alternativa para armazenamento CSV Parquet Data

Observe que no exemplo acima, vemos a divisão de TI 4 vezes. Assim, ao armazenar no dicionário, o formato codifica os dados com outro valor fácil de armazenar (0,1,2…) junto com o número de vezes que é repetido continuamente – IT, IT é alterado para 0,2 para salvar mais espaço. Consultar dados compactados leva menos tempo.

Comparação frente a frente

Agora que temos uma boa ideia de como os formatos CSV e Parquet se parecem, é hora de algumas estatísticas para comparar os dois formatos:

CSV Parquet
Formato de armazenamento baseado em linha. Um híbrido de formatos de armazenamento baseados em linha e em coluna.
Ele consome muito espaço, pois nenhuma opção de compactação padrão está disponível. Por exemplo, um arquivo de 1 TB ocupará o mesmo espaço quando armazenado em Amazon S3 ou qualquer outra nuvem. Comprime os dados durante o armazenamento, consumindo menos espaço. Um arquivo de 1 TB armazenado no formato Parquet ocupará apenas 130 GB de espaço.
O tempo de execução da consulta é lento devido à pesquisa baseada em linha. Para cada coluna, cada linha de dados deve ser recuperada. O tempo de consulta é cerca de 34 vezes mais rápido devido ao armazenamento baseado em colunas e à presença de metadados.
Mais dados devem ser verificados por consulta. Cerca de 99% menos dados são digitalizados para a execução da consulta, otimizando o desempenho .
A maioria dos dispositivos de armazenamento cobra com base no espaço de armazenamento, portanto, o formato CSV significa alto custo de armazenamento. Menor custo de armazenamento, pois os dados são armazenados em formato codificado e compactado.
O esquema do arquivo deve ser inferido (levando a erros) ou fornecido (tedioso). O esquema do arquivo é armazenado nos metadados.
O formato é adequado para tipos de dados simples. Parquet é adequado mesmo para tipos complexos como esquemas aninhados, arrays, dicionários.

Conclusão ‍

Vimos através de exemplos que o Parquet é mais eficiente que o CSV em termos de custo, flexibilidade e desempenho. É um mecanismo eficaz para armazenar e recuperar dados, especialmente quando o mundo inteiro está caminhando para armazenamento na núvem e otimização de espaço. Todas as principais plataformas como Azure AWS e BigQuery oferecem suporte ao formato Parquet.

Artigos relacionados