

# Integrar a funcionalidade Tabelas do Amazon S3 a serviços de analytics da AWS
<a name="s3-tables-integrating-aws"></a>

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](s3-tables-integration-overview.md).

**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](https://aws.amazon.com/glue/pricing/).  
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
<a name="table-integration-prerequisites"></a>

Os pré-requisitos a seguir se aplicam para integrar buckets de tabela a serviços de analytics da AWS:
+ [Crie um bucket de tabela.](s3-tables-buckets-create.md)
+ Adicione as seguintes permissões do AWS Glue à sua entidade principal do AWS Identity and Access Management (IAM):
  + `glue:CreateCatalog`, que é necessária para criar um catálogo `s3tablescatalog` federado no Catálogo de Dados.
  + `glue:PassConnection` concede à entidade principal responsável pela chamada o direito de delegar a criação da conexão de `aws:s3tables` com o serviço Amazon S3.
+ [Atualize a () para a versão mais recente AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions).

**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\$1INTERNAL\$1ERROR: 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
<a name="table-integration-procedures"></a>

É 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 [https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html) 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.

### Usar o console do S3
<a name="integrate-console"></a>

1. Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

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

1. Escolha **Criar bucket de tabela**.

   A página **Criar bucket de tabela** é aberta.

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

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

### Como usar o AWS CLI
<a name="integrate-cli"></a>

**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
   ```

1. 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
   ```

1. Verifique se o catálogo `s3tablescatalog` foi adicionado no AWS Glue usando o seguinte comando:

   ```
   aws glue get-catalog --catalog-id s3tablescatalog
   ```

### Migrar para o processo de integração atualizado
<a name="migrate-integrate-console"></a>

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 [https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html). 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/](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](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin) no *Guia do desenvolvedor do AWS Lake Formation*.

1. 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**.

1. 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**. 

1. 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](#table-integration-procedures) 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](s3-tables-kms-permissions.md#tables-kms-integration-permissions).

**Próximas etapas**
+ [Crie um namespace ](s3-tables-namespace-create.md).
+ [Criar uma tabela](s3-tables-create.md).