Tutorial: conceitos básicos da funcionalidade Tabelas do S3 - Amazon Simple Storage Service

Tutorial: conceitos básicos da funcionalidade Tabelas do S3

Neste tutorial, você vai criar um bucket de tabela e integrar buckets de tabela em sua região com os serviços de analytics da AWS. Depois, você usará a AWS CLI para criar seu primeiro namespace e tabela no bucket de tabela. Por fim, você usará o AWS Lake Formation para conceder permissão na tabela a fim de poder começar a consultá-la com o Athena.

dica

Caso esteja migrando dados tabulares de buckets de uso geral para buckets de tabela, a Biblioteca de Soluções da AWS tem uma solução guiada para ajudar você. Essa solução automatiza a movimentação de tabelas do Apache Iceberg e do Apache Hive registradas no AWS Glue Data Catalog e armazenadas em buckets de uso geral para buckets de tabela por meio do AWS Step Functions e o Amazon EMR com o Apache Spark. Consulte mais informações em Guidance for Migrating Tabular Data from Amazon S3 to S3 Tables na Biblioteca de Soluções da AWS.

Etapa 1: criar um bucket de tabela e integrá-lo aos serviços de analytics da AWS

Nesta etapa, use o console do Amazon S3 para criar seu primeiro bucket de tabela. Para conferir outras maneiras de criar um bucket de tabela, consulte Criar um bucket de tabela.

nota

Por padrão, o console do Amazon S3 integra automaticamente os buckets de tabela ao Amazon SageMaker Lakehouse, o que permite que os serviços de analytics da AWS descubram e acessem automaticamente seus dados de tabela do S3. Se criar seu primeiro bucket de tabela de maneira programática usando a AWS Command Line Interface (AWS CLI), os SDKs da AWS ou a API REST, você deverá concluir manualmente a integração dos serviços de analytics da AWS. Para obter mais informações, consulte Usar tabelas do Amazon S3 com serviços de analytics da AWS.

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

  2. Na barra de navegação na parte superior da página, escolha o nome da Região da AWS exibida no momento. Depois, escolha a região na qual você deseja criar o bucket de tabela.

  3. No painel de navegação à esquerda, escolha Buckets de tabela.

  4. Escolha Criar bucket de tabela.

  5. Em Configuração geral, insira um nome para o bucket de tabela.

    O nome do bucket de tabela deve:

    • Ser exclusivo na sua Conta da AWS e na região atual.

    • Ter entre 3 e 63 caracteres.

    • Consistir apenas em letras minúsculas, números e hífens (-).

    • Inicie e termine com uma letra ou um número.

    Após a criação do bucket, não é possível alterar o respectivo nome. O bucket de tabela pertence à Conta da AWS que o criou. Consulte mais informações sobre como nomear buckets de tabela em Regras de nomenclatura de buckets de tabela.

  6. Na seção Integração com serviços de analytics da AWS, verifique se a caixa de seleção Habilitar integração está marcada.

    Se a opção Habilitar integração estiver selecionada quando você criar seu primeiro bucket de tabela usando o console, o Amazon S3 tentará integrar o bucket de tabela aos serviços de analytics da AWS. Essa integração permite que você use os serviços de analytics da AWS para acessar todas as tabelas na região atual. Para obter mais informações, consulte Usar tabelas do Amazon S3 com serviços de analytics da AWS.

  7. Escolha Criar bucket.

Etapa 2: criar um namespace de tabela e uma tabela

Nesta etapa, você cria um namespace no bucket de tabela e, depois, cria uma tabela nesse namespace. É possível criar um namespace de tabela e uma tabela usando o console ou a AWS CLI.

Importante

Ao criar tabelas, use apenas letras minúsculas nos nomes e nas definições das tabelas. Por exemplo, os nomes das colunas devem estar todos em minúsculas. Se o nome da tabela ou a definição da tabela contiver letras maiúsculas, a tabela não será compatível com o AWS Lake Formation ou o AWS Glue Data Catalog. Nesse caso, a tabela não estará visível para serviços de analytics da AWS, como o Amazon Athena, mesmo que os buckets de tabela estejam integrados aos serviços de analytics da AWS.

Se a definição da tabela contiver letras maiúsculas, você receberá a seguinte mensagem de erro ao executar uma consulta SELECT no Athena: “GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names”.

O procedimento a seguir usa o console do Amazon S3 para criar um namespace e uma tabela com o Amazon Athena.

Como criar um namespace de tabela e uma tabela
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. No painel de navegação à esquerda, escolha Buckets de tabela.

  3. Na página Buckets de tabela, escolha o bucket de tabela no qual você deseja criar uma tabela.

  4. Na página de detalhes do bucket de tabela, escolha Criar tabela com o Athena.

  5. Na caixa de diálogo Criar tabela com o Athena, escolha Criar um namespace e insira um nome no campo Nome do namespace. Os nomes de namespace devem ter de 1 a 255 caracteres e ser exclusivos no bucket de tabela. Os caracteres válidos são a–z, 0–9 e sublinhado (_). Sublinhados não são permitidos no início dos nomes de namespace.

  6. Escolha Create namespace (Criar namespace).

  7. Escolha Criar tabela com o Athena.

  8. O console do Amazon Athena é aberto e o editor de consultas do Athena aparece. O editor de consultas é preenchido com uma consulta de exemplo que você pode usar para criar uma tabela. Modifique a consulta para especificar o nome da tabela e as colunas que você deseja que a tabela tenha.

  9. Quando terminar de modificar a consulta, escolha Executar para criar a tabela.

Se a criação da tabela tiver sido bem-sucedida, o nome da nova tabela aparecerá na lista de tabelas do Athena. Ao voltar para o console do Amazon S3, a nova tabela aparecerá na lista Tabelas na página de detalhes do bucket de tabela depois que você atualizar a lista.

Para usar os exemplos de comando da AWS CLI a seguir para criar um namespace no bucket de tabela e, depois, criar uma tabela com um esquema nesse namespace, substitua os valores de user input placeholder pelos seus próprios.

Pré-requisitos
  1. Crie um namespace no bucket de tabela executando o seguinte comando:

    aws s3tables create-namespace \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespace my_namespace
    1. Confirme se o namespace foi criado com sucesso executando o seguinte comando:

      aws s3tables list-namespaces \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket
  2. Crie uma tabela com um esquema de tabela executando o seguinte comando:

    aws s3tables create-table --cli-input-json file://mytabledefinition.json

    Para o arquivo mytabledefinition.json, use o seguinte exemplo de definição de tabela:

    { "tableBucketARN": "arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket", "namespace": "my_namespace", "name": "my_table", "format": "ICEBERG", "metadata": { "iceberg": { "schema": { "fields": [ {"name": "id", "type": "int","required": true}, {"name": "name", "type": "string"}, {"name": "value", "type": "int"} ] } } } }

(Opcional) Etapa 3: conceder permissões do Lake Formation na tabela

Nesta etapa, você concede permissões do Lake Formation na nova tabela a outras entidades principais do IAM. Essas permissões autorizam que outras entidades principais, além de você, acessem os recursos do bucket de tabela usando o Athena e outros serviços de analytics da AWS. Para obter mais informações, consulte Conceder permissão em uma tabela ou um banco de dados. Se você for o único usuário que acessará as tabelas, poderá pular essa etapa.

  1. Abra o console do AWS Lake Formation em https://console.aws.amazon.com/lakeformation/ e faça login como administrador do data lake. Consulte mais informações sobre como criar um administrador de data lake em Create a data lake administrator.

  2. No painel de navegação, escolha Permissões de dados e Conceder.

  3. Na página Conceder permissões, em Entidades principais, escolha Usuários e perfis do IAM e selecione o usuário ou o perfil do IAM que você deseja permitir que execute consultas na tabela.

  4. Em Tags do LF ou recursos de catálogo, escolha Recursos do catálogo de dados nomeados.

  5. Execute um destes procedimentos, dependendo se deseja conceder acesso a todas as tabelas da conta ou se deseja conceder acesso somente aos recursos dentro do bucket de tabela que você criou:

    • Em Catálogos, escolha um catálogo no nível da conta que você criou ao integrar o bucket de tabela. Por exemplo, .111122223333:s3tablescatalog

    • Em Catálogos, escolha o subcatálogo para o bucket de tabela. Por exemplo, .111122223333:s3tablescatalog/amzn-s3-demo-table-bucket

  6. (Opcional) Se você escolheu o subcatálogo para o bucket de tabela, execute um ou ambos os procedimentos:

    • Em Bancos de dados, escolha o namespace do bucket de tabela que você criou.

    • Em Tabelas, escolha a tabela que você criou no bucket de tabelas ou escolha Todas as tabelas.

  7. Será possível definir permissões em nível de catálogo, banco de dados ou tabela, dependendo de você ter escolhido um catálogo ou subcatálogo e, depois, um banco de dados ou uma tabela. Consulte mais informações sobre as permissões do Lake Formation em Managing Lake Formation permissions no Guia do desenvolvedor do AWS Lake Formation.

    Execute um destes procedimentos:

    • Em Permissões de catálogo, escolha Super para conceder a outra entidade principal todas as permissões no catálogo ou escolha permissões mais detalhadas, como Descrever.

    • Em Permissões de banco de dados, você não pode escolher Super para conceder a outra entidade principal todas as permissões no banco de dados. Em vez disso, escolha permissões mais detalhadas, como Descrever.

    • Em Permissões de tabela, escolha Super para conceder a outra entidade principal todas as permissões na tabela ou escolha permissões mais detalhadas, como Selecionar ou Descrever.

      nota

      Quando você concede permissões do Lake Formation em um recurso do catálogo de dados para uma conta externa ou diretamente para uma entidade principal do IAM em outra conta, o Lake Formation usa o serviço do AWS Resource Access Manager (AWS RAM) para compartilhar o recurso. Se a conta do concedido estiver na mesma organização da conta do concedente, o recurso compartilhado estará disponível imediatamente para o concedido. Se a conta do concedido não estiver na mesma organização, o AWS RAM envia um convite à conta do concedido para aceitar ou rejeitar a concessão do recurso. Em seguida, para disponibilizar o recurso compartilhado, o administrador do data lake deve usar o console AWS RAM ou AWS CLI para aceitar o convite na conta do concedido. Consulte mais informações sobre o compartilhamento de dados entre contas em Cross-account data sharing in Lake Formation no Guia do desenvolvedor do AWS Lake Formation.

  8. Selecione Conceder.

Etapa 4: consultar dados com SQL no Athena

Você pode consultar a tabela com SQL no Athena. O Athena é compatível com consultas Data Definition Language (DDL), Data Manipulation Language (DML) e Data Query Language (DQL) para Tabelas do S3.

É possível acessar a consulta do Athena pelo console do Amazon S3 ou pelo console do Amazon Athena.

O procedimento a seguir usa o console do Amazon S3 para acessar o editor de consultas do Athena e possibilitar que você consulte uma tabela com o Amazon Athena.

Como consultar uma tabela
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. No painel de navegação à esquerda, escolha Buckets de tabela.

  3. Na página Buckets de tabela, escolha o bucket de tabela que contém a tabela que você deseja consultar.

  4. Na página de detalhes do bucket de tabela, escolha o botão de opção ao lado do nome da tabela que você deseja consultar.

  5. Escolha Consultar tabela com o Athena.

  6. O console do Amazon Athena é aberto e o editor de consultas do Athena aparece com uma amostra de consulta SELECT carregada para você. Modifique essa consulta conforme necessário para seu caso de uso.

  7. Para executar a consulta, escolha Run (Executar).

Como consultar uma tabela
  1. Abra o console do Athena em https://console.aws.amazon.com/athena/.

  2. Consulte a tabela. Veja a seguir uma amostra de consulta que você pode modificar. Substitua user input placeholders por suas próprias informações.

    SELECT * FROM "s3tablescatalog/amzn-s3-demo-table-bucket"."my_namespace"."my_table" LIMIT 10
  3. Para executar a consulta, escolha Run (Executar).