O que é o Apache Iceberg?

O Apache Iceberg é um formato de tabela de código aberto criado para conjuntos de dados analíticos em grande escala armazenados em data lakes. Ele aborda muitas das limitações dos formatos de tabelas de data lake tradicionais, oferecendo confiabilidade, desempenho e flexibilidade aprimorados para arquiteturas de data lakehouse. Pense nisso como uma camada inteligente que fica no topo do armazenamento do seu data lake, como o Cloud Storage, oferecendo recursos semelhantes a bancos de dados para seus conjuntos de dados massivos. Em vez de gerenciar apenas arquivos, o Iceberg gerencia tabelas como coleções de arquivos de dados, permitindo recursos como evolução de esquema, viagem no tempo e planejamento de consultas mais eficiente. Isso permite que analistas, cientistas e engenheiros de dados trabalhem com dados em data lakes com mais facilidade e eficiência, além de aumentar as cargas de trabalho analíticas.

Qual é a função do Apache Iceberg?

O Apache Iceberg atende a vários propósitos em arquiteturas de dados modernas, principalmente aquelas que usam data lakes. Os principais casos de uso incluem:

  • Como criar data lakes confiáveis: o Iceberg garante que as operações sejam atômicas, consistentes, isoladas e duráveis (ACID). Isso evita a corrupção e as inconsistências de dados que podem surgir com abordagens tradicionais baseadas em arquivos.
  • Suporte à evolução do esquema: diferente dos formatos de tabelas mais antigos que costumam ter problemas com mudanças de esquema, o Iceberg permite uma evolução do esquema contínua e segura. É possível adicionar, excluir ou renomear colunas sem interromper consultas em andamento ou exigir migrações de dados caras.
  • Fornecer recursos de viagem no tempo: o Iceberg mantém um histórico de snapshots de tabelas, permitindo que os usuários consultem os dados como eles existiam em um ponto específico no tempo. Isso é muito útil para auditoria, depuração e reprodução de análises.
  • Otimizar a performance da consulta: o gerenciamento de metadados do Iceberg permite que os mecanismos de consulta eliminem arquivos de dados desnecessários com eficiência, acelerando significativamente a execução da consulta, especialmente em grandes conjuntos de dados.
  • Facilitar a governança de dados: recursos como controle de versões de tabelas e gerenciamento de metadados melhoram a governança de dados e os esforços de compliance ao fornecer um rastro de auditoria claro das mudanças nos dados.
  • Como criar data lakehouses:o Iceberg é um componente fundamental para criar data lakehouses, que combinam a escala e a flexibilidade dos data lakehouses com os recursos de gerenciamento de dados dos data warehouses. Ele permite executar cargas de trabalho analíticas e mais operacionais nos mesmos dados.
  • Melhorar a confiabilidade dos dados para machine learning: os conjuntos de dados consistentes e com versões fornecidos pelo Iceberg são essenciais para treinar e implantar modelos de machine learning confiáveis. Os cientistas de dados podem reproduzir experimentos facilmente usando resumos de dados históricos.

Como o Apache Iceberg funciona?

No núcleo, o Apache Iceberg funciona introduzindo uma camada de metadados que fica acima dos arquivos de dados reais no seu data lake. Esses metadados rastreiam a estrutura e o conteúdo das tabelas de um jeito mais organizado e robusto do que os sistemas tradicionais baseados em arquivos. Confira a seguir um detalhamento dos principais mecanismos:

  1. Gerenciamento de metadados: o Iceberg mantém arquivos de metadados que descrevem o esquema, as partições e os locais dos arquivos de dados da tabela. Esses arquivos de metadados geralmente são armazenados no data lake junto com os dados.
  2. Catálogo: o Iceberg usa um catálogo para acompanhar o local dos metadados atuais de cada tabela. Esse catálogo pode ser um serviço como o Hive Metastore, uma implementação baseada em sistema de arquivos ou um serviço de catálogo nativo da nuvem.
  3. Snapshots de tabelas: sempre que uma tabela é alterada (por exemplo, com a adição ou exclusão de dados ou a evolução do esquema), o Iceberg cria um novo snapshot dos metadados da tabela. Esses snapshots são imutáveis e fornecem um registro histórico do estado da tabela.
  4. Listas e arquivos de manifestos: cada snapshot aponta para uma lista de manifestos, que, por sua vez, lista um ou mais arquivos de manifestos. Os arquivos de manifesto contêm metadados sobre arquivos de dados individuais, incluindo localização, valores de partição e estatísticas (como contagens de linhas e intervalos de valores).
  5. Arquivos de dados: são os arquivos Parquet, ORC ou Avro que armazenam os dados no data lake. Os metadados do Iceberg rastreiam esses arquivos e a organização deles na tabela.

Arquitetura do Apache Iceberg

