Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Criar uma tabela do Amazon S3

Modo de foco
Criar uma tabela do Amazon S3 - Amazon Simple Storage Service

Uma tabela do Amazon S3 é um sub-recurso de um bucket de tabela. As tabelas são armazenadas no formato Apache Iceberg para que você possa trabalhar com elas usando mecanismos de consulta e outras aplicações compatíveis com o Apache Iceberg. O Amazon S3 otimiza continuamente as tabelas para ajudar a reduzir os custos de armazenamento e melhorar a performance das consultas de analytics.

Quando você cria uma tabela, o Amazon S3 gera automaticamente um local de warehouse para ela. Um local de warehouse é um local exclusivo do S3 onde é possível ler e gravar objetos associados à tabela. O seguinte exemplo mostra o formato de um local de warehouse:

s3://63a8e430-6e0b-46f5-k833abtwr6s8tmtsycedn8s4yc3xhuse1b--table-s3

As tabelas têm o seguinte formato de nome do recurso da Amazon (ARN):

arn:aws:s3tables:region:owner-account-id:bucket/bucket-name/table/table-id

Por padrão, você pode criar até 10.000 tabelas em um bucket de tabela. Para solicitar um aumento da cota de tabelas e de buckets de tabela, entre em contato com o Suporte.

É possível criar uma tabela usando o console do Amazon S3, a API REST do Amazon S3, os SDKs da AWS, a AWS Command Line Interface (AWS CLI) ou mecanismos de consulta integrados.

Consulte mais informações sobre nomes válidos de tabela em Regras de nomenclatura para tabelas e namespaces.

Pré-requisitos para a criação de tabelas

Para criar uma tabela, primeiro é necessário fazer o seguinte:

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 uma tabela com o Amazon Athena. Se ainda não criou um namespace no bucket de tabela, você pode fazer isso como parte desse processo.

nota

Antes de realizar as etapas a seguir, integre os buckets de tabela aos serviços de analytics da AWS nessa região. Para obter mais informações, consulte Usar tabelas do Amazon S3 com serviços de analytics da AWS.

Para criar uma tabela do
  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 no qual você deseja criar uma tabela.

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

  5. Na caixa de diálogo Criar tabela com o Athena, execute um destes procedimentos:

    • Crie um namespace. 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.

    • Escolha Create namespace (Criar namespace).

    • Especifique um namespace existente. Escolha Especificar um namespace existente neste bucket de tabela. Depois, selecione Escolher entre namespaces existentes ou Inserir um nome de namespace existente. Se você tiver mais de mil namespaces no bucket e ele não aparecer na lista, será necessário inserir o nome do namespace.

  6. Escolha Criar tabela com o Athena.

  7. O console do Amazon Athena é aberto e o editor de consultas do Athena aparece. O campo Catálogo deve ser preenchido com s3tablescatalog/ seguido do nome do bucket de tabela; por exemplo, s3tablescatalog/amzn-s3-demo-bucket. O campo Banco de dados deve ser preenchido com o namespace que você criou ou selecionou anteriormente.

    nota

    Caso não veja esses valores nos campos Catálogo e Banco de dados, verifique se você integrou os buckets de tabela aos serviços de analytics da AWS nessa região. Para obter mais informações, consulte Usar tabelas do Amazon S3 com serviços de analytics da AWS.

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

    nota
    • Se você receber o erro “Insufficient permissions to execute the query. Principal does not have any privilege on specified resource” ao tentar executar uma consulta no Athena, você deverá receber as permissões necessárias do Lake Formation na tabela. Para obter mais informações, consulte Conceder permissão em uma tabela ou um banco de dados.

    • Se você receber o erro “Iceberg cannot access the requested resource” ao tentar executar uma consulta no Athena, acesse o console do AWS Lake Formation e verifique se você se autoconcedeu permissões no catálogo do bucket de tabela e no banco de dados (namespace) que criou. Não especifique uma tabela ao conceder essas permissões. Para obter mais informações, consulte Conceder permissão em uma tabela ou um banco de dados.

    • Se você receber a seguinte mensagem de erro ao executar uma consulta SELECT no Athena, isso significa que o nome da tabela ou os nomes de coluna na definição da tabela contêm letras maiúsculas: “GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names”. Os nomes de tabela e de coluna devem estar todos em minúsculas.

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.

O procedimento a seguir usa o console do Amazon S3 para criar uma tabela com o Amazon Athena. Se ainda não criou um namespace no bucket de tabela, você pode fazer isso como parte desse processo.

nota

Antes de realizar as etapas a seguir, integre os buckets de tabela aos serviços de analytics da AWS nessa região. Para obter mais informações, consulte Usar tabelas do Amazon S3 com serviços de analytics da AWS.

Para criar uma tabela do
  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 no qual você deseja criar uma tabela.

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

  5. Na caixa de diálogo Criar tabela com o Athena, execute um destes procedimentos:

    • Crie um namespace. 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.

    • Escolha Create namespace (Criar namespace).

    • Especifique um namespace existente. Escolha Especificar um namespace existente neste bucket de tabela. Depois, selecione Escolher entre namespaces existentes ou Inserir um nome de namespace existente. Se você tiver mais de mil namespaces no bucket e ele não aparecer na lista, será necessário inserir o nome do namespace.

  6. Escolha Criar tabela com o Athena.

  7. O console do Amazon Athena é aberto e o editor de consultas do Athena aparece. O campo Catálogo deve ser preenchido com s3tablescatalog/ seguido do nome do bucket de tabela; por exemplo, s3tablescatalog/amzn-s3-demo-bucket. O campo Banco de dados deve ser preenchido com o namespace que você criou ou selecionou anteriormente.

    nota

    Caso não veja esses valores nos campos Catálogo e Banco de dados, verifique se você integrou os buckets de tabela aos serviços de analytics da AWS nessa região. Para obter mais informações, consulte Usar tabelas do Amazon S3 com serviços de analytics da AWS.

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

    nota
    • Se você receber o erro “Insufficient permissions to execute the query. Principal does not have any privilege on specified resource” ao tentar executar uma consulta no Athena, você deverá receber as permissões necessárias do Lake Formation na tabela. Para obter mais informações, consulte Conceder permissão em uma tabela ou um banco de dados.

    • Se você receber o erro “Iceberg cannot access the requested resource” ao tentar executar uma consulta no Athena, acesse o console do AWS Lake Formation e verifique se você se autoconcedeu permissões no catálogo do bucket de tabela e no banco de dados (namespace) que criou. Não especifique uma tabela ao conceder essas permissões. Para obter mais informações, consulte Conceder permissão em uma tabela ou um banco de dados.

    • Se você receber a seguinte mensagem de erro ao executar uma consulta SELECT no Athena, isso significa que o nome da tabela ou os nomes de coluna na definição da tabela contêm letras maiúsculas: “GENERIC_INTERNAL_ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names”. Os nomes de tabela e de coluna devem estar todos em minúsculas.

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.

Este exemplo mostra como criar uma tabela com um esquema usando a AWS CLI e especificando os metadados da tabela com JSON. Para usar esse exemplo, substitua os user input placeholders por suas próprias informações.

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

Para o arquivo mytabledefinition.json, use o exemplo de definição de tabela a seguir. Para usar esse exemplo, substitua os user input placeholders por suas próprias informações.

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

Este exemplo mostra como criar uma tabela com um esquema usando a AWS CLI e especificando os metadados da tabela com JSON. Para usar esse exemplo, substitua os user input placeholders por suas próprias informações.

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

Para o arquivo mytabledefinition.json, use o exemplo de definição de tabela a seguir. Para usar esse exemplo, substitua os user input placeholders por suas próprias informações.

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

É possível criar uma tabela em um mecanismo de consulta compatível conectado aos buckets de tabela, como em uma sessão do Apache Spark no Amazon EMR.

O exemplo a seguir mostra como criar uma tabela com o Spark usando instruções CREATE e adicionar dados à tabela usando instruções INSERT ou lendo dados de um arquivo existente. Para usar esse exemplo, substitua os user input placeholders por suas próprias informações.

spark.sql( " CREATE TABLE IF NOT EXISTS s3tablesbucket.example_namespace.`example_table` ( id INT, name STRING, value INT ) USING iceberg " )

Depois de criar a tabela, você pode carregar dados nela. Escolha entre os seguintes métodos:

  • Adicione dados à tabela usando a instrução INSERT.

    spark.sql( """ INSERT INTO s3tablesbucket.my_namespace.my_table VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """)
  • Carregue um arquivo de dados existente.

    1. Leia os dados no Spark:

      val data_file_location = "Path such as S3 URI to data file" val data_file = spark.read.parquet(data_file_location)
    2. Grave os dados em uma tabela do Iceberg:

      data_file.writeTo("s3tablesbucket.my_namespace.my_table").using("Iceberg").tableProperty ("format-version", "2").createOrReplace()

É possível criar uma tabela em um mecanismo de consulta compatível conectado aos buckets de tabela, como em uma sessão do Apache Spark no Amazon EMR.

O exemplo a seguir mostra como criar uma tabela com o Spark usando instruções CREATE e adicionar dados à tabela usando instruções INSERT ou lendo dados de um arquivo existente. Para usar esse exemplo, substitua os user input placeholders por suas próprias informações.

spark.sql( " CREATE TABLE IF NOT EXISTS s3tablesbucket.example_namespace.`example_table` ( id INT, name STRING, value INT ) USING iceberg " )

Depois de criar a tabela, você pode carregar dados nela. Escolha entre os seguintes métodos:

  • Adicione dados à tabela usando a instrução INSERT.

    spark.sql( """ INSERT INTO s3tablesbucket.my_namespace.my_table VALUES (1, 'ABC', 100), (2, 'XYZ', 200) """)
  • Carregue um arquivo de dados existente.

    1. Leia os dados no Spark:

      val data_file_location = "Path such as S3 URI to data file" val data_file = spark.read.parquet(data_file_location)
    2. Grave os dados em uma tabela do Iceberg:

      data_file.writeTo("s3tablesbucket.my_namespace.my_table").using("Iceberg").tableProperty ("format-version", "2").createOrReplace()
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.