Preencher e gerenciar tabelas transacionais - AWS Glue

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á.

Preencher e gerenciar tabelas transacionais

O Apache Iceberg, o Apache Hudi e o Linux Foundation Delta Lake são formatos de tabela de código aberto projetados para lidar com análises de dados em grande escala e workloads de data lake no Apache Spark.

Você pode preencher as tabelas do Iceberg, Hudi e Delta Lake no AWS Glue Data Catalog usando os seguintes métodos:

  • Crawler do AWS Glue: os Crawler do AWS Glues podem descobrir e preencher automaticamente os metadados das tabelas do Iceberg, Hudi e Delta Lake no Catálogo de Dados. Para ter mais informações, consulte Usar crawlers para preencher o catálogo de dados .

  • Trabalhos do AWS Glue ETL: é possível criar trabalhos de ETL para gravar dados nas tabelas do Iceberg, Hudi e Delta Lake e preencher seus metadados no Catálogo de Dados. Para obter mais informações, consulte Usar estruturas de data lake com trabalhos do AWS Glue ETL.

  • Console do AWS Glue, console do AWS Lake Formation, AWS CLI ou API: você pode usar o console do AWS Glue, o console do Lake Formation ou a API da para criar e gerenciar definições de tabelas do Iceberg no Catálogo de Dados.

Criar tabelas no Apache Iceberg

Agora você pode criar tabelas do Apache Iceberg que usam o formato de dados do Apache Parquet no AWS Glue Data Catalog com dados residentes no Amazon S3. Uma tabela no catálogo de dados é a definição de metadados que representa os dados em um armazenamento de dados. Por padrão, o AWS Glue cria tabelas do Iceberg v2. Para saber a diferença entre as tabelas da v1 e v2, consulte Alterações de versão do formato na documentação do Apache Iceberg.

Apache Iceberg é um formato de tabela aberta para conjuntos de dados analíticos muito grandes. O Iceberg permite mudanças fáceis em seu esquema, também conhecido 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. O Iceberg também 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 atributo de viagem no tempo, que permite que os usuários acessem e consultem versões históricas dos dados e analisem as alterações nos dados entre atualizações e exclusões.

Você pode usar o AWS Glue, o console do Lake Formation ou a operação CreateTable na API do AWS Glue para criar uma tabela do Iceberg no Catálogo de Dados. Para obter mais informações, consulte a ação CreateTable (Python: create_table).

Ao criar uma tabela do Iceberg no catálogo de dados, você deve especificar o formato da tabela e o caminho do arquivo de metadados no Amazon S3 para poder realizar leituras e gravações.

Você pode usar o Lake Formation para proteger sua tabela do Iceberg usando permissões de controle de acesso refinadas ao registrar a localização de dados do Amazon S3 com o AWS Lake Formation. Para dados de origem no Amazon S3 e metadados que não estão registrados no Lake Formation, o acesso é determinado pelas políticas de permissões do IAM para ações do Amazon S3 e do AWS Glue. Para obter mais informações, consulte Gerenciar permissões.

nota

O catálogo de dados não oferece suporte à criação de partições e à adição de propriedades da tabela do Iceberg.

Pré-requisitos

