Data Lake vs Delta Lake

Saiba as diferenças entre delta lakes e data lakes e como essas duas tecnologias funcionam juntas


Introdução 

Uma pergunta que recebo frequentemente é se delta lake vai substituir os data lakes e como é interação destas duas tecnologias, para responder esta pergunta vamos entender um pouco antes o que são esses conceitos a importância de cada um deles no cenário de processamento de dados para analytics

 

Data Lakes

Com toda a discussão em torno de data lakes é fácil esquecer que o que estamos essencialmente discutindo são arquivos armazenados em uma pasta de uma forma simplificada data lakes são grandes repositório de dados que são montados em um sistema de arquivos de alta performance e distribuídos, estes repositórios então armazenam diversos tipos de dados estruturados e/ou não estruturados, eles são alimentados na maior parte das vezes por um pipeline de ingestão de dados que passa por uma ferramenta de manipulação de streaming como apache kafka, AWS kinesis, Azure Event Hubs, etc... ou uma ferramenta de extração ou carga de dados em massa, posteriormente são usados de engines de processamento de alta performance como apache spark ou mapreduce para extrair e transformar dos dados com objetivo gerar o máximo de valor dessas informações. 

Contudo ao longo dos anos depois e depois de diversos data lakes estabelecidos as organizações foram percebendo que um processo de aquisição de dados para um data lake frequentemente se comporta mais como um processo contínuo ao invés de um processo que ocorre uma só vez desta forma o modelo de data lake da forma como foi concebido inicialmente previa pouco suporte para atualização e manutenção dos dados que foram ingeridos ao longo do tempo e diversos desafios foram encontrados estes desafios são bastante parecidos ao que encontramos em bancos de dados tradicionais quando se tem que alterar e/ou inserir dados que podem muitas vezes precisar ser atualizado concorrentemente ou podem sofrer com falhas dos sistemas computacionais durante uma atualização, 
 

Delta Lake
 

Com o objetivo de melhorar o suporte e resolver os problemas de atualização concorrentes dos data lakes a databrics empresa dos criadores do apache spark, lançou um projeto open source chamado delta lake que adiciona características ACID (Atomicidade, Consistência, Isolamento, Durabilidade) aos data lakes antes disso os data lakes muitas vezes acabavam tendo de ter vários arquivos duplicados para garantir a integridade e poder adicionar dados sem correr o risco que falhas como a de uma máquina por exemplo, possa resultar em perda parcial ou inconsistência dos dados residentes nos data lakes.

O delta lake pode ser visto como uma camada adicional em cima do sistema de arquivo do data lake (HDFS, S3, Azure Blob) que adiciona confiabilidade, através de controle de concorrência otimista (optimistic concurrency control) nas escritas e isolamento snapshot, para leituras consistentes durante escritas delta lake também provê versionamento dos dados embutido o que permite fácil recuperação de versões anteriores dos dados.

 

Vantagens do delta lake

  • Transações de ACID - Os data lakes normalmente têm vários canais de dados lendo e gravando dados simultaneamente, e os engenheiros de dados precisam passar por um processo tedioso para garantir a integridade dos dados, devido à falta de transações. O Delta Lake traz transações de Atomicidade, Consistência, Isolamento e Durabilidade (ACID) para seus data lakes. Ele fornece serialização, o nível mais forte de nível de isolamento. 
  • Tratamento escalável de metadados - em big data, até os próprios metadados podem ser "big data". O Delta Lake trata os metadados exatamente como os dados, aproveitando o poder de processamento distribuído do Spark para lidar com todos os seus metadados. Como resultado, o Delta Lake pode lidar com tabelas em escala de petabytes com bilhões de partições e arquivos com facilidade.
  • "Viagem no tempo" (versionamento de dados) - O Delta Lake fornece instantâneos de dados, permitindo que os desenvolvedores acessem e revertam para versões anteriores de dados para auditorias, reversões ou para reproduzir experimentos.
  • Formato aberto - Todos os dados no Delta Lake são armazenados no formato Apache Parquet, permitindo que o Delta Lake aproveite os esquemas de compactação e codificação eficientes que são nativos do Parquet.
  • Processamento em lote (batch) e/ou Processamento de Fluxos Contínuos (Streams) - Uma tabela no Delta Lake é uma tabela em batch, assim como uma fonte de dados de fluxo contínuo (stream). A ingestão de dados de streaming, o preenchimento do histórico em batch e as consultas interativas funcionam por padrão no delta lake.

Vimos a importância dos data lakes no cenário de processamento de dados atual e sua configuração tipica, vimos também que existem diversos desafios para o controle de atualização de dados armazenados aos quais o delta lake, esta camada que age em cima de data lake veio resolver introduzindo ACID nos data lakes e trazendo confiabilidade na atualização dos dados do data lake

 

Saiba mais em:

Se Inscreva Na Nossa Newsletter Tenha Acesso Aos Melhores Artigos