Criar configurações de tabelas de metadados - Amazon Simple Storage Service

Criar configurações de tabelas de metadados

Para gerar e armazenar o Amazon S3 Metadata em tabelas de metadados do Apache Iceberg totalmente gerenciadas, crie uma configuração de tabela de metadados para o bucket de uso geral. O Amazon S3 foi projetado para atualizar continuamente as tabelas de metadados e mostrar as alterações mais recentes nos dados, desde que a configuração esteja ativa no bucket. Além disso, o Amazon S3 otimiza continuamente as tabelas de metadados para ajudar a reduzir os custos de armazenamento e melhorar a performance das consultas de analytics.

Para cada bucket de uso geral, você pode criar uma configuração de tabela de metadados que contém duas tabelas de metadados complementares:

  • Tabela de diário: por padrão, sua configuração de tabela de metadados contém uma tabela de diário, que captura eventos referentes aos objetos no bucket. A tabela de diário registra as alterações feitas em seus dados quase em tempo real, ajudando você a identificar novos dados enviados ao seu bucket, rastrear objetos excluídos recentemente, monitorar as transições de ciclo de vida etc. Ela registra novos objetos e atualizações em seus objetos e nos respectivos metadados (aquelas atualizações que exigem uma operação DELETE ou PUT).

    A tabela de diário captura apenas metadados somente de eventos de alteração (como uploads, atualizações e exclusões) que ocorrem depois que você cria a configuração da tabela de metadados. Como essa tabela pode ser consultada, é possível auditar as alterações no bucket por meio de consultas SQL simples.

    A tabela de diário é necessária para cada configuração de tabela de metadados. (Na versão inicial do S3 Metadata, a tabela de diário era chamada de “tabela de metadados”.)

    Para ter mais informações sobre quais dados são armazenados em tabelas de diário, consulte Esquema de tabelas de diário do S3 Metadata.

    Para ajudar a minimizar os custos de armazenamento, você pode optar por habilitar a expiração de registros da tabela de diário. Para ter mais informações, consulte Registros expirados da tabela de diário.

  • Tabela de inventário em tempo real: opcionalmente, você pode adicionar uma tabela de inventário em tempo real à configuração da tabela de metadados. A tabela de inventário em tempo real fornece um inventário simples e consultável de todos os objetos e das respectivas versões no bucket para que você possa determinar o estado mais recente dos dados.

    É possível usar a tabela de inventário em tempo real para simplificar e acelerar os fluxos de trabalho de negócios e as tarefas de big data identificando os objetos que você deseja processar para várias workloads. Por exemplo, você pode consultar a tabela de inventário em tempo real para encontrar todos os objetos armazenados em uma classe de armazenamento específica, todos os objetos com determinadas tags, todos os objetos que não são criptografados com a criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS) etc.

    Quando você habilita a tabela de inventário em tempo real para a configuração da tabela de metadados, ela passa por um processo conhecido como preenchimento, durante o qual o Amazon S3 verifica o bucket de uso geral para recuperar os metadados iniciais de todos os objetos existentes no bucket. Dependendo do número de objetos no bucket, esse processo pode levar de minutos (no mínimo 15 minutos) a horas. Quando o processo de preenchimento é concluído, o status da tabela de inventário em tempo real muda de Preenchendo para Ativo. Após a conclusão do preenchimento, geralmente as atualizações dos objetos são mostradas na tabela de inventário em tempo real no prazo de uma hora.

    Você recebe cobrança pelo preenchimento da tabela de inventário em tempo real. Se o bucket de uso geral tiver mais de um bilhão de objetos, você também pagará uma taxa mensal pela tabela de inventário em tempo real. Para obter mais informações, consulte Preços do Amazon S3.

    Para ter mais informações sobre quais dados são armazenados nas tabelas de inventário em tempo real, consulte Esquema de tabelas de inventário em tempo real do S3 Metadata.

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

arn:aws:s3tables:region-code:account-id:bucket/aws-s3/table/metadata_table_name

As tabelas de diário e as tabelas de inventário em tempo real têm o nome journal e inventory, respectivamente.

Quando você cria uma configuração de tabela de metadados, as tabelas de metadados são armazenadas em um bucket de tabela gerenciado pela AWS. Todas as configurações de tabela de metadados na sua conta e na mesma região são armazenadas em um único bucket de tabela gerenciado pela AWS. Esses buckets de tabela gerenciados pela AWS são denominadas aws-s3 e têm o seguinte formato de nome de recurso da Amazon (ARN):

