Acelerar a descoberta de dados com o S3 Metadata
O Amazon S3 Metadata acelera a descoberta de dados ao capturar automaticamente os metadados de objetos nos buckets de uso geral e armazená-los em tabelas do Apache Iceberg totalmente gerenciadas e somente leitura que você pode consultar. Essas tabelas somente leitura são chamadas de tabelas de metadados. À medida que objetos são adicionados, atualizados ou removidos dos buckets de uso geral, o S3 Metadata atualiza automaticamente as tabelas de metadados correspondentes para reproduzir as alterações mais recentes.
Por padrão, o S3 Metadata fornece três tipos de metadados:
-
Metadados definidos pelo sistema, como o horário de criação e a classe de armazenamento de um objeto.
-
Metadados personalizados, como tags e metadados definidos pelo usuário que foram incluídos durante o upload do objeto.
-
Metadados de eventos, como quando um objeto é atualizado ou excluído, e a Conta da AWS que fez a solicitação.
Com o S3 Metadata, você pode facilmente encontrar, armazenar e consultar metadados para os objetos do S3, para que possa preparar dados rapidamente para uso em analytics de negócios, recuperação de conteúdo, treinamento de modelos de inteligência artificial e machine learning (IA/ML) e muito mais.
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
ouPUT
).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. 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 são armazenadas em um bucket de tabela do S3 gerenciado pela AWS, que fornece armazenamento otimizado para dados tabulares. Para consultar metadados, você pode integrar o bucket de tabela ao Amazon SageMaker Lakehouse. Essa integração, que usa o AWS Glue Data Catalog e o AWS Lake Formation, permite que os serviços de analytics da AWS descubram e acessem dados de tabela automaticamente.
Depois que o bucket de tabela for integrado ao AWS Glue Data Catalog, você poderá consultar diretamente as tabelas de metadados com serviços de analytics da AWS, como Amazon Athena, Amazon EMR e Amazon Redshift. Também é possível criar painéis interativos com os dados de consulta usando o Amazon QuickSight. Para ter mais informações sobre como integrar um bucket de tabela do S3 gerenciado pela AWS com o Amazon SageMaker Lakehouse, consulte Integrar a funcionalidade Tabelas do Amazon S3 a serviços de analytics da AWS.
Você também pode consultar as tabelas de metadados com o Apache Spark, o Apache Trino e qualquer outra aplicação que aceite o formato Apache Iceberg usando o endpoint REST do Iceberg do AWS Glue, o endpoint REST do Iceberg da funcionalidade Tabelas do Amazon S3 ou o Catálogo de Tabelas do Amazon S3 para o catálogo de cliente do Apache Iceberg. Para ter mais informações sobre como acessar as tabelas de metadados, consulte Acessar dados da tabela.
Para ter informações sobre os preços do S3 Metadata, consulte Definição de preço do Amazon S3
Como funcionam as tabelas de metadados
As tabelas de metadados são gerenciadas pelo Amazon S3 e não podem ser modificadas por nenhuma entidade principal do IAM fora do próprio Amazon S3. Entretanto, você pode excluí-las. Por isso, elas são somente leitura, o que ajuda a garantir que elas mostrem corretamente o conteúdo do bucket de uso geral.
Para gerar e armazenar metadados de objetos em tabelas de metadados gerenciadas pela AWS, 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 de uso geral.
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.
Armazenamento, organização e criptografia de tabelas de metadados
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
nota
-
Se o nome do bucket de uso geral contiver pontos, eles serão convertidos em sublinhados (
_
) no nome do namespace. -
Se o bucket de uso geral tiver sido criado antes de 1.º de março de 2018, é provável que o respectivo nome contenha letras maiúsculas e sublinhados e tenha até 255 caracteres. Se o nome do bucket tiver essas características, o namespace da tabela de metadados terá um formato diferente. O nome do bucket de uso geral será prefixado com
b_
, truncado em 63 caracteres, convertido em minúsculas e sufixado com um hash.
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.
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.
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.
Manutenção de tabelas de metadados e expiração de registros
Para manter as tabelas de metadados do com a melhor performance, o Amazon S3 realiza atividades de manutenção periódicas nas tabelas, como compactação e remoção de arquivos sem referência. Essas atividades de manutenção ajudam a minimizar o custo de armazenamento das tabelas de metadados e a otimizar a performance das consultas. Essa manutenção das tabelas ocorre automaticamente, não exigindo adesão nem gerenciamento contínuo da sua parte.
nota
-
Não é possível controlar a expiração dos snapshots da tabela de diário ou da tabela de inventário. Para cada tabela, o Amazon S3 armazena no mínimo um snapshot por no máximo 24 horas.
-
Para ajudar a minimizar os custos, você pode configurar a expiração de registros da tabela de diário. Por padrão, os registros da tabela de diário não expiram, e eles devem ser retidos por no mínimo sete dias. Para ter mais informações, consulte Registros expirados da tabela de diário.