Entendendo Parquet, Iceberg e o data lakehouse da BroadIn
(davidgomes.com)Entendendo: Parquet, Iceberg e o data lakehouse da BroadIn
-
Formas de armazenamento de dados (em arquivo e em memória)
- Existem vários formatos de arquivo para acesso e armazenamento de dados
- Alguns sistemas usam principalmente formatos de dados fechados, mas a maioria oferece suporte a formatos abertos
- Os principais formatos de arquivo open source incluem Apache Avro, Parquet, ORC, Arrow, Feather, Protobuf etc.
- Esses formatos fornecem especificações sobre como organizar os dados no layout binário real
- Parquet oferece bom suporte a compressão, e Avro é adequado para ler blocos específicos de linhas
- Oferecem suporte à evolução de esquema e à divisão de arquivos, algo essencial para processamento paralelo
- É possível trabalhar com esses formatos em várias linguagens de programação e ferramentas
-
Gerenciamento de dados em larga escala - Iceberg e Delta Lake
- É necessário um modo de armazenar várias tabelas, evoluir esquemas individuais, particionar dados com eficiência e permitir que ferramentas externas leiam facilmente os esquemas
- Hive, Iceberg e Delta Lake oferecem suporte a schema registry ou metastore
- Iceberg e Delta Lake usam Parquet como formato de arquivo individual
- Iceberg e Delta Lake não são mecanismos de consulta nem de armazenamento, e sim especificações abertas que permitem que mecanismos de consulta façam o trabalho
- Tornam possíveis recursos como evolução de particionamento, evolução de esquema, compressão de dados, transações ACID, otimização eficiente de consultas e time travel
-
O que são data lakes e data lakehouses?
- Um data lake é onde as empresas armazenam grandes volumes de dados em formatos brutos, como arquivos OCR, Parquet ou CSV
- Um data lakehouse é a combinação de recursos sobre um data lake que permite executar consultas SQL, configurar jobs em batch, definir governança de dados etc.
- Um data lakehouse pode ser visto como uma versão de um data warehouse aberto
- À medida que data warehouses como Snowflake e BigQuery passam a oferecer suporte a formatos de dados abertos como Iceberg, a fronteira entre data warehouses e data lakehouses está ficando menos nítida
Opinião do GN⁺
- Iceberg e Delta Lake desempenham um papel importante como camada de metadados para gerenciar grandes conjuntos de dados. Eles permitem gerenciamento eficiente dos dados e otimização de consultas, sendo úteis para cientistas e engenheiros de dados.
- Data lakehouses combinam as vantagens de data lakes e data warehouses, apresentando um novo paradigma para gerenciamento e análise de dados. Isso pode oferecer oportunidades para fortalecer ainda mais a tomada de decisão orientada por dados.
- Com o aumento do suporte ao Iceberg, espera-se que sistemas de gerenciamento e análise de dados se tornem gradualmente mais padronizados e interoperáveis. Isso deve trazer mais flexibilidade e eficiência na escolha e no uso de plataformas de dados.
2 comentários
Eu estava comparando Iceberg e Delta Lake, e ficou tudo organizado de forma bem clara assim. Minha visão e opinião eram quase iguais ao que está aqui. O benchmark executado online usou Spark, e embora o benchmark possa servir como referência, o Head of DevRel da Tabular escreveu que ele não tem grande significado. Para escolher como open source, parece que o
icebergé a única opção. O resumo é bom, mas seria ótimo se também houvesse links de referência.Comentários no Hacker News
Apache Iceberg e Delta Lake são frequentemente mencionados como formatos de tabela abertos, mas na prática há diferenças.
No mundo dos bancos de dados, o fato de Delta, Iceberg e Hudi armazenarem dados em storage como o S3 em formatos open source representa uma grande mudança.
Já trabalho há anos com arquivos Parquet no S3, mas nunca entendi exatamente o que era o Iceberg. Ainda assim, esse artigo explica bem o Iceberg.
A melhor forma de salvar um dataframe Apache Arrow como arquivo em disco é usar Feather, mas também é possível convertê-lo para o formato Apache Parquet.
Já ouvi falar de data lake, mas "data lakehouse" soa como um lugar onde dados da elite vão pescar em barcos de dados durante o verão.
Estou lidando com cerca de 100 TB de dados no GCP, usando BigQuery como mecanismo de consulta e particionamento Hive simples. Estou satisfeito por conseguir executar todas as consultas e pelo custo ser muito baixo, mas a latência é bem alta (embora isso não seja um grande problema na empresa).
Estou muito empolgado com o Iceberg, mas da última vez que pesquisei, apenas a biblioteca do Spark era uma implementação, e o conector Iceberg do Trino dependia fortemente do Hive.
Há um questionamento sobre por que ninguém consegue explicar tudo isso de forma mais concreta. Seria preciso explicar como armazenar os dados, como conectar e consultar, e qual é a velocidade das consultas (em comparação com velocidade transacional versus velocidade "analítica").
Em todos os benchmarks que vi online, o formato Delta Lake mostra desempenho muito melhor que o Iceberg.
Reconhece-se que o post do blog talvez não seja 100% abrangente nem o melhor ponto de partida para a maioria das pessoas.