- A área de gerenciamento de dados está mudando rapidamente, e o conceito de Data Lakehouse vem ganhando força com o crescimento do armazenamento em nuvem e da demanda por análises em tempo real
- Projetos como Apache Iceberg, Apache Hudi e Delta Lake vêm fornecendo funções essenciais para a arquitetura Lakehouse, como evolução de esquema, transações ACID e atualizações eficientes
- O sistema interno da Google, Napa, apresenta uma abordagem mais avançada do que as soluções Lakehouse atuais
- Indo além, ao incorporar ideias de outros sistemas como Apache Pinot, propõe-se o LakeDB como a próxima geração do Lakehouse
Ambiente Lakehouse atual: Iceberg, Hudi, Delta Lake
- Apache Iceberg
- Oferece suporte a evolução de esquema, time travel e planejamento eficiente de consultas por meio de um gerenciamento sofisticado de metadados
- Fornece garantias de consistência para grandes conjuntos de dados analíticos
- Apache Hudi
- Usa armazenamento baseado em log-structured e indexação para processar com eficiência upsert, delete e CDC (captura de dados de alterações)
- Dá ênfase à mutação de dados e ao processamento incremental
- Delta Lake
- Fornece transações ACID para Spark e workloads de big data
- Oferece suporte a validação de esquema, time travel e processamento unificado de batch e streaming
- Também oferece parcialmente pipelines declarativos e materialized views por meio do Delta Live Tables
Napa do Google: uma abordagem mais ampla
- Como um sistema completo de gerenciamento de dados analíticos, oferece suporte a consultas de baixa latência e ingestão contínua de dados em grande escala
- Ingestão baseada em LSM (Log-Structured Merge)-Tree
- Adota o método LSM-tree para alta taxa de escrita, com uma estrutura que mescla os dados existentes por meio de compactação
- Uso de materialized views
- Mantém e atualiza automaticamente materialized views para acelerar consultas
- Queryable Timestamp (QT)
- Fornece gerenciamento consistente de pontos no tempo em todo o sistema
- Permite ajustar com precisão o equilíbrio entre atualidade dos dados e desempenho de consulta
- Integração com F1 Query
- Usa o mecanismo F1 Query do Google para processar com eficiência consultas analíticas complexas
- Alta configurabilidade
- Permite ajustar atualidade dos dados, desempenho, custo e outros fatores conforme as necessidades do usuário
Comparação entre Napa, Iceberg, Hudi e Delta Lake
- O Napa é um sistema abrangente de gerenciamento de dados analíticos, que oferece consultas rápidas por meio de materialized views baseadas em LSM e ajusta finamente a atualidade dos dados com uma técnica chamada Queryable Timestamp (QT). É útil em cenários em que se deseja analisar e reportar rapidamente grandes volumes de dados, e sua alta flexibilidade de configuração permite equilibrar adequadamente custo, desempenho e atualidade.
- O Iceberg é um projeto focado em formato de tabela, que gerencia grandes arquivos de dados por meio de metadados e fornece recursos como atualizações atômicas. É usado principalmente em ambientes de data lake que exigem funcionalidades como data warehousing, evolução de esquema e time travel, e suas opções de configuração se concentram principalmente no layout da tabela e nos metadados.
- O Hudi é uma plataforma que incorpora capacidades semelhantes às de banco de dados a um data lake, processando com eficiência operações de mutação de dados como upsert e exclusão por meio de armazenamento baseado em log-structured e técnicas de indexação. Foi projetado para lidar bem com ingestão em tempo real, CDC (captura de dados de alterações) e requisitos de conformidade regulatória como GDPR, mas não oferece materialized views de forma nativa.
- O Delta Lake é uma camada de armazenamento com suporte a transações ACID, que processa de forma integrada workloads de batch e streaming, além de oferecer enforcement de esquema e time travel. Para melhorar o desempenho de consultas, usa data skipping e cache em integração com Spark, e também oferece conceitos semelhantes a materialized views por meio do Delta Live Tables separado. É frequentemente usado quando se deseja adicionar confiabilidade e capacidades transacionais a diversos ambientes de data lake.
A proposta de LakeDB: inspiração em Napa, aprendizados de outros lugares
- Ao combinar ideias inovadoras do Napa e de sistemas como Apache Pinot, propõe-se o conceito de um LakeDB mais integrado e flexível
- O LakeDB busca ser uma solução de gerenciamento de dados em que o usuário expressa declarativamente suas necessidades (atualidade, custo, consistência, uso de índices etc.), e o sistema faz a otimização automaticamente
1. Integração de armazenamento, ingestão, metadados e processamento de consultas
- Um único sistema inclui armazenamento, ingestão, metadados e processamento de consultas
- O usuário precisa apenas definir a atualidade e a consistência dos dados, e as tarefas necessárias são ajustadas automaticamente
- No Iceberg, Hudi e Delta Lake, a necessidade de integrar ferramentas separadas aumenta a complexidade nessa área
2. Otimização inteligente de materialized views e layout de dados
- Alterna automaticamente entre os métodos CoW (Copy-on-Write) e MoR (Merge-on-Read) conforme o workload
- Cria e gerencia snapshots e materialized views de forma adequada com base nos requisitos definidos pelo usuário para desempenho e custo
- Hudi, Delta Lake e Iceberg exigem configuração majoritariamente manual desse processo
3. Controle refinado da atualidade dos dados
- Assim como no QT do Napa, quando o usuário especifica o nível desejado de atualidade, o sistema encontra o ponto de equilíbrio entre desempenho e custo
- Nos sistemas existentes, era difícil garantir tempo real, pois dependiam de snapshots periódicos e monitoramento
4. Indexação e particionamento avançados inspirados no Apache Pinot
- Oferece suporte a métodos de indexação avançados, como Star-Tree, permitindo lidar também com análises de alta cardinalidade
- Busca ganhos de desempenho que vão além do particionamento simples e do data skipping de Iceberg e Delta Lake
5. Configuração flexível
- A mesma tabela pode ser configurada por vários consumidores com diferentes requisitos de desempenho, custo e frescor
- Os sistemas existentes têm uma faixa de configuração limitada, exigindo muito ajuste manual para lidar com workloads diversificados
6. Suporte a ACID e evolução de esquema
- Herda e expande a base de ACID e evolução de esquema de Iceberg e Delta Lake
- Busca automatizar alterações simultâneas de esquema e garantias de consistência de dados em ambientes distribuídos
7. Abertura e escalabilidade
- Oferece suporte a padrões abertos e integração com diversos mecanismos de consulta, podendo ser expandido conforme necessário
- Permite aplicar funcionalidades de forma flexível de acordo com as necessidades do usuário, sem dependência de um fornecedor ou plataforma específica
Por que o LakeDB é a próxima evolução
- Desempenho: aproxima-se da velocidade de nível OLAP por meio de índices avançados, materialized views e otimização dinâmica do layout de dados
- Simplicidade: oferece funções de gerenciamento em um único sistema; basta definir os requisitos do usuário (atualidade, desempenho etc.) para que tudo seja ajustado automaticamente
- Eficiência: reduz o uso de recursos e a carga operacional, trazendo potenciais vantagens também em custo
- Flexibilidade: atende a diferentes workloads com controle refinado da atualidade dos dados e ricas opções de configuração
- Análise em tempo real: adota técnicas de indexação do Apache Pinot para buscar simultaneamente baixa latência e alta vazão
Conclusão
- Apache Iceberg, Apache Hudi e Delta Lake tiveram um papel importante no avanço do conceito de Lakehouse
- Ao combinar a abordagem do Napa do Google com ideias vindas de Apache Pinot e outros, é possível conceber uma visão de LakeDB mais integrada e poderosa
- O LakeDB tem grande potencial para se tornar a arquitetura de gerenciamento de dados da próxima geração, como um sistema integrado maduro que abrange armazenamento, ingestão, metadados e processamento de consultas
Ainda não há comentários.