Imagem retirada do site: https://delta.io/
O formato Delta foi desenvolvido para possibilitar na construção de um Lakehouse através do Spark.
Um Lakehouse também pode ser construído em outros formatos e abaixo podemos ver os principais:
- Delta Lake: Delta Lake é uma camada de armazenamento de dados open-source construída sobre o Apache Spark e permite que os usuários construam data lakes escaláveis e confiáveis. Ele fornece transações ACID (Atomicidade, Consistência, Isolamento e Durabilidade) para operações de leitura e gravação, além de oferecer funcionalidades como versionamento de dados, operações de merge, e otimização de consultas para análise em tempo real e batch.
- Apache Hudi: Apache Hudi (Hadoop Upserts Deletes & Incrementals) é outra opção open-source para gerenciar dados em data lakes. Ele fornece uma camada de abstração sobre o armazenamento de dados distribuído, permitindo operações de ingestão e atualização de dados em grande escala, suportando tanto dados batch quanto em tempo real. Hudi também oferece funcionalidades de gerenciamento de esquemas, indexação e otimização de consultas.
- Apache Iceberg: Apache Iceberg é um formato de tabela para armazenamento de dados em data lakes que foi projetado para oferecer escalabilidade e consistência. Ele fornece recursos como versionamento de dados, suporte a transações ACID, particionamento eficiente e otimizações de leitura para consultas analíticas de alto desempenho.
Para entender mais sobre um Lakehouse, recomendamos o artigo:
O tipo de armazenamento escolhido por quem utiliza Spark é geralmente o Delta já que aparentemente é uma combinação quase perfeita como “Queijo e Goiabada”. As tabelas Delta tem diversos benefícios, conforme podemos observar na imagem e uma das favoritas pela comunidade é a possibilidade de fazer “time travel”, isto é , voltar no tempo caso seja necessário com a versão da tabela. Em um banco de dados relacional, operações de update sem where pode ter uma alta complexidade na recuperação destes dados, mas com o Delta é realmente bem simples com esta feature.
Abaixo vamos observar algumas das principais features encontradas no formato Delta:
Acid transaction
Todas as propriedades de um banco de dados ACID, tais como:
Atomicidade, Consistência, Integridade e Durabilidade.
Time Travel
Possibilidade de voltar uma tabela no tempo, por data ou por versão de forma bem simplificada, caso seja necessário.
Open Source
Tipo de armazenamento que você pode aplicar em qualquer data lake sem custo de licenciamento.
Batch/Streaming unificado
Possibilidade de escrever batch e streaming na mesma tabela
Schema Evolution
Possibilidade de evoluir o schema de uma tabela de forma automatizada.
Auditoria
Possibilidade de rastrear todas as operações na tabela (insert, update e delete).
Muito Obrigado.
Até o Próximo Artigo!