Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apache Iceberg と Amazon S3 Tables

Akira Shimosako
April 12, 2025
890

Apache Iceberg と Amazon S3 Tables

2025/4/12開催、「Amazon S3 Tables + Amazon Athena / Apache Iceberg」での講演資料です。 Apache Iceberg のような Open Table Format が必要になった背景と、Apache Iceberg の特徴、および Amazon S3 Tables の概要を説明した資料です。
https://awsbasics.connpass.com/event/347800/

Akira Shimosako

April 12, 2025
Tweet

More Decks by Akira Shimosako

Transcript

  1. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics © 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved. Apache Iceberg と Amazon S3 Tables 下佐粉 昭 (Akira Shimosako) Amazon Web Services Japan 2025.04.12 #awsbasics
  2. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics 下佐粉 昭 (Akira Shimosako) アマゾン ウェブ サービス ジャパン プリンシパル アナリティクススペシャリスト ソリューションアーキテクト 専門:データレイク、データウェアハウス 書籍:「AWSではじめるデータレイク」等 Podcast : OTF Talk Icebergを含むOTFの話題を扱うPodcat https://www.otftalk.com/ @simosako
  3. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics 応用 (可視化等) データレイクのきほん 多様な生データをデータレイクに蓄積、処理と蓄積を分離する データレイクの中で加工(前処理)し、処理系が使いやすい形を維持する 収集 データレイク 処理系 (DWH,RDB等) 応用 (可視化等) 収集&格納 処理系 (DWH,RDB等) カタログ (メタデータ) 変形・整形 (前処理) 蓄積 生データ 整形・ 最適化済
  4. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics データレイク上で 多様なワークロードが実行されるようになると… • RDB等のソースを小さい単位でデータレイクに連続反映したい • [課題] 書込みと読込みのパフォーマンス • [課題] ソースのスキーマ変更への追従 • 個人情報の削除要求への対応(GDPR、令和2年 改正個人情報保護法) • [課題] GDPR 等の特定の個人情報の効率的な削除、更新をしたい要件 • [課題] データ削除中のトランザクションの一貫性 • データレイク上のデータを元に多様な実験を継続的に行う • [課題] 実験を再現するための、過去のスナップショットの参照 • [課題] 継続的に更新されるデータに対する一貫性を確保した参照
  5. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics データレイクの課題と、必要になる機能 • レコードレベルの操作が非効率 => 効率的な部分更新・読み取り • 同時書き込み時の整合性を担保できない => トランザクション • 過去の状態の復元が難しい => タイムトラベルクエリ • スキーマの変更の負担が大きい => スキーマエボリューション
  6. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics Open Table Format レイヤーを挟むことで 新たな機能要求に対応する Amazon S3 その他 オブジェクト ストレージ 等 Open Table Format レイヤー Open Table Format でのデータ読み書き メタデータの管理、効率的なデータ操作 等 分散処理エンジン レイヤー データレイヤー
  7. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics Apache Iceberg 概要 • Open Table Format (OTF) の 1 つ • 2017 年時点、S3 に 60 PB の Data Lake を 擁する Netflix が開発 • 2018 年、 Apache Software Foundation 寄贈 データレイクの課題を解決する様々な特徴を備える • 小さい単位での更新の性能向上 • Serializable Isolation (トランザクション) • Time Travel (過去バージョン参照) • Evolution (スキーマ変更等) https://iceberg.apache.org/
  8. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics Apache Iceberg はテーブルフォーマット 8 「Apache Iceberg」という独立したソフトウェアが存在するわけではない • 「Iceberg テーブル仕様」が テーブルの構造と振る舞いを定義 • 新たに導入されたメタデータ層で、新 バージョンや追記を管理し、カタログで その情報を管理している • 各ツールがテーブル仕様に従ってデータ を操作することで、同じテーブルを 共有できる • 仕様をどの範囲で /どのようにサポート するかは各ツールに依存する Iceberg テーブル仕様のイメージ
  9. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics Apache Iceberg の構成要素 9 • Iceberg を読み書きするツール (クエリエンジン) • 各ツールが Iceberg のテーブル仕様に準拠してテーブルを操作する • 異なるクエリエンジン間で同一のIcebergテーブルを共有できる • Iceberg カタログ • テーブル情報の管理とトランザクションの一貫性の保証を担う • 様々なカタログ実装が存在するが、共通のREST APIでアクセス可能 • ストレージ • テーブルの実データとメタデータを配置する • 従来のデータレイクと同様に、信頼性が高くスケーラブルで、 コスト効率の良いストレージを使用する
  10. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics 多様なカタログ実装を実現する Iceberg REST API 10 https://docs.aws.amazon.com/glue/latest/dg/connect-glu-iceberg-rest.html Query Engine Iceberg カタログ 提供サービス A Iceberg カタログ 提供サービス B カタログA 用の実装 カタログB 用実装 これまで Iceberg REST API Query Engine Iceberg REST Open API 仕様 Iceberg REST 用の実装 クエリエンジンは接続先のカタログの仕様を 「知っている」必要があった (各カタログに対応した実装が必要) 標準化された Open API 仕様さえ「知っていれば」 個別のカタログ専用の実装が不要になる Iceberg カタログ 提供サービス A Iceberg カタログ 提供サービス B
  11. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics 11 ここまでのまとめ • Apache Icebergはテーブルのフォーマットを規定しており、対応したクエリエン ジントからアクセスできる = クエリエンジンを選択できる • ParquetやCSVファイルを直接利用する場合よりも、高度な機能を提供する • 高速な差分更新、バージョニング、トランザクション… • メタデータ+カタログで、高度な機能を実現している • カタログの実装は複数あるが、REST API で共通化されている(現在進行形) • 通常のRDBMSを置き換えるものではない(性能特性も機能も異なる)
  12. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics © 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWSにおける Icebergサポートと Amazon S3 Tables 12
  13. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics AWS で Iceberg を利用する際のストレージの選択肢 13 Redshift Managed Storage (RMS) S3 汎用バケット S3 Table バケット (S3 Tables) ※本日の説明範囲
  14. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics 14 Amazon S3 Tables Apache Iceberg サポートが組み込まれた クラウドオブジェクトストア • 新たに「S3 テーブルバケット」を作成して利用 • 汎用S3バケットとは別 • Iceberg表単位での管理 = オブジェクト単位ではない • 性能を維持するよう、メンテナンスタスクが自動実行される • コンパクション、不要オブジェクトの削除… • Iceberg REST catalog機能を内蔵、Glue Catalogに連携するこ とも可能 2025.4.9 大阪リージョンでも利用可能に!
  15. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics S3 テーブルバケットの構成要素 15 S3 table bucket Apache Iceberg Tables namespaces • テーブルバケット • 表構造データに特化したバケットタイプ • テーブルバケットごとに固有の ARN を持ち、 IAM ベースのリソースポリシーを設定できる • ネームスペース • テーブルバケット内のテーブルをまとめる 論理的な名前空間 • 各テーブルは単一のネームスペースに属する • テーブル • Iceberg 形式のテーブル • 内部的に Iceberg のデータ、メタデータを管理 • テーブルごとに固有の ARN を持ち、IAM ベース のリソースポリシーを設定できる
  16. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics Iceberg では、テーブルが更新される度に メタデータ層とデータ層の両方に 変更差分が蓄積される → テーブルの書き込み / 読み込み性能と コスト効率を最適化するための 「テーブルメンテナンス」の必要が生じる Glue Data CatalogはIcebergメンテナンス タスクの実行をサポート(汎用S3バケッ ト用) テーブルメンテナンスの重要性 16 Iceberg テーブル仕様のイメージ
  17. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics 17 ここまでのまとめ 汎用S3バケット S3テーブルバケット 最小管理単位 オブジェクト Icebergテーブル 操作 S3 API Iceberg クライアントから ※一部S3 Tables API 大規模利用時のス ケーラビリティ ユーザーによるKey/Prefix設計でスケール を実現 スケールする事を意識した内部デザイン メンテナンス • Iceberg クエリエンジンから実行 • Glue Data Catalog の自動メンテナン ス機能を利用 S3 Tables側で自動的に実施 Iceberg REST APIに 対応したカタログ • AWS Glue Data Catalog • 独自のカタログを利用することも可能 • S3 Tablesに内蔵のREST Catalog • AWS Glue Data Catalogに連携 • S3Tables Catalog jar
  18. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics S3汎用バケットでIcebergを利用する 18 S3 汎用バケット Availability Zone 1 テーブルを構成するファイル メタデータファイル AWS Glue Data Catalog • ストレージ: S3 汎用バケット • カタログ:AWS Glue Data Catalog (Iceberg REST API Endpointを提供) • Lake Formation経由での制御も可能 • バケットのKey/Prefix設計やメンテナンスは ユーザが設計する • カスタマイズ性が高く、Iceberg や S3 の機能を隅々まで活かすことができる Iceberg クライアント
  19. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics S3テーブルバケットでIcebergを利用する 19 AWS Glue Data Catalog • ストレージ: S3 テーブルバケット • カタログ • S3 Tables提供のREST API Endpoint • Glue Catalog 連携 (+Lake Formation) • 専用のJarファイルを利用 https://github.com/awslabs/s3-tables-catalog • 運用管理はS3 Tables側で自動実行 • S3 Tablesだけで完結も可能であり、運用面の考 慮も少なく済む Iceberg Tables namespaces S3 Tables Iceberg REST API S3Tables Catalog Jar Iceberg クライアント S3テーブルバケット
  20. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics まとめ 20 • Apache Iceberg はテーブルデータを高速かつ便利に扱う仕組みを備えており、 従来のデータレイクの課題を解決する • 様々なクエリエンジンが Iceberg のテーブルフォーマットを共有することで、 シームレスに連携することが可能になる • AWS で Iceberg を利用する際のストレージは主に 3 種類あり、 目的に合わせて選択できる • S3 汎用バケット • S3 テーブルバケット (S3 Tables) • Redshift Managed Storage (※補足資料を参照)
  21. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics © 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved. 補足資料 21
  22. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics 22 Redshift Managed Storage (RMS)とは https://docs.aws.amazon.com/ja_jp/redshift/latest/dg/c_high_level_system_architecture.html
  23. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics 23 RMS テーブルとは Redshift Managed Storage Amazon Redshift Icebergをサポート するQuery Engine Iceberg REST API 仕様を拡張した インターフェースで、様々なクエリエンジン から RMS 上のテーブルを操作できる仕組み → Redshift の高速なクエリパフォーマンス、 自動化された最適化を活用 →データレイクのテーブルと、 Redshift のテーブルを共通的なカタログの 枠組みで管理できる AWS Glue Data Catalog
  24. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics Next generation of SageMaker の Apache Icebergサポート 24 ビジネス データカタログ Amazon SageMaker Data & AI Governance アクセスコントロール とデータ共有 データ品質管理 データリネージ AI ガバナンス 安全かつ効率的なデータ活用を 支えるガバナンス Amazon Data Firehose Amazon Managed Service for Apache Flink Amazon EMR Amazon Glue 多様なデータソースとの Zero-ETL 統合 SAP OData, ServiceNow Zendesk, Zoho CRM, Salesforce … etc Iceberg を中心に構成される オープンなレイクハウス Amazon SageMaker Lakehouse 目的別ストレージ AWS Glue Iceberg REST endpoint / REST extension endpoint Redshift Managed Storage S3 汎用バケット S3 テーブル バケット AWS Glue Data Catalog AWS Glue API Iceberg をネイティブに利用でき るクエリエンジン群 Amazon SageMaker Unified Studio 3 rd Party クエリエンジン連携 Iceberg テーブルへの 幅広い連携方式 Amazon EMR Amazon Glue Amazon RedshiftAmazon Athena
  25. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics SageMaker Lakehouse におけるデータ統合 25 Unified technical metadata & access control AWS Lake Formation AWS Glue Data Catalog Redshift Managed Storage General-purpose S3 Amazon S3 Tables 3rdParty DataSource カタログに登録して公開 SageMaker Lakehouse Catalog SageMaker Lakehouse Catalog によ りユーザー間の統一的なデータの連携 とアクセスコントロールを実現 例: • Redshift managed storage(RMS) やS3 上の Iceberg テーブル、Snowflakeなどの 3rd party 製品上のデータを一つのカタロ グ上で公開 • 公開されているデータをカタログから検索 し、購読する コンシューマー カタログ上のデータの 検索/サブスクライブ パブリッシャー
  26. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. #awsbasics Thank you! © 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved.