O que é Apache Iceberg?

O Apache Iceberg é um formato de tabela de dados distribuído, orientado pela comunidade, licenciado pelo Apache 2.0 e 100% de código aberto que ajuda a simplificar o processamento de dados em grandes conjuntos de dados armazenados em data lakes. Os engenheiros de dados usam o Apache Iceberg porque ele é rápido, eficiente e confiável em qualquer escala e mantém registros de como os conjuntos de dados mudam com o tempo. O Apache Iceberg oferece integrações fáceis com estruturas de processamento de dados muito usadas, como Apache Spark, Apache Flink, Apache Hive, Presto e muito mais.

O que é um data lake transacional?

Um data lake é um repositório centralizado que permite armazenar todos os dados estruturados e não estruturados em qualquer escala. Uma transação de dados é uma série de trocas de dados que são realizadas em uma única operação. Por exemplo, quando um cliente retira dinheiro de uma conta bancária, o banco realiza várias trocas de dados ao mesmo tempo em uma transação de dados, incluindo a verificação de que a conta tem saldo suficiente, a verificação da identidade e o débito do saque da conta. Um data lake transacional é um tipo de data lake que não apenas armazena dados em grande escala, mas também oferece suporte a operações transacionais e garante que os dados sejam precisos e consistentes, além de permitir que você acompanhe como os dados e a estrutura deles mudam ao longo do tempo. Essas propriedades são conhecidas coletivamente como atomicidade, consistência, isolamento e durabilidade (ACID):

  • A atomicidade garante que cada transação seja um evento único seja bem-sucedido ou que falhe completamente. Não há um status intermediário. 
  • A consistência garante que todos os dados gravados sejam válidos de acordo com as regras definidas do data lake, mantendo os dados precisos e confiáveis. 
  • O isolamento garante que várias transações possam ocorrer ao mesmo tempo sem interferir umas nas outras, de forma que cada transação seja executada de forma independente.
  • A durabilidade garante que os dados não se percam ou sejam corrompidos depois que uma transação for enviada. No caso de uma falha do sistema, como uma queda de energia, os dados podem ser recuperados.

Quais são os benefícios de usar o Apache Iceberg?

Alguns dos principais benefícios de usar o Apache Iceberg para data lakes transacionais incluem:

  • Familiaridade com SQL: a linguagem de consulta estruturada (SQL) é uma linguagem de consulta conhecida usada frequentemente em todos os tipos de aplicações. Analistas de dados e desenvolvedores aprendem e usam o SQL porque ele se integra bem a diferentes linguagens de programação. Ele também é fácil de aprender, pois usa palavras-chave comuns em inglês nas suas declarações. O Apache Iceberg permite que qualquer pessoa familiarizada com a linguagem de consulta estruturada (SQL) crie data lakes e realize a maioria das operações deles sem precisar aprender uma nova linguagem.
  • Consistência de dados: o Apache Iceberg promove a consistência de dados para garantir que todos os usuários que lerem e gravarem dados visualizem os mesmos dados. 
  • Estrutura de dados: o Apache Iceberg permite mudanças fáceis na estrutura de dados, também conhecida como evolução do esquema, o que significa que os usuários podem adicionar, renomear ou remover colunas de uma tabela de dados sem interromper os dados subjacentes.
  • Versionamento de dados: o Apache Iceberg fornece suporte para versionamento de dados, o que permite que os usuários acompanhem as alterações nos dados ao longo do tempo. Isso ativa o recurso de viagem no tempo, que permite aos usuários acessar e consultar versões históricas dos dados e analisar as alterações nos dados entre atualizações e exclusões.
  • Suporte multiplataforma: o Apache Iceberg oferece suporte a uma variedade de sistemas de armazenamento e mecanismos de consulta diferentes, incluindo Apache Spark, Apache Hive e Presto. Isso facilita o uso do Iceberg em diversos ambientes de processamento de dados.
  • Processamento incremental: o Iceberg suporta o processamento incremental, que permite aos usuários processar somente os dados que foram alterados desde a última execução, também conhecidos como CDC (Change Data Capture). Isso pode ajudar a melhorar a eficiência e a performance do processamento de dados.

Quais são os casos de uso comuns do Apache Iceberg?

O Apache Iceberg é adequado para muitos casos de uso de data lake, incluindo:

  • Tabelas de dados em data lakes que exigem exclusões frequentes, como no cumprimento das leis de privacidade dos dados.
  • Tabelas de dados no data lake que exigem atualizações em nível de registro. Isso pode ser útil quando o conjunto de dados exigir atualizações frequentes após a liquidação dos dados, por exemplo, dados de vendas que podem mudar devido a eventos posteriores, como devoluções de clientes. O Iceberg fornece recursos para atualizar registros individuais sem a necessidade de republicar todo o conjunto de dados.
  • Tabelas de dados em data lakes que têm mudanças imprevisíveis, como tabelas de dimensões que mudam lentamente (SCD). Um exemplo de SCD é uma tabela de registros de clientes que inclui nome, localização e informações de contato que podem mudar com o tempo em intervalos desconhecidos.
  • Quando as transações com o data lake exigem garantia de validade, durabilidade e confiabilidade dos dados, os formatos de tabela do Apache Iceberg podem ser implantados para garantir as transações ACID.
  • Quando for necessário voltar no tempo para consultar versões históricas de dados a fim de realizar análises de tendências, analisar alterações nos dados durante um período de tempo ou restaurar ou reverter para uma versão anterior para corrigir problemas.

Quem usa o Apache Iceberg?

Engenheiros de dados, administradores de dados, analistas e cientistas de dados estão entre os profissionais que usam o Apache Iceberg.  Engenheiros e administradores de dados podem usar o Apache Iceberg para projetar e criar sistemas de armazenamento de dados escaláveis.  Os analistas e cientistas de dados podem usar o Apache Iceberg para analisar grandes conjuntos de dados com eficiência. 

Por que você deve escolher o Apache Iceberg?

O Apache Iceberg oferece uma maneira rápida e eficiente de processar grandes conjuntos de dados em grande escala. Veja alguns dos benefícios a seguir:

  1. Código aberto: o Apache Iceberg é um projeto de código aberto, o que significa que ele é de uso gratuito e pode ser personalizado para atender às suas necessidades específicas. Ele conta também com uma comunidade ativa de desenvolvedores que estão continuamente aprimorando e adicionando novos recursos ao projeto. 
  2. Escalabilidade: o Apache Iceberg foi projetado para lidar com grandes conjuntos de dados de forma eficiente. Ele pode particionar e organizar dados em vários nós, o que ajuda a distribuir a workload e acelerar o processamento de dados. 
  3. Performance: o Apache Iceberg tem uma variedade de recursos para otimizar a performance da consulta, incluindo técnicas de compactação e armazenamento em colunas, como push down de predicados e evolução do esquema. 
  4. Flexibilidade: o Apache Iceberg permite que você altere a forma como seus dados são organizados para que possam evoluir com o tempo sem exigir que você reescreva as consultas ou reconstrua as estruturas de dados. Ele também oferece suporte a vários formatos e fontes de dados, o que facilita a integração com os sistemas existentes. 
  5. Confiabilidade: o Apache Iceberg garante a consistência e a confiabilidade dos dados por meio do suporte para transações. Para ajudar a corrigir problemas, você pode acompanhar como os dados mudam ao longo do tempo e reverter para versões históricas.

Quais serviços da AWS são compatíveis com o Iceberg?

O Apache Iceberg suporta estruturas populares de processamento de dados, como Apache Spark, Apache Flink, Apache Hive e Presto. Os serviços da AWS, como Amazon Athena, Amazon EMR e AWS Glue, incluem suporte nativo para estruturas de data lake transacionais, incluindo o Apache Iceberg. O Apache Iceberg, combinado aos serviços compatíveis da AWS, possibilita um data lake transacional, geralmente baseado no armazenamento do S3.

  • O Amazon Athena é um serviço de análise interativo e sem servidor criado em estruturas de código aberto, com suporte a formatos de tabela e arquivo abertos. O Athena fornece uma maneira simplificada e flexível de analisar petabytes de dados onde eles residem. O Athena fornece suporte nativo para consultas de leitura, viagem no tempo, gravação e DDL para tabelas do Apache Iceberg, que usa o formato do Apache Parquet para dados e o catálogo do AWS Glue para a metastore. 
  • O Amazon EMR é a solução de big data para processamento de dados na escala de petabytes, análise interativa e machine learning que usa estruturas de código aberto, como Apache Spark, Hadoop, Presto e Hive. A partir do Amazon EMR 6.5.0, você pode usar o Apache Spark 3 em clusters do Amazon EMR com o formato de tabela Iceberg. As estruturas do EMR, incluindo Spark, Trino, Flink e Hive, são compatíveis com o Apache Iceberg.
  • O AWS Glue é um serviço de integração de dados com tecnologia sem servidor que facilita a descoberta, preparação, movimentação e integração de dados de várias fontes para análise, machine learning (ML) e desenvolvimento de aplicações.  O AWS Glue 3.0 e versões posteriores são compatíveis com a estrutura do Apache Iceberg para data lakes. Você pode usar o AWS Glue para realizar operações de leitura e gravação em tabelas Iceberg no Amazon S3 ou trabalhar com tabelas Iceberg usando o catálogo de dados do AWS Glue. Outras operações, incluindo inserção, atualização e todas as consultas e gravações do Spark, também são compatíveis. 

Próximas etapas na AWS

Confira recursos adicionais relacionados a produtos
Confira os serviços do Analytics  
Cadastre-se para obter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS.

Cadastre-se 
Comece a criar no console

Comece a criar no Console de Gerenciamento da AWS.

Faça login