Pular para o conteúdo principal

Explicação do Apache Iceberg: Um guia completo para iniciantes

Saiba como o Apache Iceberg simplifica o gerenciamento de dados em lagos e lakehouses. Descubra seus principais recursos, obtenha instruções de configuração passo a passo e otimize seus fluxos de trabalho de dados!
Actualizado 16 de jan. de 2025  · 17 min de leitura

Se você trabalha com processamento de big data, sabe que gerenciar e analisar arquivos de dados desorganizados pode ser desafiador e propenso a erros. O risco de perder dados valiosos devido a um simples erro, como um comando de exclusão acidental, é uma preocupação constante.

O Apache Iceberg aborda esses desafios fornecendo um formato de tabela robusto e confiável que suporta reversões e restaura estados anteriores dos seus dados. Isso garante a integridade e a consistência dos dados, tornando o gerenciamento de dados mais eficiente e menos propenso a erros.

Neste tutorial, explicaremos o que é o Apache Iceberg, por que ele é usado e como funciona. Você também aprenderá como começar a usá-lo por meio de instruções práticas e passo a passo, permitindo que você gerencie e analise seus dados com mais eficiência.

O que é o Apache Iceberg?

O Apache Iceberg é um formato de tabela aberto projetado para lidar com grandes conjuntos de dados analíticos de forma eficiente. Ele fornece uma estrutura de tabela de alto desempenho que traz os benefícios dos bancos de dados tradicionais, como consulta SQL, conformidade com ACID e particionamento, para seus arquivos de dados.

Essencialmente, o Apache Iceberg funciona como uma lente, permitindo que você visualize e gerencie uma coleção de arquivos de dados como se fossem uma única tabela coesa.

A principal vantagem do Apache Iceberg é sua capacidade de lidar com dados em grande escala de forma altamente otimizada. Ele oferece suporte a recursos como evolução de esquema, particionamento oculto e deslocamento no tempo, tornando-o uma solução robusta para o gerenciamento de fluxos de trabalho de dados complexos.

Ao abstrair as complexidades dos formatos de armazenamento subjacentes, o Iceberg permite o gerenciamento e a consulta eficientes dos dados, tornando-o a opção ideal para o processamento de Big Data.

História do Apache Iceberg

A Netflix desenvolveu o Apache Iceberg em 2017 para solucionar as limitações do Hive, principalmente no tratamento de processamento incremental e dados de streaming. Em 2018, a Netflix doou o Iceberg para a Apache Software Foundation, tornando-o um projeto de código aberto.

Desde então, o Apache Iceberg se tornou a pedra angular das arquiteturas modernas de data lake, com ampla adoção em vários setores. 

O projeto tem evoluído continuamente, incorporando recursos como particionamento oculto e evolução de esquemas para atender às demandas de ambientes de dados em grande escala.

Em 2024, a Databricks anunciou seu acordo para adquirir a Tabular, uma empresa de gerenciamento de dados fundada pelos criadores originais do Apache Iceberg. Essa aquisição visa unificar o Apache Iceberg e o Delta Lake, aprimorando a compatibilidade de dados e impulsionando a evolução para um padrão de interoperabilidade único e aberto.

Linha do tempo da evolução do Apache Iceberg

Ano

Evento

2017

A Netflix desenvolve o Apache Iceberg para resolver as limitações do Hive, especialmente para processamento incremental e dados de streaming.

2018

A Netflix doa o Apache Iceberg para a Apache Software Foundation, tornando-o um projeto de código aberto.

2019

O Apache Iceberg é adotado por vários setores por seus recursos de gerenciamento de dados dimensionáveis e eficientes. São apresentados recursos como a evolução do esquema e o particionamento oculto.

2020

As contribuições e a adoção da comunidade continuam a crescer, com melhorias no desempenho e novos recursos, como viagem no tempo e gerenciamento de metadados.

2021

O Apache Iceberg ganha força significativa como o formato de tabela preferido para lagos de dados, integrando-se às principais ferramentas e plataformas de big data.

2022

Novos recursos e otimizações foram adicionados, aprimorando o suporte do Iceberg para fluxos de trabalho de dados complexos e ambientes de dados em grande escala.

2023

O Apache Iceberg continua a evoluir com foco no aprimoramento da compatibilidade e interoperabilidade de dados com outros formatos e sistemas de dados.

2024

