View a markdown version of this page

Integrar a funcionalidade Tabelas do Amazon S3 a serviços de analytics da AWS - Amazon Simple Storage Service

Integrar a funcionalidade Tabelas do Amazon S3 a serviços de analytics da AWS

Este tópico aborda os pré-requisitos e os procedimentos necessários para integrar buckets de tabela do Amazon S3 a serviços de analytics da AWS. Para ter uma visão geral de como a integração funciona, consulte Visão geral da integração da funcionalidade Tabelas do S3.

nota

Essa integração usa o AWS Glue Data Catalog e pode incorrer em custos de solicitação e armazenamento do AWS Glue. Para saber mais, consulte Preços do AWS Glue.

Há preços adicionais para a execução de consultas na funcionalidade Tabelas do S3. Saiba mais nas informações sobre os preços do mecanismo de consulta que você está usando.

Pré-requisitos da integração

Os pré-requisitos a seguir se aplicam para integrar buckets de tabela a serviços de analytics da AWS:

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

Integrar buckets de tabela aos serviços de analytics da AWS

É possível integrar buckets de tabela ao Catálogo de Dados e aos serviços de analytics da AWS usando controles de acesso do IAM por padrão ou, opcionalmente, usar os controles de acesso do Lake Formation.

Ao realizar a integração usando controles de acesso do IAM, você precisa de privilégios do IAM para acessar buckets de tabela e tabelas do Amazon S3, objetos do Catálogo de Dados e o mecanismo de consulta que você está usando. Se você optar por realizar a integração usando o Lake Formation, tanto os controles de acesso do IAM quanto as concessões do Lake Formation determinarão o acesso aos recursos do Catálogo de Dados. Consulte o Guia do desenvolvedor do AWS Lake Formation para saber mais sobre a integração com o Lake Formation.

As seções a seguir descrevem como usar o console de gerenciamento do Amazon S3 ou a AWS CLI para configurar a integração com controles de acesso do IAM.

  1. 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. Escolha Criar bucket de tabela.

    A página Criar bucket de tabela é aberta.

  4. Insira um Nome do bucket de tabela e marque a caixa de seleção Habilitar integração.

  5. Escolha Criar bucket de tabela. O Amazon S3 tentará integrar automaticamente os buckets de tabela nessa região.

Como integrar buckets de tabela a controles de acesso do IAM usando a AWS CLI

As etapas a seguir mostram como usar a AWS CLI para integrar buckets de tabela. Para usar essas etapas, substitua user input placeholders por suas próprias informações.

  1. Crie um bucket de tabela.

    aws s3tables create-table-bucket \ --region us-east-1 \ --name amzn-s3-demo-table-bucket
  2. Crie um arquivo chamado catalog.json que contenha o seguinte catálogo:

    { "Name": "s3tablescatalog", "CatalogInput": { "FederatedCatalog": { "Identifier": "arn:aws:s3tables:us-east-1:111122223333:bucket/*", "ConnectionName": "aws:s3tables" }, "CreateDatabaseDefaultPermissions":[ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": ["ALL"] } ], "CreateTableDefaultPermissions":[ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": ["ALL"] } ], "AllowFullTableExternalDataAccess": "True" } }

    Crie o catálogo s3tablescatalog usando o comando a seguir. Ao criar esse catálogo, o AWS Glue Data Catalog é preenchido com objetos correspondentes a buckets de tabela, namespaces e tabelas.

    aws glue create-catalog \ --region us-east-1 \ --cli-input-json file://catalog.json
  3. Verifique se o catálogo s3tablescatalog foi adicionado no AWS Glue usando o seguinte comando:

    aws glue get-catalog --catalog-id s3tablescatalog

O processo de integração dos serviços de analytics da AWS da foi atualizado para usar permissões do IAM por padrão. Se você já configurou a integração, pode continuar usando sua integração atual. No entanto, se você quiser alterar a integração existente para usar permissões do IAM, consulte o Guia do desenvolvedor do AWS Lake Formation. Também é possível refazer a integração para excluir a configuração existente no AWS Glue Data Catalog e no AWS Lake Formation e realizar novamente a integração. Isso removerá todas as concessões existentes do Lake Formation e as permissões de acesso associadas ao s3tablescatalog.

  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 no Guia do desenvolvedor do AWS Lake Formation.

  2. Exclua o catálogo s3tablescatalog fazendo o seguinte:

    • No painel de navegação à esquerda, selecione Catálogos.

    • Selecione o botão de opção ao lado do catálogo s3tablescatalog na lista Catálogos. No menu Ações, escolha Excluir.

  3. Cancele o registro da localização dos dados do catálogo s3tablescatalog fazendo o seguinte:

    • No painel de navegação à esquerda, acesse a seção Administração e selecione Locais de data lake.

    • Selecione o botão de opção ao lado da localização do data lake s3tablescatalog; por exemplo, s3://tables:region:account-id:bucket/*.

    • No menu Ações, selecione Remover.

    • Na caixa de diálogo de confirmação exibida, selecione Remover.

  4. Agora que você excluiu o catálogo s3tablescatalog e a localização do data lake, pode seguir as etapas para integrar os buckets de tabela aos serviços de analytics da AWS usando o processo de integração atualizado.

nota

Se você quiser trabalhar com tabelas criptografadas com SSE-KMS em serviços integrados de analytics da AWS, o perfil que você utiliza precisa ter permissão para usar sua chave do AWS KMS para operações de criptografia. Para ter mais informações, consulte Conceder permissões a entidades principais do IAM para trabalhar com tabelas criptografadas em serviços integrados de analytics da AWS.