Arquitetura Delta vs. Lambda: uma visão geral

A arquitetura Delta está ganhando popularidade e defensores no mundo do Big Data. Isto porque ela oferece mais simplicidade, qualidade e confiabilidade, com transações em conformidade com ACID, em comparação com outras opções, como as arquiteturas Lambda e Kappa. 

Como é apontado por Denny Lee, Developer Advocate da Databricks, o sonho de um engenheiro de dados é “processá-los de forma contínua e incremental à medida que novos dados chegam, de maneira econômica e sem ter que escolher entre lotes ou streaming”. E a arquitetura Delta promete levar os engenheiros um passo mais perto desse sonho. 

Anteriormente, discutimos as diferenças entre as arquiteturas Lambda vs. Kappa. Então, agora é hora de entender melhor como a arquitetura Delta pode ser uma evolução para o gerenciamento de dados.

A arquitetura Lambda, uma velha amiga

Durante o início da década de 2010, o processamento de dados em tempo real, especialmente em grandes quantidades, ainda era um problema. A latência, a complexidade e não ter ferramentas adequadas para construir um sistema de Big Data foram alguns dos problemas sinalizados por Nathan Marz na época. Nesse contexto, Marz propôs a arquitetura Lambda, que tentou resolver esse problema com uma abordagem híbrida, “decompondo o problema em três camadas: a camada de lotes (batch layer), a camada de serviço (serving layer) e a camada de velocidade (camada de streaming o speed layer)”.

Nessa arquitetura, a camada de lotes pode demorar para processar toneladas de dados que levam muito tempo de computação (caminho frio, ou cold path), enquanto a camada de velocidade calcula em tempo real e realiza atualizações incrementais nos resultados da camada de lote (caminho quente, ou hot path). Finalmente, a camada de serviço obtém os outputs de ambos e usa esses dados para resolver consultas pendentes. Além disso, “possui uma fonte de dados imutável que apenas permite adicionar inputs, que serve como um sistema de registro. Eventos com registro de tempo (timestamped events) são anexados a eventos existentes e nada nunca é sobrescrito”, como esta postagem do blog refere

No entanto, a complexidade sempre foi uma desvantagem da arquitetura Lambda. “Embora possa lidar com grandes volumes de dados, ela aumenta a complexidade exigindo diferentes bases de código para dados por lote e dados por streaming. Além disso, tem tendência a causar perda e corrupção de dados. Em resposta a esses problemas de confiabilidade de dados, a arquitetura tradicional de pipeline de dados adiciona ainda mais complexidade, adicionando etapas como validação, reprocessamento para falhas de trabalho, atualização e fusão manuais ”, diz Hector Leno neste artigo.

A arquitetura Kappa, uma alternativa

Mais tarde, a arquitetura Kappa apareceu como uma alternativa. É baseada em eventos e não separa as camadas. A arquitetura Kappa tem apenas a camada de streaming (streaming layer) e a camada de serviço (serving layer). Portanto, todos os tipos de dados que precisam ser processados serão tratados por uma única pilha de tecnologia. 

A proposta Kappa representou uma evolução para o processamento e análise de dados. De qualquer forma, ela ainda tem um alto nível de complexidade para a implementação e um uso de recursos computacionais extensivos. Além disso, é difícil de escalar.

Arquitetura Delta, uma nova abordagem 

Atualmente, a Arquitetura Delta parece ser o próximo passo dentro do processamento de dados. Para começar é melhor estar familiarizado com o conceito de Delta Lake, considerando que a arquitetura Delta está baseada nele. O Delta Lake, como explicamos anteriormente, é um framework de armazenamento de código aberto que traz suporte a transações ACID e imposição de esquemas para os data lakes, usando Apache Spark. Isto permite que os usuários construam uma arquitetura “Data Lakehouse” que funciona com dados estruturados, semi-estruturados e não estruturados.

Como funciona o processamento Delta. Fonte.

O Delta Lake “estende os arquivos de dados Parquet com um registro de transações baseado em arquivos para transações ACID e manipulação escalável de metadados”. Também é compatível com APIs de Apache Spark e integrado com Structured Streaming. Além disso, a separação entre camadas na arquitetura Delta é mínima em comparação com a arquitetura Lambda, portanto; não há necessidade de tratar os dados de maneira diferente com base em sua fonte.

Considerando esse contexto, a Databricks apresenta-a como “uma abordagem completamente diferente para ingerir, processar, armazenar e gerenciar dados focados na simplicidade. Todo o processamento e enriquecimento de dados das tabelas Bronze (dados brutos) às Prata (filtrados) às Ouro (totalmente prontos para serem usados por análises, relatórios e ciência de dados) acontece dentro do Delta Lake, exigindo menos data hops).

Fluxo de trabalho Delta Lake e da arquitetura Delta. Fonte.

Promessas da arquitetura Delta

  • Redução de custos: sua simplicidade ajuda a reduzir significativamente os custos, reduzindo a quantidade de dados que precisam ser enviados e recebidos, o tempo necessário para processar os dados, bem como a quantidade de vezes que você precisa executar trabalhos devido a falhas.
  • Delta = Menos código: como já dissemos, a arquitetura Lambda precisa de bases de código diferentes para cada parte do processamento. Mas usando a Delta, como as transações são compatíveis com ACID, você garante que seu código seja menos complexo porque várias partes do código que precisavam ser feitas manualmente (para garantir a consistência dos dados, por exemplo) não são mais necessárias.
  • Indexação melhorada: quando você usa o Delta Lake como armazenamento para sua arquitetura,é possível usar Bloom Filter Indexes, que melhoram o desempenho da execução de consultas em mais de 50%, de acordo com o MSSQLTips.com.
  • Fonte de dados única: ao usar outras arquiteturas e tentar simplificar processos, os dados geralmente são copiados de um data lake para outros data warehouses menores. Isso cria problemas de consistência e controle de versão que são resolvidos usando a arquitetura Delta.
  • Adicionar mais fontes de dados? Não há problema: geralmente, depois que uma arquitetura de dados é projetada e implantada para um caso de uso específico, é difícil adicionar novas fontes de dados. Mas ao usar o Delta Lake, isso não apresenta mais um enorme desafio, pois a evolução do esquema torna a adição de novas fontes de dados (ou a alteração dos formatos das fontes de dados existentes) uma tarefa mais simples.

Sumário

Em um mundo que busca ser impulsionado por dados, desenvolver uma solução robusta que seja capaz de dimensionar e lidar com qualquer quantidade ou tipo de dados tem sido o maior desafio nos últimos anos. Propostas como a arquitetura Lambda e Kappa surgiram como uma resposta a essa necessidade. No entanto, elas ainda estão longe do ideal. 

“Houve tentativas de unificar lotes e streaming em um único sistema no passado. As organizações não foram tão bem-sucedidas nessas tentativas. Mas, com o advento do Delta Lake, estamos vendo muitos de nossos clientes adotando um modelo de fluxo de dados contínuo simples para processar dados à medida que chegam. Chamamos essa arquitetura de arquitetura Delta”, explica Databricks, a empresa por trás dela.“Usando essa abordagem, podemos melhorar nossos dados por meio de um pipeline conectado que nos permite combinar fluxos de trabalho de streaming e lote por meio de um armazenamento de arquivos compartilhado, com transações em conformidade com ACID e fornecer o melhor dos dois mundos”, complementa essa análise.

Scroll to Top