A Databricks anunciou seu acordo para adquirir a Tabular. Essa aquisição tem o objetivo de unificar a Iceberg e a Delta Lake.

Para que é usado o Apache Iceberg?

Como vimos anteriormente, o Apache Iceberg é uma ferramenta avançada para o gerenciamento e a análise de dados em ambientes de grande escala.

Aqui você encontra uma visão geral mais específica do uso do Apache Iceberg.

Análise de dados

O uso de formatos de arquivo como ORC ou Parquet é fácil de implementar, mas a execução de análises neles é ineficiente. No entanto, o Iceberg fornece a eles um formato de tabela com informações de metadados para otimizar as consultas.

Por exemplo, os arquivos de dados brutos não armazenam informações sobre a tabela a que pertencem, mas os arquivos de metadados do Iceberg armazenam. Isso permite que os mecanismos de consulta decidam quais tabelas devem ser lidas e quais devem ser ignoradas, melhorando significativamente a eficiência da consulta.

Os arquivos de metadados armazenam esse tipo de informação para uma consulta eficiente. As linguagens de consulta primeiro pesquisam o nome do arquivo relevante nos metadados e buscam apenas esse arquivo para uma consulta rápida, reduzindo leituras de dados desnecessárias.

Poda de partição

A poda de partição é uma técnica que ignora dados irrelevantes e executa operações somente nos dados necessários. 

Por exemplo, se a coluna de partição for "data" e você especificar um intervalo de datas específico, a consulta lerá somente os dados dentro desse intervalo. Isso reduz a quantidade de dados lidos do disco, tornando a consulta às tabelas do Iceberg mais rápida e eficiente.

Viagem no tempo

A viagem no tempo é um recurso que permite que você acesse versões mais antigas dos seus dados, obtendo instantâneos de um ponto específico no tempo.

Um snapshot é um conjunto completo de arquivos de dados em um determinado momento. 

Os arquivos de metadados rastreiam IDs de snapshot, registros de data e hora e detalhes do histórico, permitindo o acesso a cada snapshot por seu ID ou registro de data e hora.

Integrações

Muitos sistemas de armazenamento populares, como o Google Cloud, o AWS e o Microsoft Azure, são compatíveis com o formato de tabela Iceberg. Você pode armazenar arquivos de dados nessas plataformas de nuvem e usar um serviço de catálogo externo ou integrado para apontar para seus metadados. 

Depois que o serviço de catálogo estiver configurado, você poderá usar estruturas de processamento de big data como o Apache Spark ou o Apache Flink

O Iceberg também oferece suporte a vários mecanismos de consulta, como SQL, Trino e Presto, permitindo uma integração perfeita com os fluxos de trabalho de dados existentes.

Comunidade

O Apache Iceberg tem uma comunidade ativa e uma presença on-line em várias plataformas de colaboração, como Twitter e Github. Ele também tem um espaço de trabalho Slack dedicado para aqueles que desejam participar das últimas conversas sobre desenvolvimento.

Os colaboradores de código aberto e os desenvolvedores do Iceberg estão acessíveis à comunidade de aprendizagem por meio de plataformas sociais. Isso facilita a obtenção de uma solução quando você encontra problemas ao implementar os recursos do Iceberg. 

Conceitos básicos do Apache Iceberg

O Apache Iceberg apresenta um conjunto de conceitos básicos que permitem o gerenciamento e a consulta eficientes de dados. Nesta seção, vamos analisá-los.

Gerenciamento de metadados

O Iceberg gerencia esquemas de tabelas, partições, locais de arquivos e muito mais por meio de sua camada de metadados, que mantém metadados, listas de manifestos e arquivos de manifestos no formato JSON

  • Arquivo de metadados: rastreia o esquema e as partições da tabela. 
  • Arquivos de manifesto: contêm informações no nível do arquivo, como o local, o tamanho, a partição e as estatísticas de linha e coluna de um arquivo de dados. 

O Iceberg oferece suporte ao controle de versão por meio de metadados de instantâneos. Ele armazena detalhes sobre o registro de data e hora do instantâneo, a partição e os arquivos de dados relevantes. Um instantâneo é uma visualização de todos os seus dados em um ponto específico no tempo. 

Evolução do esquema 

A evolução do esquema é o processo de modificação de um esquema de tabela para acomodar novos elementos de dados ou necessidades variáveis. O Apache Iceberg oferece suporte à evolução de esquemas nativos, permitindo atualizações de esquemas sem reescritas ou migrações de dados dispendiosas.

Por exemplo, se você estiver mantendo dados de funcionários e quiser adicionar uma nova coluna para métricas de desempenho, poderá adicionar uma coluna "employee_performance". O Iceberg atualiza seus metadados para incluir essa coluna sem afetar os dados existentes. A nova coluna inicialmente tem valores padrão e é atualizada à medida que novos registros são inseridos.

Particionamento

O particionamento divide os dados em subconjuntos menores, permitindo que você acesse apenas os dados necessários para uma consulta, em vez de ler todo o conjunto de dados. 

O Iceberg oferece suporte a muitas estratégias de particionamento, por exemplo:

  • Particionamento de faixas: Divide os dados com base em um intervalo de valores na coluna de partição, como datas específicas, valores numéricos ou entradas de cadeia.
  • Particionamento de hash: Aplica uma função de hash à chave de partição para dividir os dados.
  • Truncar o particionamento: Trunca os valores de uma coluna de partição e agrupa os dados. Por exemplo, o truncamento dos códigos postais 533405, 533404, 533689, 533098, 535209 e 535678 para 3 dígitos agrupa os dados em "533" e "535".
  • Particionamento de listas: Faz a correspondência entre os valores da chave de partição e os valores em uma lista, dividindo os dados de acordo. Isso é adequado para valores categóricos na coluna de partição. Por exemplo, dividir as empresas de laptops em grupos como "Lenovo", "Apple" e "HP".

Instantâneos

Um instantâneo é um conjunto de arquivos de manifesto válidos em um ponto específico no tempo. Cada alteração que você faz nos dados cria um novo snapshot com arquivos de manifesto e metadados atualizados. 

O Iceberg segue a consulta baseada em instantâneos, o que significa que você pode acessar todo o conjunto de arquivos de dados em um ponto específico no tempo, acessando um carimbo de data/hora específico. Isso permite que você acesse dados históricos e reverta para versões anteriores em caso de perda de dados.

Arquitetura técnica do Apache Iceberg

O Apache Iceberg não armazena dados em tabelas. Em vez disso, ele organiza os arquivos de dados para mostrá-los como uma única tabela. 

Vamos analisar a arquitetura que torna isso possível. 

Arquitetura técnica do Apache Iceberg

Fonte da imagem

Catálogo Iceberg

A camada de catálogo contém uma referência ou um ponteiro para o arquivo de metadados atual da tabela. Sempre que você altera os dados, um novo arquivo de metadados é gravado, e o ponteiro agora aponta para o arquivo de metadados mais recente no log.

Essa camada facilita a conformidade com ACID nas tabelas do Iceberg. Por exemplo, as alterações em andamento não são visíveis para outras transações até que sejam concluídas e confirmadas na tabela. Até então, o ponteiro se refere ao arquivo de metadados atual.

Em geral, os catálogos simplificam o gerenciamento da conformidade com ACID nas tabelas do Iceberg, apontando para versões específicas de arquivos de metadados. 

Camada de metadados

Essa camada contém três tipos de arquivos:

  • Arquivos de metadados: Esses arquivos armazenam o esquema da tabela, o local, as informações da partição, os carimbos de data e hora do instantâneo e outras informações.
  • Arquivos de manifesto: Os arquivos de manifesto rastreiam os metadados no nível do arquivo. Eles armazenam informações de partição, estatísticas como contagem de linhas, contagem de colunas, detalhes de snapshot e formato de arquivo para cada arquivo de dados. 
  • Listas de manifestos: Um grupo de arquivos de manifesto que compõem um único snapshot é uma lista de manifesto.

Essa camada mantém a estrutura e a integridade da tabela, permitindo a consulta e o gerenciamento eficientes dos dados.

Camada de dados

A camada de dados é o componente de armazenamento da arquitetura Iceberg, onde residem os dados reais. 

O Iceberg é compatível com vários formatos de dados, incluindo Parquet, ORC e Avro. Essa flexibilidade permite o armazenamento otimizado e o processamento eficiente de dados, atendendo a diferentes tipos de dados e casos de uso.

Integração e compatibilidade com o Apache Iceberg

O Apache Iceberg se integra a muitas estruturas populares de processamento de Big Data e mecanismos de computação.

Integrações com mecanismos de processamento de dados

Apache Spark

As tabelas Iceberg funcionam como grandes sistemas de armazenamento de dados nos quais você pode usar as APIs do Spark para ler e gravar dados. Além da API de dataframe, você pode usar o módulo Spark SQL para consultar tabelas do Iceberg. 

O Apache Spark tem dois catálogos: org.apache.iceberg.spark.SparkCatalog e org.apache.iceberg.spark.SparkSessionCatalog. Esses catálogos ajudam o Spark a descobrir e acessar os metadados disponíveis das tabelas do Iceberg.

  • metadataorg.apache.iceberg.spark.SparkCatalog: Para usar serviços de catálogo externos, como o Hive ou o Hadoop.
  • org.apache.iceberg.spark.SparkSessionCatalog: O catálogo integrado do Spark pode lidar com tabelas Iceberg e não Iceberg na mesma sessão. 

A integração do Apache Flink e do Iceberg é conhecida pelo processamento de dados de fluxo contínuo. Essa integração permite que você transmita dados diretamente de várias fontes para tabelas do Iceberg e facilita a realização de análises em dados de streaming em tempo real.    

Presto e Trino 

O Preso e o Trino são conhecidos por seus recursos de processamento rápido de dados em comparação com o Hive ou outros mecanismos SQL. Portanto, se você tiver dados massivos que precisem ser consultados e analisados, a integração entre o Iceberg e o Presto/Trino é uma ótima opção. 

O Trino não tem seu catálogo integrado. Ele depende de serviços de catálogo externos, como o Hive Metastore ou o AWS Glue, para apontar para as tabelas do Iceberg. 

Compatibilidade com o lago de dados

Os data lakes tradicionais não oferecem suporte às propriedades ACID, o que leva a leituras de dados incompletas ou gravações de dados simultâneas. No entanto, a integração de um data lake com um Iceberg garante a consistência e a precisão dos dados.  

  • Amazon S3: O Amazon S3 é um serviço popular de armazenamento em nuvem que suporta vários formatos de arquivo. Ele é usado como a camada de armazenamento na arquitetura do data lake. Para usar o Iceberg com o S3, você usará o AWS glue como serviço de catálogo. Depois que o catálogo estiver configurado, você poderá usar qualquer linguagem de consulta para analisar as tabelas. 
  • Google Cloud Storage: Um data lake no Google Cloud oferece uma arquitetura de dados mais escalável e flexível. Muitas empresas com infraestrutura de dados criada com base no Google Cloud podem aproveitar o formato de tabela Iceberg. As tabelas do Iceberg podem ser consultadas usando o BigQuery do Google ou linguagens de consulta padrão. 
  • Armazenamento de Blob do Azure: Esse é o sistema de armazenamento da Microsoft otimizado para armazenar grandes quantidades de dados não estruturados na nuvem. O Iceberg se integra ao Azure e fornece acesso rápido e confiável aos dados. 

Apache Iceberg vs Delta Lake

O Apache Iceberg e o Delta Lake são formatos de tabela avançados projetados para trazer propriedades ACID aos data lakes, mas diferem em seus recursos, integrações e casos de uso. 

Aqui está uma comparação detalhada dos dois:

Visão geral do Delta Lake

O Delta Lake é um formato de tabela que fornece propriedades ACID a uma coleção de arquivos Parquet, garantindo que os leitores nunca vejam dados inconsistentes. 

Desenvolvido pela Databricks, a empresa por trás do Apache Spark, o Delta Lake é altamente compatível com o Spark para processamento e análise de Big Data.

O Delta Lake usa registros transacionais para gerenciar os recursos de viagem no tempo. Um log de transações é uma lista de arquivos JSON que rastreiam as alterações feitas na tabela. Cada inserção, exclusão ou atualização leva a um novo arquivo de registro que rastreia as alterações específicas. 

O Delta Lake cria periodicamente arquivos de ponto de verificação, que representam instantâneos de toda a tabela em pontos específicos no tempo e são armazenados no formato Parquet.

Apache Iceberg vs. Comparação de recursos do Delta Lake

Recurso

Iceberg Apache 

Delta Lake 

Definição

O formato de tabela Iceberg oferece uma infraestrutura dimensionável com suporte para vários mecanismos de processamento.

O Delta Lake é uma camada de armazenamento confiável, especialmente adequada para o ecossistema da Databricks

Formato do arquivo

O Iceberg é compatível com vários formatos de arquivo, incluindo Parquet, Avro e ORC.

