O Futuro dos Data Lakehouses: Apache Iceberg Explicado

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:

  1. A evolução dos data warehouses para data lakes
  2. Os desafios associados aos métodos tradicionais
  3. 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.

  1. Aumento dos custos de armazenamento devido às altas taxas de computação e armazenamento
  2. Aplicação rígida de esquema, o que tornava desafiadora a integração de dados semiestruturados ou não estruturados
  3. 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:

  1. Redução de custos de armazenamento em ambientes de nuvem específicos
  2. Uso de novos formatos de dados, como dados não estruturados, semiestruturados e até mesmo dados estruturados
  3. Uso aprimorado de aplicativos de IA e aprendizado de máquina

Mesmo com essas vantagens, os data lakes apresentaram novos problemas como:

  1. A ausência de governança e esquema, que causou conjuntos de dados inconsistentes.
  2. A utilização ineficiente de indexação e varreduras completas de tabela tornou o desempenho da consulta mais lento.
  3. 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:

  1. Acomodar funções de armazenamento e processamento a um preço mais baixo
  2. Controle eficiente de dados por meio de transações ACID
  3. Modificação de esquema sem afetar consultas existentes – Evolução de esquema
  4. 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:

  1. Estruturação de dados em tabelas para gerenciamento e consultas eficazes.
  2. Eliminação e atualização eficientes de dados, bem como alteração de esquemas.
  3. 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:

  1. Inconsistências devido a gravações concorrentes de diferentes fontes devido à falta de transações ACID.
  2. Operações caras de listagem de arquivos devido ao gerenciamento ineficiente de metadados.
  3. 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:

  1. Transações ACID que garantem atualizações de dados confiáveis e consistência.
  2. Capacidade de viajar no tempo e consultar os snapshots de dados históricos.
  3. Evolução de esquema que permite adicionar, renomear ou excluir colunas sem quebrar as consultas existentes.
  4. Evolução de partição que otimiza automaticamente as estratégias de particionamento.
  5. 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