Sabemos que a gestão de dados hoje está mudando completamente. Por décadas, as empresas confiaram em armazéns de dados, que armazenavam informações de maneira apropriada. Eles são estruturados, governados e rápidos para extrair informações, embora caros e rígidos por natureza. Em contraste, os lagos de dados são mais eficientes e permitem o armazenamento de enormes quantidades de dados, independentemente da estrutura. No entanto, o surgimento da arquitetura de lakehouse combina os benefícios dos lagos de dados e dos armazéns de dados. Os modelos de lakehouse permitem a retenção da flexibilidade proporcionada pelos lagos de dados, enquanto integram a confiabilidade, governança e desempenho de um armazém de dados.
O formato de tabela open-source mais notável criado para análises de dados em larga escala é o Apache Iceberg. O Iceberg está na vanguarda dessa transformação e aumenta o valor dos dados na arquitetura de lakehouse. Além disso, o Iceberg fornece soluções para muitos dos problemas que os lagos de dados enfrentam, incluindo evolução de esquema, transações ACID, consistência de dados e desempenho de consultas.
Este post do blog é o primeiro de uma série de três partes explorando o Apache Iceberg e seu papel nas arquiteturas de dados modernas. Neste post, o foco será nos seguintes tópicos:
- A evolução de armazéns de dados para lagos de dados
- Os desafios associados às abordagens tradicionais
- Como o Apache Iceberg aborda essas limitações
Os próximos posts desta série farão uma análise mais aprofundada da arquitetura do Iceberg e explorarão como as consultas funcionam dentro das tabelas do Iceberg.
Breve Resumo: A Evolução dos Data Lakes a partir dos Data Warehouses
Por incontáveis anos, as empresas dependeram dos data warehouses, que serviram como a base central para análises. Um data warehouse atua como um repositório centralizado destinado a capturar dados estruturados de diversas fontes para produzir relatórios e insights de forma eficiente. Atualmente, os data warehouses facilitam um desempenho de consulta rápido juntamente com mecanismos robustos de governança, permitindo que sejam confiáveis e bem estruturados.
No entanto, as organizações encontraram novos problemas à medida que o volume de dados aumentou.
- Aumento dos custos de armazenamento devido às altas taxas de computação e armazenamento
- Aplicação de esquema rígido, o que tornou desafiadora a integração de dados semi-estruturados ou não estruturados
- Suporte limitado para cargas de trabalho de IA e aprendizado de máquina
Como solução, as empresas começaram a usar data lakes. Fazê-lo permitiu que as empresas retivessem dados brutos, dados estruturados e dados não estruturados em armazenamento barato, como Amazon S3, Azure Data Lake Storage, Google Cloud Storage e Hadoop Distributed File System.
Os benefícios dos data lakes englobaram os seguintes fatores:
- Redução de custos de armazenamento em ambientes de nuvem específicos
- Uso de formatos de dados inovadores, como dados não estruturados, semi-estruturados e até mesmo estruturados
- Uso aprimorado de aplicações de IA e aprendizado de máquina
Mesmo com essas vantagens, os data lakes apresentaram novos problemas como:
- A ausência de governança e esquema, que causou conjuntos de dados inconsistentes.
- A utilização ineficiente de indexação e varreduras de tabela completa tornou o desempenho da consulta mais lento.
- A ausência de transações ACID tornou a garantia da integridade dos dados em ambientes multiusuários difícil.
O Surgimento da Data Lakehouse
Uma data lakehouse combina todas as vantagens de escalabilidade e econômicas de um data lake com a produtividade, confiabilidade e recursos transacionais de um data warehouse. Este é um paradigma de design moderno.
As principais vantagens de uma casa de dados incluem:
- Acomodar funções de armazenamento e processamento a um preço mais baixo
- Controle eficiente de dados por meio de transações ACID
- Modificação de esquema sem afetar consultas existentes – Evolução de esquema
- Recuperação de versões anteriores da tabela por meio de capacidades de viagem no tempo
A introdução dessas capacidades resultou no desenvolvimento de formatos de tabela modernos, como Delta Lake, Apache Hudi e Apache Iceberg. Essas estruturas tornaram mais fácil para os data lakes operarem como data warehouses, mantendo a liberdade de permanecer flexíveis e não estruturados devido à introdução de camadas de metadados estruturados. Entre esses formatos de tabela, o Apache Iceberg emergiu como uma escolha líder, oferecendo uma solução robusta para organizações que buscam fazer a transição para arquiteturas de data lakehouse.
Apache Iceberg: Um Transformador para Data Lakehouses
O Que É um Formato de Tabela?
Usar um formato de tabela fornece uma maneira de gerenciar efetivamente grandes conjuntos de informações armazenadas em um data lake. Ele encapsula algumas funções, incluindo:
- Estruturação de dados em tabelas para gerenciamento e consultas eficazes.
- Eliminação e atualização eficientes de dados, bem como alteração de esquemas.
- Melhoria do desempenho nos tempos de resposta de consultas ao mudar os metadados.
Assim como outros formatos de tabela tradicionais como o Hive, havia uma dependência de armazenamento baseado em diretório, o que significava que as tabelas eram construídas a partir do conteúdo de certos diretórios de arquivos. No entanto, esse método criou um gargalo de desempenho, uma vez que os mecanismos de consulta tinham que filtrar através de diretórios inteiros antes de executar uma consulta.
A Evolução do Hive para o Iceberg
O formato de tabela Hive buscou resolver o problema de estruturação de data lakes nos primeiros anos. O objetivo era permitir que os usuários organizassem conjuntos de dados em tabelas com consultas como aquelas usadas em SQL pelo Apache Hive e Presto. No entanto, existem desvantagens significativas no formato Hive:
- Inconsistências devido a gravações concorrentes de diferentes fontes por causa da falta de transações ACID.
- Operações caras de listagem de arquivos realizadas devido à gestão ineficiente de metadados.
- Consultas lentas causadas por desafios de otimização de partições manuais.
Como o Apache Iceberg Resolve Esses Desafios
O Apache Iceberg é um formato de tabela moderno que elimina os problemas apresentados com o Hive, ao mesmo tempo que fornece transações ACID, evolução de esquema e desempenho rápido em consultas com data lakes.
Entre os benefícios importantes do Apache Iceberg estão:
- Transações ACID que garantem atualizações de dados confiáveis e consistência.
- Capacidade de viajar no tempo e consultar instantâneos de dados históricos.
- Evolução de esquema que permite adicionar, renomear ou excluir colunas sem quebrar consultas existentes.
- Evolução de partição que otimiza automaticamente estratégias de particionamento.
- Redução de varreduras de arquivos desnecessárias que possibilita uma execução mais rápida de consultas devido ao gerenciamento eficiente de metadados.
Considerações Finais
A gestão de dados mudou drasticamente com o surgimento do Apache Iceberg. Ele permite que empresas em transição para uma abordagem de data lakehouse gerenciem suas informações de forma econômica e altamente escalável sem sacrificar o desempenho. Está claro que a análise de dados foi transformada com a invenção do Apache Iceberg, e seu uso está aumentando constantemente. Fique atento para o último post desta série. Para os dois próximos posts do blog, o foco será:
- Parte 2: A arquitetura do Apache Iceberg, incluindo as camadas de dados, metadados e catálogo.
- Parte 3: Os mecanismos de consultas no Iceberg, incluindo leitura e escrita, viagem no tempo e métodos de otimização de consultas.
Source:
https://dzone.com/articles/the-future-of-data-lakehouses-apache-iceberg