O Delta Lake suporta nativamente apenas o formato de arquivo Parquet.

Suporte a propriedades ACID

O Iceberg é compatível com transações ACID. 

O Delta Lake oferece propriedades ACID robustas. 

Manuseio de partições

O Iceberg oferece suporte ao particionamento dinâmico, o que significa que as partições podem ser atualizadas sem a necessidade de reescrever o esquema. 

As partições são constantes e você deve defini-las ao criar tabelas. A modificação de partições definidas pode envolver a reescrita de dados. 

Viagem no tempo

Cada alteração feita na tabela cria um novo snapshot.

Ele oferece recursos de viagem no tempo por meio de registros de transações, com alterações rastreadas em arquivos JSON.

Integrações 

O Iceberg oferece suporte a vários mecanismos de processamento de dados, como SQL, Spark, Trino, Hive, Flink, Presto e outros.

O Delta Lake é fortemente acoplado ao Apache Spark.

Apache Iceberg vs. Casos de uso do Delta Lake

Caso de uso

Iceberg Apache

Delta Lake

Flexibilidade do motor

É melhor quando você usa vários mecanismos, incluindo Apache Spark, Flink, Presto, Hive, etc. É ideal para ambientes que precisam de diferentes mecanismos para diferentes tarefas de processamento.

Melhor para os usuários que usam nativamente o Apache Spark, oferecendo forte integração e desempenho ideal no ecossistema do Spark.

Fluxo de dados

Suporta a ingestão contínua de dados de várias fontes, processando-os em tempo real.

Ele unifica o processamento em lote e em fluxo, o que é ideal para casos de uso que exigem ambos em um único pipeline.

Apache Iceberg vs. Considerações adicionais sobre o Delta Lake

  • Comunidade e ecossistema: Tanto o Iceberg quanto o Delta Lake têm comunidades ativas e ampla documentação. No entanto, o Delta Lake se beneficia do apoio da Databricks, fornecendo suporte robusto dentro do ecossistema da Databricks.
  • Desempenho: Embora ambos os formatos ofereçam otimizações de desempenho, a forte integração do Delta Lake com o Spark pode beneficiar os fluxos de trabalho centrados no Spark. A flexibilidade do Iceberg com diferentes motores pode proporcionar ganhos de desempenho em ambientes com vários motores.

De modo geral, o Delta Lake é adequado para casos de uso que exigem processamento em tempo real e integração total com o Spark e o ecossistema Databricks. Por outro lado, o Apache Iceberg oferece maior flexibilidade para o processamento de dados em grande escala e a capacidade de escolher o melhor mecanismo para casos de uso específicos.

Primeiros passos com o Apache Iceberg

A instalação e o uso do Apache Iceberg envolvem a configuração do seu ambiente e a compreensão das operações básicas e avançadas. Este guia ajudará você a começar a usá-lo.

Instalação e configuração

Para configurar e executar as tabelas do Iceberg, você precisa ter os seguintes ambientes configurados em seu computador:

  • Java JDK
  • PySpark
  • Python
  • Apache Spark

Também é bom que você tenha um conhecimento básico dessas ferramentas e tecnologias. Você pode aprendê-las nos seguintes cursos:

Quando estiver pronto, você poderá seguir as etapas abaixo para configurar as tabelas do Iceberg:

  1. Faça o download dos arquivos JAR do Iceberg e coloque-os em um diretório em seu computador.
  2. Crie uma nova pasta chamada iceberg-warehouse para armazenar suas tabelas Iceberg.
mkdir iceberg-warehouse
  1. Configure os arquivos jar em uma sessão do Spark, conforme mostrado abaixo.
from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("Iceberg-sample") \
    .config("spark.jars", "jars/iceberg-spark-runtime-<version>.jar") \
    .getOrCreate()

Substitua “jars/iceberg-spark-runtime-.jar” pelo diretório real dos arquivos jar e pela versão que você está usando.

  1. Configure o PySpark para usar tabelas Iceberg.
from pyspark.sql import SparkSession

spark = SparkSession.builder \
    .appName("Iceberg-Sample") \
    .config("spark.jars", "jars/iceberg-spark-runtime-<version>.jar") \
    .config("spark.sql.catalog.catalog_name", "org.apache.iceberg.spark.SparkCatalog") \
    .config("spark.sql.catalog.catalog_name.type", "hadoop") \
    .config("spark.sql.catalog.catalog_name.warehouse", "file:///C:/HP/iceberg-warehouse") \
    .getOrCreate()

