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

書籍『実践 Apache Iceberg』の歩き方

書籍『実践 Apache Iceberg』の歩き方

書籍『実践 Apache Iceberg』の知識を実務に繋げる、メダリオンアーキテクチャのテーブル設計から、CoW/MoR の使い分け、パーティション戦略まで、実プロジェクトで直面する課題と解決策を解説します。AWS 環境への導入を成功させるためのベストプラクティスを、具体的な注意点と対策と共にご紹介します。

Avatar for Satoru Ishikawa

Satoru Ishikawa

October 30, 2025
Tweet

More Decks by Satoru Ishikawa

Other Decks in Technology

Transcript

  1. © 2025 Classmethod, Inc. はじめに 1 名前:石川 覚(いしかわ さとる) 所属:クラウド事業本部

    担当:コンサルタント、ブログ・登壇等 経歴:メーカーでSE、研究開発   →ITベンチャーで製品開発、受託研究   →クラスメソッド(2014/6〜) 好きなサービス: Amazon Redshift/Athena/Bedrock、 Google BigQuery Sapporo 2020-2025 Japan AWS Top Engineers 2021-2025 Japan AWS All Certifications Engineers 

  2. © 2025 Classmethod, Inc. アジェンダ 3 • はじめに • Apache

    Icebergの基礎技術 • 体系的に学ぶ『実践 Apache Iceberg』の紹介 • 実践的な活用と学び • 最後に
  3. © 2025 Classmethod, Inc. 5 Apache Iceberg とは Apache Icebergとは、データレイク上にあるペタバイト規模の巨大な分析用

    データセットを管理するために設計された、オープンソースのテーブル フォーマット(OTF)です 。 re:Invent 2021でAmazon Athenaがサ ポートを開始したことでも、広く注目を 集めることになりました。 2023年にAmazon Athena(Iceberg) とdbt-athenaのソリューションついて AWSのウェビナーで紹介。
  4. © 2025 Classmethod, Inc. 6 なぜ今 Apache Iceberg なのか? 従来のデータレイクは、ビッグデータ時代の低コストストレージとして普及

    しましたが、エンタープライズ利用では深刻な課題ありました。 • データ整合性の欠如 ◦ 複数ジョブの同時実行時、読み込み・書き 込みの競合でデータ不整合が発生。トラン ザクション保証がなく、信頼性の高い分析 基盤として機能しない。 • 少量レコード更新処理の非効率性 ◦ GDPRや個人情報修正など少量レコード更 新でも、パーティション全体の再書き込み が必要。データ量に比例してコストと時間 が増大する。 • パーティション管理の限界 ◦ パーティション数が数千~数万に増加する と、メタデータ管理のオーバーヘッドでク エリ性能が著しく劣化する。 • クエリ設計の複雑化 ◦ 効率的なクエリにはパーティション構造の 理解が必須。開発者の負担が大きく、最適 化が困難。 • 過去状態の復元困難 ◦ 誤削除やデータ破損時、特定時点への復元 が事実上不可能。
  5. © 2025 Classmethod, Inc. 7 Apache Icebergによる解決 データレイクの課題( AS-IS) Apache

    Icebergによる解決( TO-BE) データ整合性の欠如 楽観的同時実行制御(Optimistic Concurrency Control) 少量レコード更新処理の非効率性 Row-level の更新・削除操作をサポート(MERGE、UPDATE、 DELETE) パーティション管理の限界 Hidden Partitioning(隠しパーティション) により、パーティションを 意識不要 クエリ設計の複雑化 パーティション変換(Partition Evolution) 機能により、ユーザーは パーティション構造を意識せずにクエリ可能 過去状態の復元が困難 タイムトラベル機能により、任意の時点のスナップショットにアクセ ス可能 Apache Icebergは、データレイクの課題をACIDトランザクション、隠し パーティション、スキーマ/パーティション進化といった特長で解決します。
  6. © 2025 Classmethod, Inc. 9 Apache Icebergを体系的に学び、実務に活用したい方向けの専門書です。手 を動かしながら学ぶことを重視しており、全体を通じて多くの章にハンズオ ンがあり、GitHubにリポジトリが公開されています。 書籍『実践

    Apache Iceberg』 https://dev.classmethod.jp/articles/20251022-review-of-apache-ioceberg-in-practice/ https://dev.classmethod.jp/articles/20251024-handson-of-apache-iceberg-in-practice/ https://github.com/murashitas/iceberg_book_handson
  7. © 2025 Classmethod, Inc. 10 3部構成で段階的に理解を深める 基礎編(第1部:Apache Icebergの基本) 実装編(第2部:分散ク エリエンジンでの利⽤)

    応⽤編(第3部:ユース ケースと応⽤) 従来のデータレイクが抱えて いた課題に対し、Icebergが どのように解決するかを解説 しています。メタデータレイ ヤーとデータレイヤーの構造 理解は、その後の機能を深く 理解する上で必要な知識とな ります。 1 2 3 Spark、Flink、Trino、 Hive、PyIcebergという5つの 主要なクエリエンジンでの実 装⽅法を網羅。各クエリエン ジンについて、座学とハンズ オンで学べる構成になってい ます。 Change Data Capture (CDC)によるリアルタイム データ同期、SCD Type 2によ る履歴管理、 Write-Audit-Publish(WAP) パターンによるデータ品質管 理など、実務で直⾯する課題 への具体的なソリューション パターンが⽰されています。
  8. © 2025 Classmethod, Inc. 11 Apache Icebergを包括的に解説することを目的としており、自身の課題に応 じて、優先的に読むべき章を選択する際の参考にしてください。 • 即効性を求める場合:自分の課題に最も関連する章から読み始め、必要に応じて基

    礎編(第1-3章)に戻る • 体系的に学びたい場合:第1章から順番に読み進め、自分の役割に関連する章は特 に丁寧に実践する • ハンズオン重視の場合:GitHubのサンプルコードがある章を優先的に選び、手を 動かしながら学習する この本を効率よく活用する読み方 いずれのアプローチでも、第1章「データレイクの課題とApache Iceberg」と 第2章「Apache Icebergの仕組みと機能」は全体の理解の基盤となるため、 早い段階で目を通しておくことをお勧めします。
  9. © 2025 Classmethod, Inc. 13 書籍から実践へ 導入で直面する3つのポイント 本書で体系的な知識を学んだ上で、現場で直面しやすいポイントを3つ厳選し て解説します。 1.

    データ分析基盤の全体設計 - メダリオンアーキテクチャでのIceberg活用 2. パフォーマンス最適化:更新戦略 CoWとMoR の使い分け 3. 運用の落とし穴:パーティション設定の注意点と対策
  10. © 2025 Classmethod, Inc. 14 1. メダリオンアーキテクチャでの活用 Bronze Gold ‧すべての⽣データを変更せずに取り

    込む。 ‧ソースデータの完全な履歴(監査証 跡)を保持する。 ‧下流の処理(Silver層へのETL)のイ ンプットとする。 ソースシステムから取り込んだ⽣デー タをそのままの形式で保存する層 データをクレンジング、正規化、 他のデータと結合して、信頼できるデータ ソース(SSOT)を整備する層 Silver メダリオンアーキテクチャとは、データをBronze(生)、Silver(加工)、 Gold(集計)の3層(レイヤ)で管理するデータアーキテクチャです。 ユースケース(BI、機械学習など)に合わ せて、Silver層のデータをさらに集計‧加 ⼯したデータマートを配置する層 ‧データのクレンジング(NULL値の処 理、重複排除、データ型の統⼀)。 ‧ビジネスロジックに基づいたデータの正 規化と変換。 ‧複数のデータソースの結合とエンリッチ メント。 ‧ビジネスKPIや主要メトリクスを事前集 計する。 ‧BIツールやアナリストが直接クエリする ための、最適化されたデータセットを提供 する。 ‧機械学習の特徴量(Feature Store)と して利⽤する。
  11. © 2025 Classmethod, Inc. 15 1. メダリオンアーキテクチャでの活用 レイヤ Icebergの機能 応用例

    Bronze (生) スキーマ進化 (Schema Evolution) ソースシステム側のスキーマ変更(カラムの追加など)が発生しても、Icebergは ADD COLUMNなどの操作を柔軟に受け入れられる。 パーティショニング (hidden partitioning) 取り込み日(例: event_date)などパーティショニング(hidden partitioning)する ことで、Silver層への増分処理の効率化 Silver (加工) ACIDトランザクション Bronze層から増分データをSilver層のテーブルにマージ(UPSERT: Update + Insert)する際に、MERGE INTO構文を使ってアトミックに処理 パーティショニング (Partition Evolution) データの物理的なレイアウトをSQLから隠蔽できます。後からパーティション戦略 を変更(Partition Evolution)することも容易になります。 Gold (集計) パフォーマンス最適化 (Compaction & Sorting) BIツールから頻繁にクエリされる。メンテナンス機能( REWRITE DATA FILES)は、小 さなファイルのマージ( Compaction)や特定のカラムでデータをソート( sort order)する ことで、クエリパフォーマンスを大幅に向上させる Time Travel (Snapshot) 「先週末時点のレポート」や「前日比」などの過去のSnapshot(特定の時点の集 計結果)を簡単に参照 メダリオンアーキテクチャ各レイヤにおけるIcebergの活用事例です。
  12. © 2025 Classmethod, Inc. 16 2. 更新戦略 CoWとMoR の使い分け 特性

    CoW(Copy-on-Write) MoR(Merge-on-Read) 優先度 読み取り効率を最大化 書き込み速度を優先 メカニズム 変更行を含むデータファイル全体を再作成 変更差分を削除ファイルとして記録し、読み取り時に マージ 書き込みコスト 高い(ファイル全体を書き換え) 低い(差分のみ書き込み) 読み込みコスト 低い(特になし) 高い(読込時に更新データを反映する必要がある) 用途例 行レベルの変更が少ない読み取り中心のBI 分析 頻繁な少量更新やストリーミング処理 OPTIMIZE実行時間 高速 Position Deleteは普通、Equality Deleteは低速 取り込み頻度に応じて書き込みモードを選択できます。リアルタイム取り込 みならMoR(Merge-on-Read)、バッチならCoW(Copy-on-Write)が適 切です。 ※ Apache Icebergは、一般的にデフォルト CoWですが、Amazon Athena の更新系クエリのデフォルトは MoRで す。
  13. © 2025 Classmethod, Inc. 17 3. 隠しパーティション設定の注意点と対策 隠しパーティショニング(Hidden Partitioning)とは、元のデータ列(例: タイムスタンプ)の値に基づいて、Icebergが自動的にパーティション値を生

    成・管理する仕組みです。 • 従来(Hiveテーブル) ◦ order_date=2023-10-29 のような物理的なパーティ ション列(と物理フォルダ)をユーザーが作成・管理し、クエ リでも WHERE order_date > '2023-10-28’ と指定 する必要がある。 • Icebergテーブル ◦ CREATE TABLE ... PARTITION BY day(order_timestamp) のように定義すると、データ 追加時、Icebergは order_timestamp 列の値から自動 で日単位のパーティションに振り分ける。クエリは WHERE order_timestamp > '2023-10-28 00:00:00' と 元の列を指定するだけで、 Icebergが自動で不要なパー ティションを読み飛ばす。 CREATE EXTERNAL TABLE hivetable.sales(… order_timestamp timestamp) PARTITIONED BY (order_date date)… CREATE TABLE iceberg.sales(… order_timestamp timestamp) PARTITIONED BY (day(order_timestamp))… sales/ data/ 13VN2A/ order_timestamp_day=2023-10-28/ 20251028_203253_00087_zsnwu-a3….parquet sales/ order_date=2023-10-28/ salse_20231028000000.parquet
  14. © 2025 Classmethod, Inc. 18 変換関数をデータ列に適用してパーティションを定義、パーティション用の カラムをデータスキーマに追加する手間が不要となる。 3. 隠しパーティション設定の注意点と対策 関数

    説明 サポートしている型 year(ts) 日付またはタイムスタンプから「年」を抽出します。 date, timestamp month(ts) 日付またはタイムスタンプから「月」を抽出します。(例: 2025-10-29 → 2025-10) date, timestamp day(ts) 日付またはタイムスタンプから「日」を抽出します。(例: 2025-10-29 06:00 → 2025-10-29) date, timestamp hour(ts) タイムスタンプから「時」を抽出します。(例: 2025-10-29 06:01 → 2025-10-29-06) timestamp bucket(N, col) 値をハッシュ化し、N個のバケット(グループ)に均等に分散させます。カーディナリティ が高い列(例: UUID, ユーザーID)に適しています。 Amazon Athenaの場合は、Nに100以内を指定して同時更新パーティション数を超えない 運用が可能。 int, long, decimal, date, timestamp, string, binary truncate(L, col) 値を指定した幅(L)で切り捨てます。 ・文字列: 最初のL文字で切り捨てます。(例: truncate(3, 'Iceberg') → Ice) ・整数: Lの倍数に切り捨てます。(例: truncate(10, 123) → 120) int, long, decimal, string
  15. © 2025 Classmethod, Inc. 19 3. 隠しパーティション設定の注意点と対策 失敗事例/課題 具体的な問題と影響 対策/ベストプラクティス

    パーティション 粒度が細かすぎ る デバイスIDなど高カーディナリティの列にそのま まパーティショニングを適用すると、パーティ ション数が爆発的に増加、大量の小さなデータ ファイル(スモールファイル)が生成される。 高カーディナリティの列には、 Bucket関数 (bucket(N, col)) を 使用してパーティション数を固定 数に制限し、均等分散させる 。 OPTIMIZEによ るストレージ爆 発 上記の理由で発生した大量のスモールファイルを 解消するためにOPTIMIZE TABLE REWRITE DATA(コンパクション)を実行すると、古い ファイルが即座に削除されず、新しいファイルと 一時的に重複して存在するため、ストレージ使用 量が爆発的に増加する。 コンパクション後、必ず expire_snapshots(スナップ ショット削除)を実行し、不要な 古いファイルを物理的に削除す る。 Icebergを大規模データ分析基盤に導入する際、不適切な隠しパーティショ ン設定とコンパクション運用(OPTIMIZE)の組み合わせは、クエリパフォー マンスの低下やストレージコストの爆発的な増加を招く可能性がある。
  16. © 2025 Classmethod, Inc. 20 最後に • Apache Icebergは、従来のデータレイクの課題(データ不整合、非効率な更 新、複雑なパーティション管理)を解決する強力なテーブルフォーマットであ

    る。 • 『実践 Apache Iceberg』は、基礎から各クエリエンジン(Spark, Trino等)で の実装・応用までを体系的に学べる良書であり、ハンズオンも充実している。 • 本日紹介できなかったが、ストリーミングインジェッションのテーブルの OPTIMIZE、効果的なソートオーダー、Equality Deleteなどの検討課題の解決に は、本書は不可欠な一冊。
  17. © 2025 Classmethod, Inc. 21 最後に • Apache Icebergは、従来のデータレイクの課題(データ不整合、非効率な更 新、複雑なパーティション管理)を解決する強力なテーブルフォーマットであ

    る。 • 『実践 Apache Iceberg』は、基礎から各クエリエンジン(Spark, Trino等)で の実装・応用までを体系的に学べる良書であり、ハンズオンも充実している。 • 本日紹介できなかったが、ストリーミングインジェッションのテーブルの OPTIMIZE、効果的なソートオーダー、Equality Deleteなどの検討課題の解決に は、本書が不可欠。 DECEMBER 1 – 5, 2025 | LAS VEGAS, NV Blog it!