arn:aws:s3tables:region:account_id:bucket/aws-s3

Por exemplo, se o ID da sua conta for 123456789012 e o bucket de uso geral estiver no Leste dos EUA (Norte da Virgínia) (us-east-1), o bucket de tabela gerenciado pela AWS também será criado no Leste dos EUA (Norte da Virgínia) (us-east-1) e terá o seguinte ARN:

arn:aws:s3tables:us-east-1:123456789012:bucket/aws-s3

Por padrão, os buckets de tabela gerenciados pela AWS são criptografados com a criptografia do lado do servidor usando chaves gerenciadas pelo Amazon S3 (SSE-S3). Depois de criar a primeira configuração de metadados, você pode definir a configuração de criptografia padrão para o bucket de tabela gerenciado pela AWS para usar a criptografia do lado do servidor com chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Para ter mais informações, consulte Criptografia para buckets de tabela gerenciados pela AWS e Especificar a criptografia do lado do servidor com chaves do AWS KMS (SSE-KMS) em buckets de tabela.

No bucket de tabela gerenciado pela AWS, as tabelas de metadados da sua configuração geralmente são armazenadas em um namespace com o seguinte formato de nomenclatura:

b_general-purpose-bucket-name

Para ter mais informações sobre namespaces de tabela de metadados, consulte Como funcionam as tabelas de metadados.

Ao criar sua configuração de tabela de metadados, você pode optar por criptografar as tabelas de metadados gerenciadas pela AWS com a criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Se você optar por usar o SSE-KMS, deverá fornecer uma chave do KMS gerenciada pelo cliente na mesma região do bucket de uso geral. Você pode definir o tipo de criptografia para uma tabela somente ao criá-la. Após a criação de uma tabela gerenciada pela AWS, não é possível alterar a configuração de criptografia. Para especificar o SSE-KMS para uma tabela de metadados, é necessário ter determinadas permissões. Para ter mais informações, consulte Permissões para SSE-KMS.

A configuração de criptografia de uma tabela de metadados tem precedência sobre a configuração de criptografia padrão em nível de bucket. Se você não especificar a criptografia para uma tabela, ela herdará a configuração de criptografia padrão do bucket.

Os buckets de tabela gerenciados pela AWS não são contabilizados nas cotas da funcionalidade Tabelas do S3. Para ter mais informações sobre como trabalhar com buckets de tabela gerenciados pela AWS e tabelas gerenciadas pela AWS, consulte Trabalhar com buckets de tabela gerenciados pela AWS.

Você pode criar uma configuração de tabelas de metadados usando o console do Amazon S3, a AWS Command Line Interface (AWS CLI), os AWS SDKs ou a API REST do Amazon S3.

nota
  • Se você criou a configuração do S3 Metadata antes de 15 de julho de 2025, é recomendável excluir e criar a configuração novamente para poder expirar os registros da tabela de diário e criar uma tabela de inventário. Para ter mais informações, consulte Habilitar tabelas de inventário em configurações de metadados criadas antes de 15 de julho de 2025.

  • Se você excluiu sua configuração de tabela de metadados e deseja criar uma configuração novamente para o mesmo bucket de uso geral, primeiro exclua manualmente as tabelas de diário e inventário antigas do bucket de tabelas gerenciado pela AWS. Do contrário, não será possível criar outra configuração de tabela de metadados, porque essas tabelas já existem. Para excluir uma tabela de metadados, consulte Excluir uma tabela de metadados.

    A exclusão de uma configuração de tabela de metadados exclui apenas a configuração. O bucket de tabela gerenciado pela AWS e suas tabelas de metadados continuarão existindo, mesmo que você exclua a configuração da tabela de metadados.

Pré-requisitos

