使用 S3 元数据加快数据发现速度 - Amazon Simple Storage Service

使用 S3 元数据加快数据发现速度

Amazon S3 元数据通过自动捕获通用存储桶中对象的元数据,并将其存储在您可以查询的只读、完全托管式 Apache Iceberg 表中,从而加快数据发现速度。这些只读表称为元数据表。在通用存储桶中添加、更新和移除对象时,S3 元数据会自动刷新相应的元数据表,以反映最新的更改。

默认情况下,S3 元数据提供三种类型的元数据:

  • 系统定义的元数据,例如对象的创建时间和存储类

  • 自定义元数据,例如标签和对象上传期间包含的用户定义的元数据

  • 事件元数据,例如何时更新或删除对象,以及发出请求的 AWS 账户

有关在元数据表中存储哪些数据的详细信息,请参阅 S3 元数据表架构

借助 S3 元数据,您可以轻松查找、存储和查询 S3 对象的元数据,这样您就可以快速准备数据,以用于业务分析、内容检索、人工智能和机器学习(AI/ML)模型训练等。

元数据表存储在 S3 表存储桶中,这些表存储桶可提供针对表数据进行优化的存储。要轻松查询元数据,您可以将表存储桶与 AWS Glue Data Catalog 集成。将表存储桶与 AWS Glue Data Catalog 集成后,您可以直接使用查询引擎查询元数据表,例如 Amazon Athena、Amazon EMR、Amazon Redshift、Apache Spark 和 Trino。也可以使用任何其它支持 Apache Iceberg 格式的应用程序查询元数据表。要从元数据表创建控制面板,请使用 Amazon QuickSight。

有关 S3 元数据定价,请参阅 Amazon S3 定价

元数据表的工作原理

元数据表由 Amazon S3 管理,而不能由 Amazon S3 本身以外的任何 IAM 主体进行修改。(但是,您可以删除元数据表。) 因此,元数据表是只读的,这有助于确保它们正确地反映存储桶的内容。

为了使 Apache Iceberg 元数据表保持最佳性能,Amazon S3 会定期对表执行维护活动,例如压缩和未引用文件移除。这些维护活动既有助于最大限度地降低存储元数据表的成本,又有助于优化查询性能。这种表维护是自动进行的,无需您选择加入或持续管理。但是,如果需要,您可以配置这些表维护活动。有关更多信息,请参阅表存储桶维护

注意

S3 元数据旨在当您对通用存储桶进行更改时持续追加到元数据表中。每次更新都会创建一个快照,即元数据表的新版本。由于元数据表的只读性质,因此您无法删除元数据表中的记录。您也无法使用 S3 表类数据存储服务的快照到期功能使元数据表的旧快照到期。

为了最大限度地降低成本,您可以定期删除元数据表配置和元数据表,然后重新创建它们。有关更多信息,请参阅删除元数据表配置删除元数据表

要生成对象元数据并将其存储在 S3 托管式元数据表中,您需要为通用存储桶创建元数据表配置。只要存储桶上的配置处于活动状态,Amazon S3 就会持续更新元数据表以反映对数据的最新更改。

要创建元数据表配置,必须确保您拥有创建和管理元数据表所必需的 AWS Identity and Access Management(IAM)权限。有关更多信息,请参阅 为配置元数据表设置权限。您还必须创建或指定用于存储元数据表的 S3 表存储桶。此表存储桶必须与通用存储桶位于相同的 AWS 区域和账户中。有关创建表存储桶的更多信息,请参阅创建表存储桶

注意

S3 元数据不适用于在您创建元数据表配置之前已存在于通用存储桶中的任何对象。换句话说,S3 元数据仅捕获在您创建元数据表配置后发生的更改事件(例如上传、更新和删除)的元数据。

要监控对元数据表配置的更新,可以使用 AWS CloudTrail。有关更多信息,请参阅 CloudTrail 日志记录跟踪的 Amazon S3 存储桶级操作