Re:Invent AWS の広く普及している S3 ストレージ サービスに、まもなく 2 つの重要な変更が加わります。1 つ目は、データ分析を目的とした新しいテーブル バケット タイプです。2 つ目は、S3 テーブルを使用して S3 データの高速クエリを可能にする、プレビュー版のメタデータ機能です。
ラスベガスで開催中の Re:Invent カンファレンスで、副社長兼著名なエンジニアである Andy Warfield 氏はThe Regに対し、「S3 は今年で 18 周年を迎えます。私たちは、S3 が誕生して以来ほぼ 20 年の間に最も重要な 2 つの API レベルの変更を発表します」と語った。
S3はデータをバケットに保存します。各バケットには無制限の数のバイナリオブジェクトを保存できます。これまでバケットの種類は、従来の汎用バケットと、2023年のre:Inventで発表されたS3 Expressに関連付けられたディレクトリバケットの2種類しかありませんでした。後者はパフォーマンスが向上し、階層型ストレージをサポートしています。
新しいバケットタイプはS3テーブルで、Apache Iceberg形式でデータを保存します。Icebergは分析用データ保存に使用されるオープンテーブル形式(OTF)で、Parquet単体よりも豊富な機能を備えています。ParquetはHadoopや多くのデータ処理フレームワークで使用されている形式です。
Parquet と Iceberg はすでに S3 で広く使用されているのに、なぜ新しいバケット タイプが必要なのでしょうか?
ウォーフィールド氏によると、S3におけるParquetの人気がS3テーブルの導入理由だという。「実際、Parquetテーブルには1秒あたり約1500万件のリクエストを処理しています」と彼は語ったが、メンテナンスの負担は大きいという。
内部的には、「OTFの構造はGitによく似ており、変更の記録台帳であり、変更内容はスナップショットとして追加されます。OTFへの更新頻度が比較的低くても、あっという間に数十万ものオブジェクトがテーブルの下に蓄積されてしまう可能性があります」と彼は述べた。
その結果、パフォーマンスが低下します。
「OTFの世界では、このような事態は予想されていましたが、テーブルメンテナンス作業は顧客に任されていました」とウォーフィールド氏は述べた。Icebergプロジェクトには、スナップショットの有効期限切れやメタデータのクリーンアップを行うコードが含まれているが、「Sparkジョブをスケジュールして実行する必要がある」という。
Apache Sparkは大規模データ用のSQLエンジンです。S3上のParquetは「ストレージシステムの上にストレージシステムが乗っかっている」ものであり、最適化されていないとWarfield氏は述べています。
S3テーブルは、テーブルごとにRESTエンドポイントを作成するバケットだとウォーフィールド氏は説明した。「このバケット内にはIcebergカタログがあり、名前空間とテーブルを作成できます。各テーブルはファーストクラスのリソースです。テーブル自体にアクセス制御ポリシーとセキュリティポリシーを設定できます。Icebergテーブルであることがわかっているため、バケットを事前にパーティション分割することで、これらのテーブルのアクセスパフォーマンスが10倍向上します。また、メンテナンスと最適化のタスクはすべて自動的に実行されます。」
2つ目の新機能は、現在プレビュー中のAmazon S3メタデータです。「S3にペタバイト単位のデータを保有するお客様は数千社に上ります」とウォーフィールド氏は述べ、「データの発見と理解は、お客様にとって特に支援が必要な分野です」と続けました。
- AWS クラウド開発キットの欠陥によりアカウントが完全に乗っ取られる危険性
- Microsoft Fabricは、単一のデータベースサービス上でトランザクションと分析を実現することを約束します。
- SAPはSQL Serverベースのソフトウェアをクラウドに移行する新たな方法を提供する
- スノーフレーク、チャットによる企業およびサードパーティデータへのアクセスを開始
ウォーフィールド氏は、これまで「各顧客が S3 上にメタデータ レイヤーを個別に構築」しており、それを最新の状態に維持し、簡単にクエリできるようにする必要があると語った。
S3メタデータは「S3バケット内の変更にインデクサーを追加し、新しいS3テーブルの1つにデータを入力します」と彼は述べた。「オブジェクトのメタデータに埋め込まれているすべてのメタデータフィールドと、顧客が追加したユーザーメタデータタグをテーブルに入力します。テーブルはバケットの変更履歴として構造化されます。例えば、特定の日付から特定の日付の間に作成された、特定のファイルサイズのJPEGファイルを検索したい場合、SQLクエリで実行できるようになります。」
統合と価格設定
S3サービス自体にはSQL機能が組み込まれていません。クエリについては、「Amazon AthenaやIcebergと連携するツールを使えばできます」とウォーフィールド氏は述べました。AthenaはS3の既存のクエリサービスです。
新サービスの料金はいくらですか?「ストレージは、パフォーマンス向上のため、S3標準より若干割高になっています」とウォーフィールド氏は言います。「さらに、圧縮とメンテナンス費用も加算されます。メタデータに関しては、スキャンされたオブジェクトに対する管理料金として構成され、その後は通常通り、テーブルバケットに保存されたメタデータに対して料金が発生します。」
S3テーブルとメタデータをAWS Glueデータカタログ(GDC)に統合し、様々なデータソースを検索できる機能がプレビュー段階にあります。AWS Lake Formationとの統合も含まれます。「これは、人々がデータを扱う方法における豊富な進化の積み重ねの中で、一番下のカメに過ぎません」とウォーフィールド氏は述べています。
S3はもはやデータベースと言えるのだろうか?「チームは、人々が正しい期待を抱いてくれることを懸念しています」とウォーフィールド氏は語った。「もし唐突に『オブジェクトだけでなくテーブルも使えるようになりました』と宣言すれば、人々がS3について誤った期待を抱いてしまう大きなリスクがあります。しかし現実には、ParquetとIcebergの存在によって、人々は既に現実的な期待を抱いているのです。」
それにもかかわらず、ウォーフィールド氏は「PyIceberg(Pythonクライアント)やDuckDB、その他のIcebergコネクタなどのソフトウェアクライアントが、表形式データにこのシンプルなディスク上のフォーマットを使用できるようになっているのを目にし始めています。私たちがこの技術を非常に大規模なデータベースをサポートし、圧縮のオーバーヘッドを解決するために構築したのと同じくらい、S3の弾力性によって、小規模な部分でも興味深いものになるのではないかという仮説を立てています。」®