O que é o Apache Iceberg?

Última atualização: 01/05/2026

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. As tabelas do Iceberg gerenciam dados como coleções de arquivos, oferecendo maior confiabilidade, desempenho e flexibilidade para arquiteturas de dados modernas. 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.

O que é um data lake transacional?

Um data lake transacional não apenas armazena dados em escala, mas também oferece suporte a operações transacionais para garantir que os dados sejam precisos e consistentes. As tabelas Iceberg ativam essas propriedades, conhecidas coletivamente como ACID.

  • Atomicidade: garante que cada transação seja tratada como uma unidade única, que tem sucesso ou falha completamente, sem status intermediário
  • Consistência: garante que todos os dados gravados sejam válidos de acordo com as regras definidas do data lake.
  • Isolamento: permite que várias transações ocorram simultaneamente sem interferir umas nas outras
  • Durabilidade: garante que os dados não sejam perdidos ou corrompidos após o envio de uma transação, mesmo em caso de falha do sistema

Casos de uso comuns para tabelas do Iceberg

As tabelas Iceberg são adequadas para vários casos de uso modernos de data lake e lakehouse, incluindo:

  • Compliance e privacidade: ideal para data lakes que exigem exclusões frequentes para aplicar as leis de privacidade de dados
  • Atualizações no nível do registro: permite atualizações em registros individuais sem republicar conjuntos de dados inteiros, como dados de vendas que mudam devido a devoluções de clientes
  • Gerenciar mudanças imprevisíveis: oferece suporte a tabelas de dimensões com alterações lentas (SCD), como registros de clientes em que as informações de contato podem mudar em intervalos desconhecidos
  • Viagem no tempo e auditoria: mantém um histórico de snapshots de tabelas, permitindo que os usuários consultem versões históricas para análise de tendências ou para reverter e corrigir problemas
  • Machine learning: fornece conjuntos de dados consistentes e com versões, essenciais para treinar modelos confiáveis

Quem usa tabelas do Iceberg?

Várias personas técnicas usam tabelas Iceberg para gerenciar grandes conjuntos de dados com eficiência:

  • Engenheiros e administradores de dados: usam tabelas do Iceberg para projetar e criar sistemas de armazenamento escalonáveis e confiáveis
  • Analistas e cientistas de dados: usam a tabela Iceberg para analisar conjuntos de dados enormes com a familiaridade do SQL e snapshots históricos reproduzíveis

Principais benefícios das tabelas Iceberg

Permite que usuários familiarizados com SQL padrão realizem operações complexas de data lake sem aprender uma nova linguagem.

Permite mudanças perfeitas nas estruturas de dados (adicionar, renomear ou remover colunas) sem interromper as consultas.

Suporta a captura de dados alterados (CDC), permitindo que os usuários processem apenas os dados que foram alterados desde a última execução para melhorar a eficiência.

Usa metadados para eliminar arquivos desnecessários, acelerando a execução de consultas com técnicas como a redução de predicados.

Compatível com vários mecanismos, como Spark, Flink, Hive e Presto.

Como as tabelas do Apache Iceberg funcionam?

O Apache Iceberg introduz uma camada de metadados que fica acima dos arquivos de dados reais no data lake. Esses metadados rastreiam a estrutura e o conteúdo das suas tabelas de uma forma mais organizada e robusta do que os sistemas tradicionais baseados em arquivos. Confira a seguir um resumo dos principais mecanismos:

  • 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.
  • 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.
  • 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.
  • 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).

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: os mecanismos de computação interagem diretamente com os metadados do Iceberg para ler, gravar e executar transações ACID. Frameworks de código aberto, como o Apache Spark, usam esses metadados para ignorar arquivos desnecessários e acelerar 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 falar sobre soluções exclusivas.

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