Lagos de dados modernos - AWS Recomendações da

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Lagos de dados modernos

Casos de uso avançados em lagos de dados modernos

Os data lakes oferecem uma das melhores opções para armazenar dados em termos de custo, escalabilidade e flexibilidade. Você pode usar um data lake para reter grandes volumes de dados estruturados e não estruturados a um custo baixo e usar esses dados para diferentes tipos de cargas de trabalho de análise, desde relatórios de business intelligence até processamento de big data, análises em tempo real, aprendizado de máquina e inteligência artificial generativa (IA), para ajudar a orientar melhores decisões.

Apesar desses benefícios, os data lakes não foram projetados inicialmente com recursos semelhantes aos de bancos de dados. Um data lake não fornece suporte à semântica de processamento de atomicidade, consistência, isolamento e durabilidade (ACID), que você pode precisar para otimizar e gerenciar com eficiência seus dados em grande escala para centenas ou milhares de usuários usando uma infinidade de tecnologias diferentes. Os data lakes não fornecem suporte nativo para as seguintes funcionalidades:

  • Realizar atualizações e exclusões eficientes em nível de registro à medida que os dados mudam em sua empresa

  • Gerenciando o desempenho das consultas à medida que as tabelas crescem para milhões de arquivos e centenas de milhares de partições

  • Garantindo a consistência dos dados entre vários escritores e leitores simultâneos

  • Prevenir a corrupção de dados quando as operações de gravação falham no meio da operação

  • Esquemas de tabela em evolução ao longo do tempo sem reescrever (parcialmente) conjuntos de dados

Esses desafios se tornaram particularmente predominantes em casos de uso, como lidar com captura de dados alterados (CDC) ou casos de uso relacionados à privacidade, exclusão de dados e ingestão de dados por streaming, o que pode resultar em tabelas abaixo do ideal.

Os data lakes que usam as tabelas tradicionais no formato Hive oferecem suporte a operações de gravação somente para arquivos inteiros. Isso torna as atualizações e exclusões difíceis de implementar, demoradas e caras. Além disso, controles e garantias de concorrência oferecidos em sistemas compatíveis com ACID são necessários para garantir a integridade e a consistência dos dados.

Para ajudar a superar esses desafios, o Apache Iceberg fornece uma funcionalidade adicional semelhante a um banco de dados que simplifica a sobrecarga de otimização e gerenciamento de lagos de dados, ao mesmo tempo em que oferece suporte ao armazenamento em sistemas econômicos, como o Amazon Simple Storage Service (Amazon S3).

Introdução ao Apache Iceberg

O Apache Iceberg é um formato de tabela de código aberto que fornece recursos em tabelas de data lake que, historicamente, estavam disponíveis apenas em bancos de dados ou data warehouses. Ele foi projetado para oferecer escala e desempenho e é adequado para gerenciar tabelas com mais de centenas de gigabytes. Algumas das principais características das mesas Iceberg são:

  • Excluir, atualizar e mesclar.O Iceberg suporta comandos SQL padrão para armazenamento de dados para uso com tabelas de data lake.

  • Planejamento rápido de escaneamento e filtragem avançada. O Iceberg armazena metadados, como estatísticas em nível de partição e coluna, que podem ser usados pelos mecanismos para acelerar o planejamento e a execução de consultas.

  • Evolução completa do esquema. O Iceberg suporta adicionar, descartar, atualizar ou renomear colunas sem efeitos colaterais.

  • Evolução da partição. Você pode atualizar o layout da partição de uma tabela à medida que o volume de dados ou os padrões de consulta mudam. O Iceberg suporta a alteração das colunas nas quais uma tabela é particionada, a adição ou remoção de colunas de partições compostas.

  • Particionamento oculto.Esse recurso impede a leitura automática de partições desnecessárias. Isso elimina a necessidade de os usuários entenderem os detalhes de particionamento da tabela ou adicionarem filtros extras às consultas.

  • Reversão da versão. Os usuários podem corrigir problemas rapidamente voltando ao estado anterior à transação.

  • Viagem no tempo. Os usuários podem consultar uma versão anterior específica de uma tabela.

  • Isolamento serializável. As alterações na tabela são atômicas, portanto, os leitores nunca veem alterações parciais ou não confirmadas.

  • Escritores simultâneos. O Iceberg usa simultaneidade otimista para permitir que várias transações sejam bem-sucedidas. Em caso de conflito, um dos redatores precisa repetir a transação.

  • Formatos de arquivo abertos. O Iceberg suporta vários formatos de arquivo de código aberto, incluindo Apache Parquet, Apache Avro e Apache ORC.