A arquitetura do Apache Iceberg envolve vários componentes principais que trabalham juntos:

  • Armazenamento do data lake: é a camada de armazenamento subjacente, como o Cloud Storage, onde os arquivos de dados reais (em formatos como Parquet, ORC ou Avro) e os arquivos de metadados do Iceberg são armazenados.
  • Catalogo do Iceberg: esse componente é responsável por gerenciar os indicadores de metadados das tabelas do Iceberg. Ele funciona como um registro central que rastreia a versão atual dos metadados de cada tabela. As implementações comuns de catálogo incluem:
  • Metastore do Hive: um repositório de metadados amplamente usado, geralmente com sistemas baseados no Hadoop.
  • Catálogo do sistema de arquivos: uma implementação simples em que as informações do catálogo são armazenadas diretamente no sistema de arquivos do data lake.
  • Serviços de catálogo nativos da nuvem: serviços gerenciados oferecidos por provedores de nuvem para armazenar e gerenciar metadados.
  • Metadados do iceberg: consiste em várias camadas de arquivos de metadados que rastreiam a estrutura e os dados da tabela:
  • Arquivo de metadados da tabela: esse arquivo aponta para a lista de manifesto atual e contém informações gerais sobre a tabela, como o esquema e a especificação de particionamento.
  • Lista de manifestos: esse arquivo lista os arquivos de manifesto que contêm metadados sobre os arquivos de dados em um resumo específico da tabela.
  • Arquivos de manifesto: esses arquivos contêm informações detalhadas sobre arquivos de dados individuais, incluindo o local, os valores de partição e as estatísticas.
  • Mecanismos de consulta e frameworks de processamento: são as ferramentas que interagem com as tabelas do Iceberg para ler e gravar dados. Esses mecanismos usam os metadados do Iceberg para otimizar o planejamento e a execução de consultas.
  • Recursos de computação: são a infraestrutura subjacente (por exemplo, máquinas virtuais e contêineres) que executam os mecanismos de consulta e os frameworks de processamento.

Apache Iceberg e data lakes

O Apache Iceberg melhora significativamente os recursos dos data lakes ao adicionar um formato de tabela confiável e com bom desempenho. Em data lakes tradicionais sem um formato de tabela, como o Iceberg, os dados geralmente são apenas uma coleção de arquivos. Isso pode gerar vários desafios:

  • Falta de evolução do esquema: mudar a estrutura dos dados pode ser complexo e propenso a erros
  • Leituras inconsistentes:operações de gravação simultâneas podem levar a consultas que leem uma mistura de dados antigos e novos.
  • Desempenho lento de consulta : sem metadados para orientar os mecanismos de consulta, eles precisam verificar grandes porções dos dados
  • Dificuldade com o gerenciamento de dados : recursos como viagem no tempo e controle de versões não estão disponíveis

O Iceberg resolve essas limitações fornecendo uma camada estruturada sobre o data lake. Ele traz recursos semelhantes a bancos de dados para os data lakes, transformando-os em data lakehouses mais poderosos e gerenciáveis. Ao gerenciar tabelas como coleções de arquivos com metadados avançados, o Iceberg permite:

  • Acesso confiável e consistente aos dados : as propriedades ACID garantem a integridade de dados
  • Processamento de consultas eficiente : a filtragem e a omissão de dados baseadas em metadados aceleram as consultas
  • Gerenciamento de dados flexível : a evolução do esquema e a viagem no tempo simplificam a manutenção e a análise de dados
  • Interoperabilidade : o Iceberg foi criado para ser compatível com vários mecanismos de consulta e frameworks de processamento usados com frequência em data lakes

Resolva seus desafios comerciais com o Google Cloud

Clientes novos recebem US$ 300 em créditos para usar no Google Cloud.
Fale com um especialista em vendas do Google Cloud para discutir seu desafio exclusivo em mais detalhes.

Desafios do Apache Iceberg

Embora o Apache Iceberg ofereça vantagens significativas, também há alguns desafios a considerar:

Aumento da complexidade

A introdução do Iceberg adiciona outra camada de abstração ao data lake, o que pode aumentar a complexidade geral do sistema. É preciso ter conhecimento específico para entender e gerenciar a camada de metadados.

Dependência do catálogo

O Iceberg depende de um serviço de catálogo (como o Hive Metastore) para gerenciar os locais dos metadados da tabela. A disponibilidade e o desempenho do catálogo podem afetar o sistema como um todo.

Curva de aprendizagem

As equipes precisam aprender os conceitos e as práticas recomendadas associadas ao Iceberg, o que pode exigir treinamento e atualização das habilidades.

Custos indiretos potenciais

Embora o Iceberg otimize o desempenho da consulta em muitos casos, o próprio gerenciamento de metadados introduz alguma sobrecarga, principalmente para conjuntos de dados muito pequenos ou consultas extremamente simples.

Maturidade das ferramentas

Embora o ecossistema do Iceberg esteja crescendo rapidamente, algumas ferramentas e integrações ainda podem ser menos maduras em comparação com tecnologias de armazenamento em data warehouse mais estabelecidas.

Esforço de migração

A migração de data lakes para o uso do Iceberg pode ser uma tarefa significativa, exigindo a reescrita de dados e mudanças nos pipelines de dados atuais.

Google Cloud e Apache Iceberg

O Google Cloud oferece um ambiente robusto para aproveitar o Apache Iceberg. Vários serviços do Google Cloud se integram bem ao Iceberg, permitindo que os usuários criem soluções de data lakehouse eficientes e escalonáveis.

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud