Principais 5 Recursos Chave do Apache Iceberg para Data Lakes Modernos

Os grandes dados evoluíram significativamente desde sua criação no final dos anos 2000. Muitas organizações rapidamente se adaptaram à tendência e construíram suas plataformas de big data usando ferramentas de código aberto como o Apache Hadoop. Mais tarde, essas empresas começaram a enfrentar dificuldades para gerenciar as necessidades de processamento de dados que evoluíam rapidamente. Elas enfrentaram desafios para lidar com mudanças no nível de esquema, evolução de esquemas de partição e voltar no tempo para analisar os dados.

Eu enfrentei desafios semelhantes ao projetar sistemas distribuídos em larga escala na década de 2010 para uma grande empresa de tecnologia e um cliente do setor de saúde. Algumas indústrias precisam dessas capacidades para aderir às regulamentações de bancos, finanças e saúde. Empresas pesadamente orientadas a dados, como a Netflix, também enfrentaram desafios semelhantes. Elas inventaram um formato de tabela chamado “Iceberg”, que se posiciona sobre os arquivos de dados existentes e oferece recursos principais ao aproveitar sua arquitetura. Isso rapidamente se tornou o principal projeto da ASF, à medida que ganhou rápido interesse na comunidade de dados. Neste artigo, explorarei os 5 principais recursos do Apache Iceberg com exemplos e diagramas.

1. Viagem no Tempo

Figura 1: Viagem no tempo no formato de tabela do Apache Iceberg (imagem criada pelo autor)

Esse recurso permite que você consulte seus dados como eles existem em qualquer momento. Isso abrirá novas possibilidades para analistas de dados e negócios entenderem tendências e como os dados evoluíram ao longo do tempo. Você pode facilmente voltar a um estado anterior em caso de erros. Esse recurso também facilita verificações de auditoria, permitindo que você analise os dados em um ponto específico no tempo.

SQL

 

2. Evolução do Esquema

A evolução do esquema do Apache Iceberg permite alterações em seu esquema sem grandes esforços ou migrações custosas. À medida que as necessidades do seu negócio evoluem, você pode:

  • Adicionar e remover colunas sem qualquer tempo de inatividade ou reescritas de tabela.
  • Atualizar a coluna (ampliando).
  • Mudar a ordem das colunas.
  • Renomear uma coluna existente.

Essas mudanças são tratadas no nível de metadados sem necessidade de reescrever os dados subjacentes.

SQL

 

3. Evolução de Partições

Usando o formato de tabela do Apache Iceberg, você pode alterar a estratégia de particionamento da tabela sem reescrever a tabela subjacente ou migrar os dados para uma nova tabela. Isso é possível pois as consultas não fazem referência aos valores de partição diretamente como no Apache Hadoop. O Iceberg mantém informações de metadados para cada versão de partição separadamente. Isso facilita a obtenção das divisões ao consultar os dados. Por exemplo, consultar uma tabela com base no intervalo de datas, enquanto a tabela estava usando o mês como coluna de partição (antes) como uma divisão e o dia como nova coluna de partição (depois) como outra divisão. Isso é chamado de planejamento de divisão. Veja o exemplo abaixo.

SQL

 

4. Transações ACID

Iceberg oferece um suporte robusto para transações em termos de Atomicidade, Consistência, Isolamento e Durabilidade (ACID). Ele permite múltiplas operações de escrita concorrentes, o que possibilita uma alta taxa de transferência em trabalhos intensivos em dados sem comprometer a consistência dos dados.

SQL

 

Todas as operações no Iceberg são transacionais, o que significa que os dados permanecem consistentes apesar de falhas ou modificações nos dados de forma concorrente.

SQL

 

Ele também suporta diferentes níveis de isolamento, o que permite equilibrar desempenho e consistência com base na necessidade.

SQL

 

Aqui está um resumo mostrando como o Iceberg lida com atualizações e exclusões em nível de linha.

Figura 2: Processo de exclusão de registros no Apache Iceberg (imagem criada pelo autor)

5. Operações Avançadas em Tabelas

O Iceberg suporta operações avançadas em tabelas, como:

  • Criar/gerenciar snapshots de tabelas: Isso proporciona a capacidade de ter um controle de versão robusto.
  • Planejamento e execução de consultas rápidas com seus metadados altamente otimizados
  • Ferramentas integradas para manutenção de tabelas, como compactação e limpeza de arquivos órfãos

O Iceberg foi projetado para trabalhar com todos os principais armazenamento em nuvem, como AWS S3, GCS e Azure Blob Storage. Além disso, o Iceberg integra-se facilmente com motores de processamento de dados, como Spark, Presto, Trino e Hive.

Considerações Finais

Esses recursos destacados permitem que as empresas construam lagos de dados modernos, flexíveis, escaláveis e eficientes, que podem fazer viagens no tempo, lidar facilmente com mudanças de esquema, suportar transações ACID e evolução de partições.

Source:
https://dzone.com/articles/key-features-of-apache-iceberg-for-data-lakes