Slide 1

Slide 1 text

Amazon S3 Tables + Amazon Athena / Apache Iceberg 
 LT
 Iceberg の語源から 
 2025/4/12 


Slide 2

Slide 2 text

©2025 Voicy, Inc. 自己紹介 名前:織田 薫(かおる)
 会社:株式会社Voicy
 職業:SRE
 ぺんぎん好き
 mixi2:@penpen


Slide 3

Slide 3 text

©2025 Voicy, Inc.

Slide 4

Slide 4 text

©2025 Voicy, Inc. https://prtimes.jp/main/html/rd/p/000000390.000021111.html

Slide 5

Slide 5 text

©2025 Voicy, Inc. Voicyのアーキテクチャ 
 ● FidyTools(https://findy-tools.io/companies/voicy/78/13)


Slide 6

Slide 6 text

©2025 Voicy, Inc. Iceberg の語源 
 ● オランダ語の ijsberg
 ● ijs => ice = 氷
 ● berg => berg = 山


Slide 7

Slide 7 text

©2025 Voicy, Inc. 氷山


Slide 8

Slide 8 text

©2025 Voicy, Inc. 氷山とペンギン 


Slide 9

Slide 9 text

©2025 Voicy, Inc. なぜ、Iceberg なのか? ● 「氷山(iceberg)」の一角のように、「目に見える データは一部だけで、その下に大きな構造が隠れ ている」という発想に基づいて名付けられたそう


Slide 10

Slide 10 text

©2025 Voicy, Inc. Iceberg のテーブル構造 


Slide 11

Slide 11 text

©2025 Voicy, Inc. メタデータファイル(metadata.json) 
 ● テーブル全体の基本情報と履歴管理を担うファイ ル
 ● 最新スナップショットのID、スキーマ定義、パーティ ション方式などを含む
 ● Icebergのテーブルルートに置かれる


Slide 12

Slide 12 text

©2025 Voicy, Inc. メタデータファイル(metadata.json) 


Slide 13

Slide 13 text

©2025 Voicy, Inc. スナップショットファイル(snapshot-*.json) 
 ● テーブルのある時点の状態を記録
 ● どのマニフェストを参照しているか、どのような操 作(append, overwrite, delete)だったかが記録され る


Slide 14

Slide 14 text

©2025 Voicy, Inc. スナップショットファイル(snapshot-*.json) 


Slide 15

Slide 15 text

©2025 Voicy, Inc. マニフェストファイル(manifest-*.avro) 
 ● 実際のデータファイル(Parquetなど)のリスト
 ● 各データファイルの行数、パーティションキー、 min/max値、nullの有無などの統計情報が含まれ る
 ● クエリエンジンはこれを使って、プルーニング(ファ イルスキップ)などの最適化が可能になる


Slide 16

Slide 16 text

©2025 Voicy, Inc. マニフェストファイル(manifest-*.avro) 


Slide 17

Slide 17 text

©2025 Voicy, Inc. S3 Tables では 
 引用:https://medium.com/aws-tip/deep-dive-into-new-amazon-s3-tables-4e1de56394eb

Slide 18

Slide 18 text

©2025 Voicy, Inc. S3 Tables では 
 引用:https://medium.com/aws-tip/deep-dive-into-new-amazon-s3-tables-4e1de56394eb

Slide 19

Slide 19 text

©2025 Voicy, Inc. Parquet の語源 
 ● フランス語の parquet
 ● 寄せ木細工の床、という意味
 ● 読み方は、パーケイ or パルケ


Slide 20

Slide 20 text

©2025 Voicy, Inc. なぜ、Parquet なのか? 
 ● 列指向ストレージでは、データを行単位ではなく 「列ごと」にまとめて格納。これはちょうど、いろん な種類の木材を組み合わせてパターン化された 寄せ木細工の床を作るのに似ており、それがこの 形式の名前の由来になってる


Slide 21

Slide 21 text

©2025 Voicy, Inc. Parquet のファイル構造 


Slide 22

Slide 22 text

©2025 Voicy, Inc. File Header 
 ● 固定のマジックバイト列 "PAR1" から始まる
 ● フォーマット識別用


Slide 23

Slide 23 text

©2025 Voicy, Inc. Row Group 
 ● データをある程度のサイズ(通常は128MBなど)で ブロック単位に区切ったもの
 ● 1 Row Group = 全列のデータのまとまり
 ● 複数のRow Groupで1ファイルを構成することがで きる


Slide 24

Slide 24 text

©2025 Voicy, Inc. Column Chunk 
 ● Row Group 内で 各列ごとのデータを保持
 ● 列指向なので、列ごとに連続したデータを保存し、 圧縮・エンコードがしやすい


Slide 25

Slide 25 text

©2025 Voicy, Inc. Pages 
 ● Column Chunk は 複数の Page に分割される
 ○ Data Page:実データを保持
 ○ Dictionary Page(任意):辞書圧縮時にキーと 値のマッピングを保持
 ○ Index Page:高速アクセス用


Slide 26

Slide 26 text

©2025 Voicy, Inc. File Footer 
 ● ファイル末尾にある重要なメタ情報セクション
 ● 内容:
 ○ スキーマ情報(列名、型、ネスト構造)
 ○ 各 Row Group のオフセット、サイズ、列統計情 報(min/max, null count)
 ○ 作成ツールのバージョンなど


Slide 27

Slide 27 text

©2025 Voicy, Inc. ご清聴
 ありがとうございました!