×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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. ご清聴 ありがとうございました!