Substitua "jars/iceberg-spark-runtime-.jar" pelo caminho e pela versão reais dos arquivos JAR do Iceberg e verifique se o caminho do depósito está correto.

Agora você pode criar e usar tabelas Iceberg usando o PySpark.

Operações básicas

  1. Crie uma tabela Iceberg e insira dados nela.
spark.sql(""" CREATE TABLE my_catalog.emp_table ( id INT, data STRING ) USING iceberg """)
spark.sql(""" INSERT INTO catalog_name.emp_table VALUES (14, 'james'),('15','john')""")
  1. Comando para excluir dados das tabelas do Iceberg.
spark.sql("DELETE FROM catalog_name.emp_table WHERE id = 14")

Operações avançadas

Adicionar, atualizar ou eliminar colunas sem afetar os dados existentes faz parte da evolução do esquema. 

  1. Veja como você pode adicionar uma nova coluna.
spark.sql("ALTER TABLE ADD catalog_name.emp_table COLUMN salary INT")

A evolução da partição significa alterar as colunas da partição sem sobrescrever os arquivos de dados existentes. 

  1. Veja como você pode adicionar uma nova coluna de partição.
spark.sql("ALTER TABLE catalog_name.emp_table ADD PARTITION FIELD emp_join_date")

Essas etapas e comandos fornecem uma estrutura básica para começar a usar o Apache Iceberg e dão a você uma ideia de como é trabalhar com esse formato.

Conclusão

Cobrimos muito hoje; vamos resumir com algumas conclusões importantes. 

O Apache Iceberg oferece uma estrutura de tabela robusta para um conjunto de arquivos de dados, fornecendo suporte para transações ACID e garantindo a consistência e a confiabilidade dos dados.

O formato Iceberg introduz a evolução dinâmica do esquema, o particionamento contínuo e a escalabilidade dos sistemas de armazenamento. Sua integração com mecanismos de processamento de dados, como o Apache Spark e o Flink, permite o manuseio eficiente de dados de streaming em lote e em tempo real.

Se você deseja se aprofundar na arquitetura e no gerenciamento de dados modernos, considere explorar estes recursos adicionais:

Perguntas frequentes

O Apache Iceberg pode lidar com estruturas de dados aninhadas complexas?

Sim, o Apache Iceberg pode lidar com estruturas de dados aninhadas complexas. Ele oferece suporte a tipos de dados aninhados, como structs, mapas e matrizes, o que o torna adequado para uma ampla gama de cenários de dados.

Como o Apache Iceberg garante a consistência dos dados durante gravações simultâneas?

O Apache Iceberg garante a consistência dos dados durante gravações simultâneas usando o controle de simultaneidade otimista. Ele rastreia as alterações com uma camada de metadados com controle de versão e cada operação de gravação cria um novo instantâneo. Se ocorrerem gravações simultâneas, o Iceberg verificará se há conflitos e garantirá que apenas uma gravação seja bem-sucedida, preservando a integridade dos dados.

Quais são as implicações de desempenho do uso do Apache Iceberg em comparação com os data lakes tradicionais?

O Apache Iceberg pode melhorar significativamente o desempenho em comparação com os lagos de dados tradicionais, otimizando o layout dos dados, oferecendo suporte ao particionamento dinâmico e permitindo o gerenciamento de metadados com granularidade fina. Esses recursos reduzem a quantidade de dados digitalizados durante as consultas e melhoram o desempenho geral da consulta.

O Apache Iceberg pode ser usado com soluções de armazenamento em nuvem que não sejam do Hadoop?

Sim, o Apache Iceberg pode ser usado com várias soluções de armazenamento em nuvem, incluindo Amazon S3, Google Cloud Storage e Azure Blob Storage. Ele foi projetado para ser independente de armazenamento, permitindo que você aproveite os recursos do Iceberg em várias plataformas.

Como o Apache Iceberg lida com alterações de esquema sem exigir tempo de inatividade?

O Apache Iceberg lida com alterações de esquema por meio de seu recurso nativo de evolução de esquema. Ele permite que você adicione, remova ou atualize colunas sem precisar de tempo de inatividade ou reescrever os dados existentes. Essas alterações são aplicadas aos metadados, e os novos dados são gravados de acordo com o esquema atualizado.