Em resumo, os data lakes que usam o formato Iceberg se beneficiam da consistência transacional, da velocidade, da escala e da evolução do esquema. Para obter mais informações sobre esses e outros recursos do Iceberg, consulte a documentação do Apache Iceberg.

AWS suporte para Apache Iceberg

O Apache Iceberg é suportado por estruturas populares de processamento de dados de código aberto, como Serviços da AWS Amazon EMR, Amazon Athena,Amazon Redshift e. AWS Glue O diagrama a seguir mostra uma arquitetura de referência simplificada de um data lake baseado no Iceberg.

Arquitetura transacional de data lake

Os itens a seguir Serviços da AWS fornecem integrações nativas do Iceberg. Existem outros Serviços da AWS que podem interagir com o Iceberg, indiretamente ou empacotando as bibliotecas do Iceberg.

  • O Amazon S3 é o melhor lugar para criar lagos de dados devido à sua durabilidade, disponibilidade, escalabilidade, segurança, conformidade e recursos de auditoria. O Iceberg foi projetado e construído para interagir perfeitamente com o Amazon S3 e fornece suporte para muitos recursos do Amazon S3, conforme listado na documentação do Iceberg.

  • 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, Flink, Trino e Hive. O Amazon EMR pode ser executado em clusters personalizados do Amazon Elastic Compute Cloud (Amazon EC2), no Amazon Elastic Kubernetes Service (Amazon EKS) ou no Amazon EMR Serverless. AWS Outposts

  • O Amazon Athena é um serviço de análise interativo e sem servidor baseado em estruturas de código aberto. Ele suporta formatos de tabela aberta e de arquivo e fornece uma maneira simplificada e flexível de analisar petabytes de dados onde eles estão. O Athena fornece suporte nativo para consultas de leitura, viagem no tempo, gravação e DDL para o Iceberg e usa o AWS Glue Data Catalog metastore for Iceberg.

  • O Amazon Redshift é um data warehouse em nuvem na escala de petabytes que oferece suporte a opções de implantação baseadas em cluster e sem servidor. O Amazon Redshift Spectrum pode consultar tabelas externas registradas e armazenadas no Amazon S3. AWS Glue Data Catalog O Redshift Spectrum também fornece suporte para o formato de armazenamento Iceberg.

  • 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. AWS Glue As versões 3.0 e posteriores oferecem suporte à estrutura Iceberg para lagos de dados. Você pode usar AWS Glue para realizar operações de leitura e gravação em tabelas Iceberg no Amazon S3 ou trabalhar com tabelas Iceberg usando o. AWS Glue Data Catalog Operações adicionais, como inserção, atualização, consultas do Spark e gravações do Spark, também são suportadas.

  • AWS Glue Data Catalogfornece um serviço de catálogo de dados compatível com o Hive metastore que suporta tabelas Iceberg.

  • Crawler do AWS Gluefornece automações para registrar tabelas Iceberg no. AWS Glue Data Catalog

  • A Amazon SageMaker suporta o armazenamento de conjuntos de recursos na Amazon SageMaker Feature Store usando o formato Iceberg.

  • AWS Lake Formationfornece permissões de controle de acesso gerais e refinadas para acessar dados, incluindo tabelas Iceberg consumidas pelo Athena ou pelo Amazon Redshift. Para saber mais sobre o suporte de permissões para tabelas Iceberg, consulte a documentação do Lake Formation.

AWS tem uma ampla variedade de serviços que oferecem suporte ao Iceberg, mas cobrir todos esses serviços está além do escopo deste guia. As seções a seguir abordam o Spark (streaming estruturado e em lote) no Amazon EMR AWS Glue e também no Amazon Athena SQL. A seção a seguir fornece uma visão rápida do suporte do Iceberg no Athena SQL.