Ir para o conteúdo principal

O que é um Lakehouse?

Publicado: 26 de janeiro de 2023

Plataforma7 min de leitura

Nos últimos anos na Databricks, vimos uma nova arquitetura de gerenciamento de dados que surgiu independentemente em muitos clientes e casos de uso: o lakehouse. Neste post, descrevemos essa nova arquitetura e suas vantagens sobre abordagens anteriores.

Data warehouses têm uma longa história em aplicações de suporte à decisão e business intelligence. Desde sua criação no final dos anos 1980, a tecnologia de data warehouse continuou a evoluir e as arquiteturas MPP levaram a sistemas capazes de lidar com tamanhos de dados maiores. Mas enquanto os warehouses eram ótimos para dados estruturados, muitas empresas modernas precisam lidar com dados não estruturados, semiestruturados e dados com alta variedade, velocidade e volume. Data warehouses não são adequados para muitos desses casos de uso e certamente não são os mais eficientes em termos de custo.

À medida que as empresas começaram a coletar grandes quantidades de dados de muitas fontes diferentes, os arquitetos começaram a imaginar um único sistema para abrigar dados para muitos produtos analíticos e cargas de trabalho diferentes. Cerca de uma década atrás, as empresas começaram a construir data lakes - repositórios de dados brutos em uma variedade de formatos. Embora adequados para armazenar dados, os data lakes carecem de alguns recursos críticos: eles não suportam transações, não impõem qualidade de dados e sua falta de consistência/isolamento torna quase impossível misturar apêndices e leituras, e trabalhos em batch e streaming. Por essas razões, muitas das promessas dos data lakes não se concretizaram e, em muitos casos, levaram à perda de muitos dos benefícios dos data warehouses.

A necessidade de um sistema flexível e de alto desempenho não diminuiu. As empresas exigem sistemas para diversas aplicações de dados, incluindo análise SQL, monitoramento em tempo real, ciência de dados e machine learning. A maioria dos avanços recentes em IA tem sido em melhores modelos para processar dados não estruturados (texto, imagens, vídeo, áudio), mas estes são precisamente os tipos de dados para os quais um data warehouse não é otimizado. Uma abordagem comum é usar vários sistemas - um data lake, vários data warehouses e outros sistemas especializados como bancos de dados de streaming, séries temporais, grafos e imagens. Ter uma multiplicidade de sistemas introduz complexidade e, mais importante, introduz atrasos, pois os profissionais de dados invariavelmente precisam mover ou copiar dados entre diferentes sistemas.

O que é um lakehouse?

Novos sistemas estão começando a surgir que abordam as limitações dos data lakes. Um lakehouse é uma nova arquitetura aberta que combina os melhores elementos de data lakes e data warehouses. Lakehouses são habilitados por um novo design de sistema: implementando estruturas de dados e recursos de gerenciamento de dados semelhantes aos de um data warehouse diretamente sobre armazenamento em nuvem de baixo custo em formatos abertos. Eles são o que você obteria se tivesse que redesenhar data warehouses no mundo moderno, agora que o armazenamento barato e altamente confiável (na forma de object stores) está disponível.

Um lakehouse possui os seguintes recursos principais:

  • Suporte a transações: Em um lakehouse corporativo, muitos pipelines de dados frequentemente lerão e escreverão dados simultaneamente. O suporte a transações ACID garante a consistência enquanto várias partes leem ou escrevem dados simultaneamente, geralmente usando SQL.
  • Aplicação de esquema e governança: O Lakehouse deve ter uma maneira de suportar a aplicação e evolução de esquemas, suportando arquiteturas de esquema de DW como esquemas estrela/floco de neve. O sistema deve ser capaz de raciocinar sobre a integridade dos dados e deve ter mecanismos robustos de governança e auditoria.
  • Suporte a BI: Lakehouses permitem o uso de ferramentas de BI diretamente nos dados de origem. Isso reduz a obsolescência e melhora a atualidade, reduz a latência e diminui o custo de ter que operacionalizar duas cópias dos dados em um data lake e em um warehouse.
  • Armazenamento desacoplado de computação: Na prática, isso significa que o armazenamento e a computação usam clusters separados, portanto, esses sistemas podem escalar para muito mais usuários simultâneos e tamanhos de dados maiores. Alguns data warehouses modernos também possuem essa propriedade.
  • Abertura: Os formatos de armazenamento que eles usam são abertos e padronizados, como Parquet, e fornecem uma API para que uma variedade de ferramentas e engines, incluindo machine learning e bibliotecas Python/R, possam acessar os dados eficientemente diretamente.
  • Suporte a diversos tipos de dados, de não estruturados a estruturados: O lakehouse pode ser usado para armazenar, refinar, analisar e acessar tipos de dados necessários para muitas novas aplicações de dados, incluindo imagens, vídeo, áudio, dados semiestruturados e texto.
  • Suporte a diversas cargas de trabalho: incluindo ciência de dados, machine learning e SQL e análises. Múltiplas ferramentas podem ser necessárias para suportar todas essas cargas de trabalho, mas todas elas dependem do mesmo repositório de dados.
  • Streaming ponta a ponta: Relatórios em tempo real são a norma em muitas empresas. O suporte a streaming elimina a necessidade de sistemas separados dedicados a atender aplicações de dados em tempo real.