Antes de criar uma configuração de tabela de metadados, você deve cumprir os seguintes pré-requisitos:

  • Para criar uma configuração de tabela de metadados, você deve ter as permissões do AWS Identity and Access Management (IAM) necessárias para criar e gerenciar tabelas de metadados. Para ter mais informações, consulte Definir permissões para configurar tabelas de metadados.

  • Se você planeja consultar suas tabelas de metadados com o Amazon Athena ou outro mecanismo de consulta da AWS, será necessário integrar o bucket de tabelas gerenciado pela AWS aos serviços de analytics da AWS. Para ter mais informações, consulte Integrar a funcionalidade Tabelas do Amazon S3 a serviços de analytics da AWS.

    Se você já tiver integrado um bucket de tabela existente nessa região, o bucket de tabela gerenciado pela AWS também será integrado automaticamente. Para determinar o status de integração dos seus buckets de tabela nessa região, abra o console do Amazon S3 e escolha Buckets de tabela no painel de navegação à esquerda. Em Integração com serviços de analytics da AWS, verifique a região e se o status da integração está habilitado.

Criar uma configuração de tabela de metadados

Como criar uma configuração de tabelas de metadados

Antes de criar uma configuração de tabelas de metadados, revise e cumpra os pré-requisitos e revise Limitações e restrições das tabelas de metadados.

  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 uso geral.

  3. Escolha o bucket de uso geral para o qual você deseja criar uma configuração de tabelas de metadados.

    nota

    Garanta que esse bucket de uso geral esteja em uma Região da AWS onde os buckets de tabela estejam disponíveis. Os buckets de tabela só estão disponíveis nas regiões Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio) e Oeste dos EUA (Oregon).

  4. Na página de detalhes do bucket, escolha a guia Metadados.

  5. Na guia Metadados, escolha Criar configuração de metadados.

  6. Na página Criar configuração de metadados, em Tabela de diário, você pode escolher se deseja criptografar a tabela com a criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Por padrão, as tabelas de diário são criptografadas com a criptografia do lado do servidor usando chaves gerenciadas pelo Amazon S3 (SSE-S3).

    Se você optar por usar o SSE-KMS, deverá fornecer uma chave do KMS gerenciada pelo cliente na mesma região do bucket de uso geral.

    Importante

    Você pode definir o tipo de criptografia para uma tabela de metadados somente ao criá-la. Após a criação de uma tabela gerenciada pela AWS, não é possível alterar a configuração de criptografia.

    • Para criptografar uma tabela de diário com SSE-S3 (o padrão), escolha Não especificar o tipo de criptografia.

    • Para criptografar uma tabela de diário com SSE-KMS, escolha Especificar o tipo de criptografia. Em Tipo de criptografia, escolha Criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Em Chave do AWS KMS, escolha entre suas chaves existentes do KMS ou insira o ARN da chave do KMS. Se você ainda não tiver uma chave do KMS, escolha Inserir o ARN da chave do KMS e selecionar Criar uma chave do KMS.

      Verifique se você configurou as permissões necessárias para o SSE-KMS. Para ter mais informações, consulte Permissões para SSE-KMS.

  7. (Opcional) Por padrão, os registros na tabela de diário não expiram. Para ajudar a minimizar os custos de armazenamento da tabela de diário, escolha Habilitada em Expiração dos registros.

    Se você habilitar a expiração de registros da tabela de diário, poderá definir o número de dias em que os registros da tabela de diário devem ser retidos. Para definir o valor em Dias após os quais os registros expiram, você pode especificar qualquer número inteiro entre 7 e 2147483647. Por exemplo, para reter os registros da tabela de diário por um ano, defina esse valor como 365.

    Os registros expirarão no prazo de 24 a 48 horas depois que se tornarem elegíveis para expiração.

    Importante

    Depois que os registros da tabela de diário expirarem, eles não poderão ser recuperados.

    Marque a caixa de seleção em Registros da tabela de diário expirarão após o número especificado de dias.

  8. (Opcional) Se você quiser adicionar uma tabela de inventário à configuração da tabela de metadados, em Tabela de inventário em tempo real, escolha Habilitada para o Status da configuração.

    Você pode optar por criptografar a tabela com criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Por padrão, as tabelas de inventário são criptografados com a criptografia do lado do servidor usando chaves gerenciadas pelo Amazon S3 (SSE-S3).

    Se você optar por usar o SSE-KMS, deverá fornecer uma chave do KMS gerenciada pelo cliente na mesma região do bucket de uso geral.

    Importante

    Você pode definir o tipo de criptografia para uma tabela de metadados somente ao criá-la. Após a criação de uma tabela gerenciada pela AWS, não é possível alterar a configuração de criptografia.

    • Para criptografar uma tabela de inventário com SSE-S3 (o padrão), escolha Não especificar o tipo de criptografia.

    • Para criptografar uma tabela de inventário com SSE-KMS, escolha Especificar o tipo de criptografia. Em Tipo de criptografia, escolha Criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS). Em Chave do AWS KMS, escolha entre suas chaves existentes do KMS ou insira o ARN da chave do KMS. Se você ainda não tiver uma chave do KMS, escolha Inserir o ARN da chave do KMS e selecionar Criar uma chave do KMS.

      Verifique se você configurou as permissões necessárias para o SSE-KMS. Para ter mais informações, consulte Permissões para SSE-KMS.

  9. Escolha Criar configuração de tabelas de metadados.

Se sua configuração de tabela de metadados for bem-sucedida, os nomes e ARNs das tabelas de metadados serão exibidos na guia Metadados, com o nome e o namespace do bucket de tabela gerenciado pela AWS.

Se você optar por habilitar uma tabela de inventário para sua configuração de tabela de metadados, essa tabela passará por um processo conhecido como preenchimento, durante o qual o Amazon S3 verifica o bucket de uso geral para recuperar os metadados iniciais de todos os objetos existentes no bucket. Dependendo do número de objetos no bucket, esse processo pode levar de minutos (no mínimo 15 minutos) a horas. Quando o processo de preenchimento é concluído, o status da tabela de inventário muda de Preenchendo para Ativo. Depois que o preenchimento é concluído, geralmente as atualizações dos objetos são mostradas na tabela de inventário no prazo de uma hora.

Para monitorar as atualizações na configuração de tabelas de metadados, você pode usar o AWS CloudTrail. Para ter mais informações, consulte Ações de buckets do Amazon S3 rastreadas pelo registro em log do CloudTrail.

Para executar os comandos a seguir, você deve ter a AWS CLI instalada e configurada. Se ainda não tiver a AWS CLI instalada, consulte Instalar ou atualizar a versão mais recente da AWS CLI no Guia do usuário da AWS Command Line Interface.

Também é possível executar comandos da AWS CLI pelo console usando o AWS CloudShell. O AWS CloudShell é um shell pré-autenticado e baseado em navegador que você pode iniciar diretamente do AWS Management Console. Para ter mais informações, consulte What is CloudShell? e Getting started with AWS CloudShell no Guia do usuário do AWS CloudShell.

Como criar uma configuração de tabelas de metadados usando a AWS CLI

Antes de criar uma configuração de tabelas de metadados, revise e cumpra os pré-requisitos e revise Limitações e restrições das tabelas de metadados.

Para usar os comandos a seguir, substitua os user input placeholders por suas próprias informações.

  1. Crie um arquivo JSON que contenha a configuração de tabelas de metadados e salve-o (por exemplo, metadata-config.json). Veja a seguir uma configuração de amostra.

    Você deve especificar se deseja habilitar ou desabilitar a expiração de registros da tabela de diário. Se você optar por habilitar a expiração de registros, também deverá especificar o número de dias após os quais os registros da tabela de diário expirarão. Para definir o valor Days, você pode especificar qualquer número inteiro entre 7 e 2147483647. Por exemplo, para reter os registros da tabela de diário por um ano, defina esse valor como 365.

    Opcionalmente, você pode optar por configurar uma tabela de inventário.

    Para tabelas de diário e tabelas de inventário, você pode especificar opcionalmente uma configuração de criptografia. Por padrão, as tabelas de metadados são criptografados com a criptografia do lado do servidor usando chaves gerenciadas pelo Amazon S3 (SSE-S3), que você pode especificar configurando SseAlgorithm como AES256.

    Para criptografar tabelas de metadados com a criptografia do lado do servidor usando chaves do AWS Key Management Service (AWS KMS) (SSE-KMS), defina SseAlgorithm como aws:kms. Você também deve definir KmsKeyArn como o ARN de uma chave do KMS gerenciada pelo cliente na mesma região em que o bucket de uso geral está localizado.

    { "JournalTableConfiguration": { "RecordExpiration": { "Expiration": "ENABLED", "Days": 10 }, "EncryptionConfiguration": { "SseAlgorithm": "AES256" } }, "InventoryTableConfiguration": { "ConfigurationState": "ENABLED", "EncryptionConfiguration": { "SseAlgorithm": "aws:kms", "KmsKeyArn": "arn:aws:kms:us-east-2:account-id:key/key-id" } } }
  2. Use o comando a seguir para aplicar a configuração de tabelas de metadados ao bucket de uso geral (por exemplo, amzn-s3-demo-bucket):

    aws s3api create-bucket-metadata-configuration \ --bucket amzn-s3-demo-bucket \ --metadata-configuration file://./metadata-config.json \ --region us-east-2
  3. Para verificar se a configuração foi criada, execute o seguinte comando:

    aws s3api get-bucket-metadata-configuration \ --bucket amzn-s3-demo-bucket \ --region us-east-2

Para monitorar as atualizações na configuração de tabelas de metadados, você pode usar o AWS CloudTrail. Para ter mais informações, consulte Ações de buckets do Amazon S3 rastreadas pelo registro em log do CloudTrail.

Você pode enviar solicitações REST para criar uma configuração de tabelas de metadados. Para obter mais informações, consulte CreateBucketMetadataConfiguration na Referência da API do Amazon S3.

Você pode usar os AWS SDKs para criar uma configuração de tabelas de metadados no Amazon S3. Para ter mais informações, consulte a lista de SDKs compatíveis na Referência de API do Amazon S3.

Habilitar tabelas de inventário em configurações de metadados criadas antes de 15 de julho de 2025

Se você criou a configuração do S3 Metadata antes de 15 de julho de 2025, é recomendável excluir e criar a configuração novamente para poder expirar os registros da tabela de diário e criar uma tabela de inventário. Quaisquer alterações no bucket de uso geral que ocorrerem entre a exclusão da configuração antiga e a criação de outra não serão registradas em nenhuma das tabelas de diário.

Para migrar de uma configuração de metadados antiga para uma nova configuração, faça o seguinte:

  1. Exclua a configuração da tabela de metadados existente. Para obter instruções detalhadas, consulte Excluir configurações de tabelas de metadados.

  2. Crie outra configuração de tabela de metadados. Para obter instruções detalhadas, consulte Criar configurações de tabelas de metadados.

Se precisar de ajuda para migrar sua configuração, entre em contato com o AWS Support.

Depois que criar outra configuração de metadados, você terá duas tabelas de diário. Se não precisar mais da tabela de diário antiga, poderá excluí-la. Para obter instruções detalhadas, consulte Excluir tabelas de metadados. Se você manteve sua tabela de diário antiga e deseja uni-la à nova, consulte Unir metadados personalizados com tabelas de metadados do S3 para obter exemplos de como unir duas tabelas.

Após a migração, você pode fazer o seguinte:

  1. Para ver sua configuração, agora você pode usar a operação de API GetBucketMetadataConfiguration. Para determinar se sua configuração é antiga ou nova, você pode examinar o atributo a seguir da resposta da API GetBucketMetadataConfiguration. Um tipo de bucket gerenciado pela AWS ("aws") indica uma nova configuração, enquanto um tipo de bucket gerenciado pelo cliente ("customer") indica uma configuração antiga.

    "MetadataTableConfigurationResult": { "TableBucketType": ["aws" | "customer"]

    Para ter mais informações, consulte Visualizar configurações de tabela de metadados.

    nota

    Você pode usar as operações de API DeleteBucketMetadataConfiguration e GetBucketMetadataConfiguration com configurações de tabela de metadados antigas ou novas. No entanto, se você tentar usar as operações de API GetBucketMetadataTableConfiguration e DeleteBucketMetadataTableConfiguration com configurações novas, receberá erro de HTTP 405 Method Not Allowed.

    Você deve atualizar seus processos para usar as novas operações de API (CreateBucketMetadataConfiguration, GetBucketMetadataConfiguration e DeleteBucketMetadataConfiguration) em vez das operações de API antigas.

  2. Se você planeja consultar suas tabelas de metadados com o Amazon Athena ou outro mecanismo de consulta da AWS, será necessário integrar o bucket de tabelas gerenciado pela AWS aos serviços de analytics da AWS. Se você já tiver integrado um bucket de tabela existente nessa região, o bucket de tabela gerenciado pela AWS também será integrado automaticamente. Para ter mais informações, consulte Integrar a funcionalidade Tabelas do Amazon S3 a serviços de analytics da AWS.