Existe uma interface de usuário disponível para gerenciar e consultar as tabelas do Iceberg?

Embora o Apache Iceberg não ofereça uma interface de usuário integrada, ele pode ser integrado a várias plataformas de dados e mecanismos de consulta que oferecem interfaces de usuário. Ferramentas como Apache Spark, Trino e Presto podem ser usadas para interagir com as tabelas do Iceberg por meio de suas respectivas interfaces de usuário.

Como o Apache Iceberg se compara a outros formatos de tabela, como o Apache Hudi?

O Apache Iceberg e o Apache Hudi fornecem transações ACID e recursos de viagem no tempo, mas têm filosofias de projeto e casos de uso diferentes. O Iceberg se concentra em fornecer um formato de tabela de alto desempenho com suporte para vários mecanismos, enquanto o Hudi enfatiza a ingestão de dados em tempo real e o processamento incremental. A escolha entre eles depende de casos de uso específicos e das necessidades de integração.

O Apache Iceberg pode ser usado para fluxos de trabalho de aprendizado de máquina?

Sim, o Apache Iceberg pode ser usado para fluxos de trabalho de aprendizado de máquina. Sua capacidade de gerenciar grandes conjuntos de dados com eficiência e o suporte a vários formatos de arquivo (como Parquet e Avro) o tornam adequado para preparar e processar dados para modelos de aprendizado de máquina. A integração com estruturas de processamento de big data, como o Apache Spark, aumenta ainda mais sua utilidade em fluxos de trabalho de ML.

Como o Apache Iceberg lida com a segurança dos dados e o controle de acesso?

O Apache Iceberg conta com os mecanismos subjacentes de armazenamento e processamento para segurança de dados e controle de acesso. Você pode implementar medidas de segurança, como criptografia, políticas de IAM e controles de acesso na camada de armazenamento (por exemplo, Amazon S3, Google Cloud Storage) e na camada de processamento (por exemplo, Apache Spark, Flink). Além disso, os serviços de catálogo, como o AWS Glue e o Hive Metastore, podem ser usados para gerenciar permissões e controles de acesso.


Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana é redatora freelancer de tecnologia e tem um diploma de quatro anos em Ciência da Computação. Escrever sobre vários tópicos, incluindo ciência de dados, computação em nuvem, desenvolvimento, programação, segurança e muitos outros, é algo natural para ela. Ela gosta de literatura clássica e de explorar novos destinos.

Temas

Saiba mais sobre engenharia e gerenciamento de dados com estes cursos!

curso

Introduction to Data Engineering

4 hr
115.8K
Learn about the world of data engineering in this short course, covering tools and topics like ETL and cloud computing.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Contratos de dados desmistificados: Tudo o que você precisa saber

Obtendo escalabilidade em sistemas de dados distribuídos e reduzindo erros.
Mike Shakhomirov's photo

Mike Shakhomirov

24 min

blog

4 etapas para criar um programa de dados bem-sucedido

O diretor de design estratégico, dados, precificação e análise da AXA XL explica como fazer seu programa de dados decolar e implementar uma cultura orientada por dados bem-sucedida.
Joyce Chiu's photo

Joyce Chiu

8 min

tutorial

Um guia completo para armazenamento de dados no AWS com o Redshift

Este guia do AWS Redshift abrange a configuração e o gerenciamento de um data warehouse na nuvem, o carregamento de dados, a execução de consultas complexas, a otimização do desempenho, a integração com ferramentas de BI e fornece práticas recomendadas e dicas de solução de problemas para que você tenha sucesso.
Zoumana Keita 's photo

Zoumana Keita

20 min

tutorial

Primeiros passos com o AWS Athena: Um guia prático para iniciantes

Este guia prático ajudará você a começar a usar o AWS Athena. Explore sua arquitetura e seus recursos e saiba como consultar dados no Amazon S3 usando SQL.
Tim Lu's photo

Tim Lu

28 min

tutorial

Tutorial de armazenamento do AWS: Uma introdução prática ao S3 e ao EFS

O guia completo para armazenamento de arquivos no AWS com S3 e EFS.
Zoumana Keita 's photo

Zoumana Keita

16 min

tutorial

Hierarquias do Power BI: Um guia abrangente

Saiba como criar, editar, excluir e implementar hierarquias no Power BI.
Joleen Bothma's photo

Joleen Bothma

11 min

Ver maisVer mais