Sabemos que a gestão de dados hoje está mudando completamente. Por décadas, as empresas dependiam de data warehouses, 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 data lakes são mais eficientes e permitem o armazenamento de enormes quantidades de dados independentemente da estrutura. No entanto, a emergência da arquitetura de data lakehouse combina os benefícios dos data lakes e data warehouses. Os modelos de lakehouse permitem a retenção da flexibilidade fornecida pelos data lakes enquanto integram a confiabilidade, governança e desempenho de um data warehouse.
O formato de tabela de código aberto mais notável criado para análise de dados em larga escala é Apache Iceberg. Iceberg está na vanguarda dessa transformação e aprimora o valor dos dados na arquitetura de lakehouse. Além disso, Iceberg oferece soluções para muitos dos problemas enfrentados pelos data lakes, incluindo evolução de esquema, transações ACID, consistência de dados e desempenho de consulta.
Esta postagem no blog é a primeira de uma série de três partes explorando o Apache Iceberg e seu papel nas arquiteturas modernas de dados. Nesta postagem, o foco será nos seguintes tópicos:
- A evolução dos data warehouses para data lakes
- Os desafios associados aos métodos tradicionais
- Como o Apache Iceberg aborda essas limitações
As postagens seguintes nesta série aprofundarão na 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 de data warehouses, que serviram como 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ápida juntamente com mecanismos robustos de governança, permitindo que sejam confiáveis e bem estruturados.
No entanto, as organizações enfrentaram novos problemas à medida que o volume de dados aumentava.
- Aumento dos custos de armazenamento devido às altas taxas de computação e armazenamento
- Aplicação rígida de esquema, o que tornava desafiadora a integração de dados semiestruturados 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 fazer uso de data lakes. Fazendo isso, as empresas puderam reter 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 novos formatos de dados, como dados não estruturados, semiestruturados e até mesmo dados estruturados
- Uso aprimorado de aplicativos 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 completas de tabela 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 mescla 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 data lake house 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 modernos de tabelas como Delta Lake, Apache Hudi e Apache Iceberg. Essas estruturas facilitaram para que os data lakes operassem como data warehouses, mantendo a liberdade de permanecer flexíveis e não estruturados devido à introdução de camadas de metadados estruturados. Dentre esses formatos de tabelas, o Apache Iceberg se destacou como uma escolha principal, 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?
O uso de um formato de tabela fornece uma maneira de gerenciar efetivamente grandes conjuntos de informações armazenadas em um lago de dados. 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 no desempenho dos tempos de resposta da consulta por meio da alteração dos metadados.
Assim como outros formatos de tabela tradicionais como o Hive, havia dependência de armazenamento baseado em diretórios, o que significava que as tabelas eram construídas a partir do conteúdo de determinados diretórios de arquivos. No entanto, esse método criava um gargalo de desempenho, já que os mecanismos de consulta tinham que filtrar por todo o diretório antes de executar uma consulta.
A Evolução do Hive para Iceberg
O formato de tabela do Hive procurava resolver o problema de estruturar lagos de dados nos primeiros anos. O objetivo era permitir que os usuários organizassem conjuntos de dados em tabelas com consultas, como as usadas no SQL pelo Apache Hive e Presto. No entanto, existem desvantagens significativas no formato do Hive:
- Inconsistências devido a gravações concorrentes de diferentes fontes devido à falta de transações ACID.
- Operações caras de listagem de arquivos devido ao gerenciamento ineficiente de metadados.
- Consultas lentas causadas pelos desafios de otimização manual da partição.
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 em 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 os snapshots de dados históricos.
- Evolução de esquema que permite adicionar, renomear ou excluir colunas sem quebrar as consultas existentes.
- Evolução de partição que otimiza automaticamente as 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 as 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 a última postagem desta série. Para os dois próximos posts do blog, o foco vai mudar para:
- Parte 2: 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