Esses são os atributos chave dos lakehouses. Sistemas de nível empresarial exigem recursos adicionais. Ferramentas de segurança e controle de acesso são requisitos básicos. Recursos de governança de dados, incluindo auditoria, retenção e linhagem, tornaram-se essenciais, especialmente à luz de regulamentações de privacidade recentes. Ferramentas que permitem a descoberta de dados, como catálogos de dados e métricas de uso de dados, também são necessárias. Com um lakehouse, esses recursos empresariais só precisam ser implementados, testados e administrados para um único sistema.

Leia o artigo de pesquisa completo sobre os mecanismos internos do Lakehouse.

Alguns exemplos iniciais

A Plataforma Databricks Lakehouse possui os recursos arquitetônicos de um lakehouse. O serviço Azure Synapse Analytics da Microsoft, que se integra ao Azure Databricks, permite um padrão de lakehouse semelhante. Outros serviços gerenciados como BigQuery e Redshift Spectrum possuem alguns dos recursos de lakehouse listados acima, mas são exemplos que focam principalmente em BI e outras aplicações SQL. Empresas que desejam construir e implementar seus próprios sistemas têm acesso a formatos de arquivo open source (Delta Lake, Apache Iceberg, Apache Hudi) adequados para a construção de um lakehouse.

Unir data lakes e data warehouses em um único sistema significa que as equipes de dados podem avançar mais rapidamente, pois podem usar os dados sem precisar acessar vários sistemas. O nível de suporte a SQL e integração com ferramentas de BI entre esses primeiros lakehouses é geralmente suficiente para a maioria dos data warehouses corporativos. Visualizações materializadas e stored procedures estão disponíveis, mas os usuários podem precisar empregar outros mecanismos que não são equivalentes aos encontrados em data warehouses tradicionais. O último é particularmente importante para "cenários de lift and shift", que exigem sistemas que alcancem semânticas quase idênticas às de data warehouses comerciais mais antigos.

E quanto ao suporte para outros tipos de aplicações de dados? Usuários de um lakehouse têm acesso a uma variedade de ferramentas padrão (Spark, Python, R, bibliotecas de machine learning) para cargas de trabalho não relacionadas a BI, como ciência de dados e machine learning. A exploração e o refinamento de dados são padrão para muitas aplicações analíticas e de ciência de dados. O Delta Lake foi projetado para permitir que os usuários melhorem incrementalmente a qualidade dos dados em seu lakehouse até que estejam prontos para consumo.

Uma observação sobre blocos de construção técnicos. Embora sistemas de arquivos distribuídos possam ser usados para a camada de armazenamento, os object stores são mais comumente usados em lakehouses. Object stores fornecem armazenamento de baixo custo e alta disponibilidade, que se destacam em leituras massivamente paralelas - um requisito essencial para data warehouses modernos.

Do BI à IA

O lakehouse é uma nova arquitetura de gerenciamento de dados que simplifica radicalmente a infraestrutura de dados corporativa e acelera a inovação em uma era em que o machine learning está prestes a revolucionar todos os setores. No passado, a maior parte dos dados que iam para os produtos ou para a tomada de decisões de uma empresa eram dados estruturados de sistemas operacionais, enquanto hoje, muitos produtos incorporam IA na forma de modelos de visão computacional e de voz, mineração de texto e outros. Por que usar um lakehouse em vez de um data lake para IA? Um lakehouse oferece versionamento de dados, governança, segurança e propriedades ACID que são necessárias mesmo para dados não estruturados.

Lakehouses atuais reduzem custos, mas seu desempenho ainda pode ficar atrás de sistemas especializados (como data warehouses) que têm anos de investimentos e implementações no mundo real. Os usuários podem preferir certas ferramentas (ferramentas de BI, IDEs, notebooks) em detrimento de outras, portanto, os lakehouses também precisarão melhorar sua UX e seus conectores para ferramentas populares, para que possam atrair uma variedade de personas. Essas e outras questões serão abordadas à medida que a tecnologia continua a amadurecer e se desenvolver. Com o tempo, os lakehouses fecharão essas lacunas, mantendo as propriedades centrais de serem mais simples, mais eficientes em termos de custo e mais capazes de atender a diversas aplicações de dados.

Leia o FAQ sobre Data Lakehouse para mais detalhes.

(Esta publicação no blog foi traduzida utilizando ferramentas baseadas em inteligência artificial) Publicação original

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada