Amazon S3 メタデータは、汎用バケット内のオブジェクトのメタデータを自動的にキャプチャし、クエリできる読み取り専用のフルマネージド Apache Iceberg テーブルに保存することで、データ検出を高速化します。これらの読み取り専用テーブルはメタデータテーブルと呼ばれます。オブジェクトが汎用バケットに追加、更新、削除されると、S3 メタデータは対応するメタデータテーブルを自動的に更新して、最新の変更を反映します。
デフォルトでは、S3 メタデータは次の 3 種類のメタデータを提供します。
-
オブジェクトの作成時刻やストレージクラスなどのシステム定義メタデータ
-
オブジェクトのアップロード時に含められたタグやユーザー定義メタデータなどのカスタムメタデータ
-
オブジェクトが更新または削除されたときや、リクエストを行った 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 は、圧縮や参照されていないファイルの削除などの定期的なメンテナンスアクティビティをテーブルに対して実行します。これらのメンテナンスアクティビティは、メタデータテーブルの保存コストを最小限に抑え、クエリのパフォーマンスを最適化するのに役立ちます。このテーブルのメンテナンスは自動的に行われるため、オプトインや継続的な管理は必要ありません。ただし、必要に応じて、これらのテーブルメンテナンスアクティビティを設定できます。詳細については、「Table bucket maintenance」を参照してください。
注記
S3 メタデータは、汎用バケットに変更を加えるときにメタデータテーブルに継続的に追加されるように設計されています。それぞれの更新で、メタデータテーブルの新しいバージョンであるスナップショットが作成されます。メタデータテーブルは読み取り専用であるため、メタデータテーブル内のレコードを削除することはできません。また、S3 テーブルのスナップショットの有効期限機能を使用して、メタデータテーブルの古いスナップショットを期限切れにすることもできません。
コストを最小限に抑えるために、メタデータテーブル設定とメタデータテーブルを定期的に削除してから再作成することができます。詳細については、「メタデータテーブル設定の削除」および「メタデータテーブルの削除」を参照してください。
オブジェクトメタデータを生成して S3 マネージドメタデータテーブルに保存するには、汎用バケットのメタデータテーブル設定を作成します。Amazon S3 は、バケットで設定がアクティブである限り、メタデータテーブルを継続的に更新してデータへの最新の変更を反映するように設計されています。
メタデータテーブル設定を作成するには、メタデータテーブルを作成および管理するために必要な AWS Identity and Access Management (IAM) アクセス許可があることを確認する必要があります。詳細については、「メタデータテーブルを設定するためのアクセス許可の設定」を参照してください。また、メタデータテーブルを保存する S3 テーブルバケットを作成または指定する必要があります。このテーブルバケットは、汎用バケットと同じ AWS リージョンおよびアカウントにある必要があります。テーブルバケットの作成の詳細については、「Creating table buckets」を参照してください。
注記
S3 メタデータは、メタデータテーブル設定を作成する前に汎用バケットに既に存在していたオブジェクトには適用されません。つまり、S3 メタデータは、メタデータテーブル設定を作成した後に発生する変更イベント (アップロード、更新、削除など) のメタデータのみをキャプチャします。
メタデータテーブル設定の更新をモニタリングするには、AWS CloudTrail を使用できます。詳細については、「CloudTrail ログ記録によって追跡される Amazon S3 バケットレベルのアクション」を参照してください。