Pular para o conteúdo principal

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 populares de processamento de dados, 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 seus 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 que seja bem-sucedido ou fracassado completamente; não há status intermediário.

  • A consistência garante que todos os dados gravados sejam válidos de acordo com as regras definidas do data lake, garantindo que os dados sejam precisos e confiáveis.

  • O isolamento garante que várias transações possam ocorrer ao mesmo tempo sem interferir umas nas outras, garantindo que cada transação seja executada de forma independente.

  • Durabilidade significa que os dados não são perdidos ou corrompidos depois que uma transação é enviada. Os dados podem ser recuperados em caso de falha do sistema, como queda de energia.

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 popular que é frequentemente usada em todos os tipos de aplicativos. 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 lagos de dados e realize a maioria das operações de data lake sem precisar aprender um novo idioma.

  • Consistência de dados: o Apache Iceberg fornece consistência de dados para garantir que qualquer usuário que leia e grave nos dados veja 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.

  • Controle de versão de dados: o Apache Iceberg fornece suporte para controle de versão 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 suporta 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 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 o desempenho 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 precisar republicar todo o conjunto de dados.

  • Tabelas de dados em lagos de dados 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 de dados e cientistas de dados estão entre as pessoas 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.  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. Ele traz os seguintes benefícios:

  1. Código aberto: o Apache Iceberg é um projeto de código aberto, o que significa que ele é gratuito e pode ser personalizado para atender às suas necessidades específicas. Ele também tem 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 com eficiência. Ele pode particionar e organizar dados em vários nós, o que ajuda a distribuir a carga de trabalho e acelerar o processamento de dados.

  3. Desempenho: o Apache Iceberg tem uma variedade de recursos para otimizar o desempenho da consulta, incluindo técnicas de compressão e armazenamento em colunas, como push down de predicados e evolução de esquemas.

  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 precisar reescrever suas consultas ou reconstruir suas 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 consistência e confiabilidade dos dados por meio de seu suporte para transações. Você pode acompanhar como os dados mudam ao longo do tempo e reverter para versões históricas para ajudá-lo a corrigir problemas.

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 Redshift , Amazon Athena , Amazon EMR , AWS Glue e Amazon Data Firehose , incluem suporte nativo para estruturas de data lake transacionais, incluindo o Apache Iceberg. O Apache Iceberg, em combinação com os serviços compatíveis da AWS, permite um data lake transacional, geralmente baseado no armazenamento no S3.

  • O Amazon Redshift é um serviço de análise e armazenamento de dados de SQL totalmente gerenciado e baseado em IA para impulsionar a tomada de decisões comerciais para os clientes de forma rápida e econômica. O Amazon Redshift fornece uma arquitetura de Processamento Paralelo Massivo (MPP) para diversos clusters e com tecnologia sem servidor com funcionalidades zero-ETL que impulsionam análises quase em tempo real e aplicações de IA e de ML com compartilhamento de dados. Os clientes podem usar o Amazon Redshift para consultar tabelas do Apache Iceberg no data lake, acessadas por meio do catálogo de dados do AWS Glue, e juntá-las às suas tabelas no data warehouse para obter análises abrangentes.

  • 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 usam o formato Apache Parquet para dados e o catálogo do AWS Glue para seu metastore.

  • O Amazon EMR é uma solução de big data para processamento de dados em escala de petabytes, análise interativa e aprendizado de máquina usando 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. Frameworks EMR, incluindo Spark, Trino, Flink e Hive, oferecem suporte ao Apache Iceberg.

  • O AWS Glue é um serviço de integração de dados sem servidor que facilita a descoberta, a preparação, a movimentação e a integração de dados de várias fontes para análise, aprendizado de máquina (ML) e desenvolvimento de aplicativos.  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. Operações adicionais, incluindo inserção, atualização e todas as consultas do Spark e gravações do Spark, também são suportadas.

  • O Amazon Data Firehose é um serviço totalmente gerenciado e sem servidor para fornecer dados de streaming em tempo real para destinos como Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch Serverless, Splunk, Snowflake, Apache Iceberg Tables e qualquer endpoint HTTP personalizado de propriedade de provedores de serviços terceirizados compatíveis, incluindo Datadog, Dynatrace, LogicMonitor, MongoDB, New Relic, Coralogix e Elastic. Com o Amazon Data Firehose, você não precisa criar aplicações nem gerenciar recursos. Você configura os produtores de dados para enviar dados ao Amazon Data Firehose e ele entrega automaticamente os dados ao destino especificado. Você também pode configurar o Amazon Data Firehose para transformar seus dados antes de entregá-los.

Browse all cloud computing concepts

Browse all cloud computing concepts content here:

Carregando
Carregando
Carregando
Carregando
Carregando

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages