Nos últimos anos na Databricks, vimos uma nova arquitetura de gerenciamento de dados que surgiu de forma independente em muitos clientes e casos de uso: o Lakehouse. Neste post descrevemos esta nova arquitetura e suas vantagens em relação às abordagens anteriores.
Os data warehouses têm uma longa história em aplicativos de suporte à decisão e inteligência de negócios. Desde a sua criação no final dos anos 80, a tecnologia de armazenamento de dados 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, dados semiestruturados e dados com alta variedade, velocidade e volume. Os data warehouses não são adequados para muitos desses casos de uso e certamente não são os mais econômicos.
À medida que as empresas começaram a coletar grandes quantidades de dados de várias fontes diferentes, os arquitetos começaram a visualizar um único sistema para armazenar 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 vários formatos. Embora adequados para armazenar dados, os data lakes carecem de alguns recursos críticos: eles não oferecem suporte a transações, não reforçam a qualidade dos dados e sua falta de consistência/isolamento torna quase impossível misturar atualizacoes e leituras, e jobs em batch e streaming. Por esses motivos, 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 diversos aplicativos de dados, incluindo análise SQL, monitoramento em tempo real, ciência de dados e aprendizado de máquina. A maioria dos avanços recentes em IA foi em modelos melhores para processar dados não estruturados (texto, imagens, vídeo, áudio), mas esses 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 streaming, séries temporais, gráficos e bancos de dados de imagens. Ter uma infinidade de sistemas introduz complexidade e, mais importante, introduz atraso, pois os profissionais de dados invariavelmente precisam mover ou copiar dados entre sistemas diferentes.
O que é um Lakehouse?
Novos sistemas estão começando a surgir que abordam as limitações dos data lakes. Um lakehouse é uma arquitetura nova e aberta que combina os melhores elementos de data lakes e data warehouses. As Lakehouses são habilitados por um novo design de sistema: implementação de estruturas de dados e recursos de gerenciamento de dados semelhantes aos de um data warehouse diretamente sobre o armazenamento em nuvem de baixo custo em formatos abertos. Eles são o que você obteria se tivesse que redesenhar um data warehouse no mundo moderno, agora que o armazenamento barato e altamente confiável (na forma de armazenamentos de objetos) está disponível.
Um lakehouse tem as seguintes características principais:
- Suporte a transações: em um lakehouse corporativo, muitos pipelines de dados frequentemente estarão lendo e gravando dados simultaneamente. O suporte para transações ACID garante consistência à medida que várias partes leem ou gravam dados simultaneamente, geralmente usando SQL.
- Execução de schemas e governanca: o Lakehouse deve ter uma maneira de oferecer suporte à execução e a evolução de schemas, suportando arquiteturas de esquema DW, como star/snowflake. O sistema deve ser capaz de raciocinar sobre a integridade dos dados e deve ter mecanismos robustos de governança e auditoria.
- Suporte de BI: Lakehouses permitem o uso de ferramentas de BI diretamente nos dados de origem. Isso reduz a desatualização e melhora a atualidade, reduz a latência e reduz o custo de ter que operacionalizar duas cópias dos dados em um data lake e em um warehouse.
- O armazenamento é desacoplado da computação: na prática, isso significa que o armazenamento e a computação usam clusters separados, portanto, esses sistemas podem ser dimensionados 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 o Parquet, e fornecem uma API para que uma variedade de ferramentas e mecanismos, incluindo aprendizado de máquina e bibliotecas Python/R, possam acessar os dados diretamente com eficiência.
- Suporte para diversos tipos de dados, desde dados não estruturados a dados estruturados: o lakehouse pode ser usado para armazenar, refinar, analisar e acessar tipos de dados necessários para muitos novos aplicativos de dados, incluindo imagens, vídeo, áudio, dados semiestruturados e texto.
- Suporte para diversas cargas de trabalho: incluindo ciência de dados, aprendizado de máquina e SQL e análises. Várias ferramentas podem ser necessárias para dar suporte a todas essas cargas de trabalho, mas todas dependem do mesmo repositório de dados.
- Streaming de ponta a ponta: relatórios em tempo real são a norma em muitas empresas. O suporte para streaming elimina a necessidade de sistemas separados dedicados a atender aplicativos de dados em tempo real.
Esses são os principais atributos dos lakehouses. Os sistemas de nível empresarial requerem recursos adicionais. Ferramentas de segurança e controle de acesso são requisitos básicos. Os recursos de governança de dados, incluindo auditoria, retenção e linhagem, tornaram-se essenciais, especialmente à luz das recentes regulamentações de privacidade. 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 corporativos só precisam ser implementados, testados e administrados para um único sistema.
Leia o trabalho de pesquisa completo sobre o funcionamento interno do Lakehouse.
Alguns exemplos iniciais
A Plataforma Databricks Lakehouse tem as características arquitetônicas de uma 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 têm alguns dos recursos de lakehouse listados acima, mas são exemplos que se concentram principalmente em BI e outros aplicativos SQL. As empresas que desejam construir e implementar seus próprios sistemas têm acesso a formatos de arquivo de código aberto (Delta Lake, Apache Iceberg, Apache Hudi) adequados para a construção de uma lakehouse.
Mesclar data lakes e data warehouses em um único sistema significa que as equipes de dados podem se mover mais rapidamente, pois podem usar dados sem precisar acessar vários sistemas. O nível de suporte SQL e integração com ferramentas de BI entre esses primeiros lakehouses são geralmente suficientes para a maioria dos data warehouses corporativos. Visualizações materializadas e procedimentos armazenados estão disponíveis, mas os usuários podem precisar empregar outros mecanismos que não sejam equivalentes aos encontrados em data warehouses tradicionais. O último é particularmente importante para “cenários de elevação e deslocamento”, que exigem sistemas que alcancem uma semântica quase idêntica à dos data warehouses comerciais mais antigos.
E quanto ao suporte para outros tipos de aplicativos de dados? Os usuários de um lakehouse têm acesso a uma variedade de ferramentas padrão (Spark, Python, R, bibliotecas de aprendizado de máquina) para cargas de trabalho não relacionadas a BI, como ciência de dados e aprendizado de máquina. A exploração e o refinamento de dados são padrão para muitos aplicativos analíticos e de ciência de dados. O Delta Lake foi projetado para permitir que os usuários melhorem gradualmente a qualidade dos dados em sua lakehouse até que estejam prontos para consumo.
Uma observação sobre blocos de construção técnicos. Embora os sistemas de arquivos distribuídos possam ser usados para a camada de armazenamento, os armazenamentos de objetos são mais comumente usados em lakehouses. Os armazenamentos de objetos fornecem armazenamento altamente disponível e de baixo custo, 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 corporativos e acelera a inovação em uma época em que o aprendizado de máquina está prestes a revolucionar todos os setores. No passado, a maioria dos dados que entravam nos produtos de uma empresa ou na tomada de decisões eram dados estruturados de sistemas operacionais, enquanto hoje muitos produtos incorporam IA na forma de visão computacional e modelos de fala, mineração de texto e outros. Por que usar um lakehouse em vez de um data lake para IA? Um lakehouse fornece versões de dados, governança, segurança e propriedades ACID que são necessárias mesmo para dados não estruturados.
Lakehouses atuais reduzem o custo, mas seu desempenho ainda pode ficar atrás de sistemas especializados (como data warehouses) que têm anos de investimentos e implantações no mundo real por trás deles. Os usuários podem preferir certas ferramentas (ferramentas de BI, IDEs, notebooks) em detrimento de outras, de modo que os lakehouses também precisarão melhorar seu 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 principais de serem mais simples, mais econômicos e mais capazes de atender a diversos aplicativos de dados.
Leia as perguntas frequentes sobre Data Lakehouse para obter mais detalhes.
Building the Data Lakehouse.
Explore the next generation of data architecture with the father of the data warehouse, Bill Inmon.