Para criar tabelas Iceberg no catálogo de dados e configurar as permissões de acesso aos dados do Lake Formation, você precisa preencher os seguintes requisitos:

  1. Permissões necessárias para criar tabelas do Iceberg sem os dados registrados no Lake Formation.

    Além das permissões necessárias para criar uma tabela no catálogo de dados, o criador da tabela precisa as seguintes permissões:

    • s3:PutObject no recurso arn:aws:s3:::{bucketName}

    • s3:GetObject no recurso arn:aws:s3:::{bucketName}

    • s3:DeleteObject no recurso arn:aws:s3:::{bucketName}

  2. Permissões necessárias para criar tabelas do Iceberg com dados registrados no Lake Formation:

    Para usar o Lake Formation para gerenciar e proteger os dados em seu data lake, registre sua localização no Amazon S3 que tenha os dados para tabelas com o Lake Formation. Isso é para que a Lake Formation possa fornecer credenciais para serviços analíticos AWS como Athena, Redshift Spectrum e Amazon EMR para acessar dados. Para obter mais informações sobre o registro de um local do Amazon S3, consulte Adicionar um local do Amazon S3 ao seu data lake.

    Uma entidade principal que lê e grava os dados subjacentes registrados no Lake Formation exige as seguintes permissões:

    • lakeformation:GetDataAccess

    • DATA_LOCATION_ACCESS

      Uma entidade principal que tem permissões de localização de dados em um local também tem permissões de localização em todos os locais secundários.

      Para obter mais informações sobre permissões de localização de dados, consulte Controle de acesso a dados subjacente.

Para permitir a compactação, o serviço precisa assumir um perfil do IAM que tenha permissões para atualizar tabelas no catálogo de dados. Para obter detalhes, consulte Pré-requisitos de otimização de tabelas

Criar uma tabela no Iceberg

Você pode criar tabelas do Iceberg v1 e v2 usando o AWS Glue, o console do Lake Formation ou a AWS Command Line Interface conforme documentado nesta página. Você também pode criar tabelas do Iceberg usando o Crawler do AWS Glue. Para obter mais informações, consulte Catálogo de dados e crawlers no Guia do desenvolvedor do AWS Glue.

Para criar uma tabela no Iceberg

Console
  1. Faça login no AWS Management Console e abra o console do AWS Glue em https://console.aws.amazon.com/glue/.

  2. Em catálogo de dados, escolha Tabelas e use o botão Criar tabela para especificar os seguintes atributos:

    • Nome da tabela: insira um nome para a tabela. Se você estiver usando o Athena para acessar tabelas, use essas dicas de nomenclatura no Guia do usuário do Amazon Athena.

    • Banco de dados: escolha um banco de dados existente ou crie um novo.

    • Descrição: a descrição da tabela. Você pode escrever uma descrição para ajudá-lo a entender o conteúdo da tabela.

    • Formato da tabela: para Formato da tabela, escolha Apache Iceberg.

    • Ativar compactação: escolha Ativar compactação para compactar objetos pequenos do Amazon S3 na tabela em objetos maiores.

    • Perfil do IAM: para executar a compactação, o serviço assume um perfil do IAM em seu nome. Você pode escolher um perfil do IAM usando o menu suspenso. Certifique-se de que a função tenha as permissões necessárias para habilitar a compactação.

      Para saber mais sobre as permissões necessárias, consulte Pré-requisitos de otimização de tabelas .

    • Localização: especifique o caminho para a pasta no Amazon S3 que armazena a tabela de metadados. O Iceberg precisa de um arquivo de metadados e de um local no catálogo de dados para poder realizar leituras e gravações.

    • Esquema: escolha Adicionar colunas para adicionar colunas e tipos de dados das colunas. Você tem a opção de criar uma tabela vazia e atualizar o esquema posteriormente. O catálogo de dados oferece suporte aos tipos de dados do Hive. Para obter mais informações, consulte Tipos de dados do Hive.

      O Iceberg permite que você evolua o esquema e a partição depois de criar a tabela. Você pode usar as consultas do Athena para atualizar o esquema da tabela e as consultas do Spark para atualizar as partições.

AWS CLI
aws glue create-table \ --database-name iceberg-db \ --region us-west-2 \ --open-table-format-input '{ "IcebergInput": { "MetadataOperation": "CREATE", "Version": "2" } }' \ --table-input '{"Name":"test-iceberg-input-demo", "TableType": "EXTERNAL_TABLE", "StorageDescriptor":{ "Columns":[ {"Name":"col1", "Type":"int"}, {"Name":"col2", "Type":"int"}, {"Name":"col3", "Type":"string"} ], "Location":"s3://DOC_EXAMPLE_BUCKET_ICEBERG/" } }'
Tópicos