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

Apache_Icebergを体験しよう-20250921.pdf

 Apache_Icebergを体験しよう-20250921.pdf

Serverless Days Tokyo 2025 Day 2(2025.9.21)での「Apache Icebergを体験しよう! サーバーレスのAthenaとS3で Iceberg に入門する」の説明資料です。Icebergの基本的な内容と、AWS上でIcebergを使う上で基本的な考え方を説明したものです。

Avatar for Akira Shimosako

Akira Shimosako

September 16, 2025
Tweet

More Decks by Akira Shimosako

Other Decks in Technology

Transcript

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

    rights reserved. © 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved. Apache Icebergを体験しよう! サーバーレスのAthenaとS3で Iceberg に入門する 下佐粉 昭 (Akira Shimosako) Amazon Web Services Japan 2025.09.21 ServerlessDays Tokyo 2025
  2. © 2025, Amazon Web Services, Inc. or its affiliates. All

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

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

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

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

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

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

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

    rights reserved. © 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWSサービスと Icebergサポート 12
  13. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWSサービスでIcebergを利用する場合 13 • Iceberg を読み書きするツール (クエリエンジン) • Amazon Athena、 Amazon EMR、AWS Glue、Amazon Redshift … • AWS Lambda + PyIceberg 等、多数の選択肢 • Iceberg REST カタログ • AWS Glue (Glue Data Catalog) • サーバーレスのカタログサービス、Glue以外からも利用可能 • Hive Catalog互換かつ、Iceberg REST APIを提供 • ストレージ • Amazon S3 (汎用S3バケット) or Amazon S3 Tables (テーブルバケット)
  14. © 2025, Amazon Web Services, Inc. or its affiliates. All

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

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

    rights reserved. 16 汎用S3バケットとS3テーブルバケット 汎用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
  17. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 17 複数のクエリエンジン間でIceberg表を共有可能 多くの環境がS3とGlue Data Catalog (Iceberg REST API)をサポートしており、 利用可能なエンジンが多い Amazon Redshift AWS Glue Amazon Athena Python (PyIceberg) Iceberg テーブルを 操作可能なツールの例 Amazon EMR Amazon Managed Service for Apache Flink Iceberg テーブル仕様のイメージ Amazon S3 Amazon S3 AWS Glue
  18. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 18 クエリエンジン選択の検討ポイント 1/ Icebergサポートと一口に言っても、どの機能をサポートしているかはエンジン によりまちまち • サポートするIceberg spec バージョンだけでなく、機能単位でサポートする・し ないがある点に注意 • 複数組み合わせる場合は相互運用に問題ないかの確認が必須 2/ クエリがどこでどう処理されるのかを意識する • クエリがどこで処理されるのか?を意識して検討(例:Lambdaで巨大なクエリ を実行した場合、それがLambdaのCPU/メモリ/実行時間 制限に収まるか?) • 巨大データの処理には分散処理ができるクエリエンジンを検討。一方で、ケース バイケースなのでノートPCで問題ないケースもある
  19. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. クエリエンジン (AWSサービス)とIceberg 概要 Iceberg 分散処理 用途(一例) Amazon Redshift Amazon Redshift Serverless DWH Read サービスの機能として 分散処理 Redshift内部の表に、外部表 (Iceberg)を取り込まずにジョイ ン Amazon EMR Amazon EMR Serverless Hadoop / Spark Read & Write Sparkによる分散処理 Spark/Hadoopアプリ次第 (TrinoでSQLクエリ、Sparkで 前処理や機械学習…) Amazon Glue ETL & カタログ Read & Write サービスの機能として 分散処理 (Spark) ETL(データの前処理) Amazon Athena クエリエン ジン Read & Write サービスの機能として 分散処理 (Trino) データレイク(S3)上のデータへ のアドホッククエリ AWS Lambda (+PyIcebergなど) コンピュー トエンジン (利用言語やライ ブラリによる) AWS Step Functionsと の組み合わせ等で実装 イベントドリブンのデータ演 算、軽量ETL …
  20. © 2025, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. まとめ 20 • Apache Iceberg はテーブルデータを高速かつ便利に扱う仕組みを備えており、 従来のデータレイクの課題を解決する • 様々なクエリエンジンが Iceberg のテーブルフォーマットを共有することで、 シームレスに連携することが可能 • AWSで利用する場合は、S3もしくはS3 Tablesにデータを配置し、カタログは Glue Data Catalogを利用することで、多様なクエリエンジンを利用可能