Benefícios do Apache Iceberg

Explorando os benefícios do Apache Iceberg

Suporte abrangente a utilização de Compute Engine

A abstração superior do kernel do Iceberg garante que ele não esteja vinculado a nenhum mecanismo de computação e query específico, fornecendo amplo suporte para estruturas de processamento populares como Spark, Flink, Hive, StarRocks, Druid, etc. Essa flexibilidade permite que os usuários integrem o Iceberg perfeitamente em sua infraestrutura de dados existente, aproveitando a API Java nativa para acesso direto às tabelas do Iceberg sem serem limitados pela escolha do mecanismo de computação.

Organização flexível de Arquivos

O formato de tabela Iceberg apresenta estratégias inovadoras de organização de dados que suportam modelos computacionais stream-based ou batch-full-table. Essa versatilidade garante que as tarefas em batch ou de streaming em tempo-real possam operar no mesmo modelo de armazenamento, como HDFS ou OZONE, um mecanismo de armazenamento de última geração desenvolvido pela comunidade Hadoop. Ao permitir o particionamento oculto e a a evolução do layout da partição, o Iceberg facilita atualizações na estratégia de particionamento de dados, suportando uma variedade de formatos de armazenamento, incluindo Parquet, ORC e Avro. Essa abordagem não apenas elimina os silos de dados, mas também ajuda na criação de serviços de armazenamento de data lakea que sejam leves e mais cost-effective.

Fluxo de trabalho de Ingestão de Dados otimizado

Com seus recursos de transação ACID (Atomicidade, Consistência, Isolamento, Durabilidade), o Iceberg garante que os dados recém-ingeridos sejam imediatamente visíveis, simplificando significativamente o processo de ETL, eliminando o impacto nas tarefas atuais de processamento de dados. O suporte da plataforma para upserts (update + insert) e merge em operações no nível de linha reduz ainda mais a latência envolvida na ingestão de dados, simplificando o fluxo geral de dados para o data lakehouse.

Recursos de Leitura Incremental

Um dos recursos de destaque do Iceberg é o suporte para leitura de dados incrementais em streaming, permitindo uma forte integração com os principais mecanismos de computação de código aberto para ingestão e análise de dados. Esse recurso é complementado pelo suporte integrado para Spark Structured Streaming e Flink Table Source, permitindo fluxos de trabalho sofisticados de análise de dados. Além disso, a capacidade do Iceberg de realizar rastreamento de versão histórica aumenta a confiabilidade e a auditabilidade dos dados, oferecendo informações valiosas sobre a evolução dos dados ao longo do tempo.

Onde e quando usar o Apache Iceberg

Como um dos principais componentes de uma solução universal de data lakehouse, o Iceberg é adequado principalmente para os seguintes cenários:

Importação e Consulta de dados em Tempo Real

Os dados fluem em tempo real do upstream para o data lakehouse Iceberg, onde podem ser consultados imediatamente. Por exemplo, em cenários de leitura de log à medida que as transações ocorrem, os jobs de streaming do Iceberg ou do Spark são iniciados para importar dados do log para tabelas do Iceberg em tempo real. Esses dados podem ser consultados em tempo real usando Hive, Spark, Iceberg , Presto, Druid, StarRocks entre outros. Além disso, o suporte do Iceberg para transações ACID garante o isolamento do fluxo de entrada e consulta de dados, evitando dados sem integridade.

Exclusão ou Atualização de dados

A maioria dos data warehouses tem dificuldade para executar com eficiência exclusões ou atualizações de dados em nível de linha, normalmente exigindo a execução de jobs offline para extrair os dados brutos de toda a tabela, modificá-los e gravá-los de volta na tabela original. O Iceberg, no entanto, restringe o escopo das alterações do nível da tabela para o nível do arquivo, permitindo que as alterações sejam mais localizadas em pontos específicos para executar a lógica de negócios que faz modificações ou exclusões de dados. No data lakehouse do Iceberg, você pode executar comandos diretamente como DELETE FROM categoria WHERE id > 10 para fazer alterações nos dados da tabela.

Controle de Qualidade de Dados

Com a função de validação do Iceberg Schema, dados anormais são excluídos durante a importação de dados ou processamento adicional é realizado em dados anormais.

Alterações no Esquema de Dados

O esquema dos dados não é fixo e pode mudar. O Iceberg dá suporte a alterações na estrutura da tabela usando as instruções DDL do Spark SQL. Ao alterar a estrutura da tabela no Iceberg, não é necessário reexportar todos os dados históricos de acordo com o novo esquema, o que acelera muito o processo de alteração do esquema. Além disso, o suporte do Iceberg para transações ACID isola efetivamente as alterações de esquema para que não afetem as tarefas de leitura existentes, permitindo que você acesse dados consistentemente precisos.

Machine Learning em Tempo real

Em cenários de machine learning, uma quantidade significativa de tempo geralmente é gasta processando dados, como limpeza, transformação e extração de recursos, bem como lidando com dados históricos e em tempo real. O Iceberg simplifica esse fluxo de trabalho, transformando todo o processo de tratamento de dados em um fluxo completo e confiável em tempo real. Operações como limpeza de dados, transformação e engenharia de features (Fatores de Influência de Machine Learning) são ações que ocorrem de forma distribuída em nós durante a ingestão do streaming de dados, eliminando a necessidade de lidar com dados históricos e em tempo real separadamente. Além disso, o Iceberg também oferece suporte a um SDK Python nativo, tornando-o muito fácil de usar para desenvolvedores de algoritmos de machine learning.


Publicado

em

por

Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *