Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Iceberg The Definitive Guide 輪読会第一回
Search
Kentaro Maeda
September 11, 2024
Programming
520
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Iceberg The Definitive Guide 輪読会第一回
Kentaro Maeda
September 11, 2024
Other Decks in Programming
See All in Programming
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
JIS keyboard support in Omarchy
lef237
0
120
phperだってパンチカードでコーディングしたい
o0h
PRO
0
340
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
2
370
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
150
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
160
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
590
R8 の設定見直しでアプリサイズ削減
andpad
0
220
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
760
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
310
Building AI with AI
inesmontani
PRO
1
1.3k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Faster Mobile Websites
deanohume
310
32k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
410
Side Projects
sachag
456
43k
Believing is Seeing
oripsolob
1
240
Facilitating Awesome Meetings
lara
57
7.2k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Transcript
Apache Icebergとはなにか 2024/06/28
データレイクハウスに⾄るまで 2 ©RAKUDEJI Inc, 2024.
データレイクハウスに⾄るまでの系譜 3 ©RAKUDEJI Inc, 2024. PostgreSQL 取り込みにコストが かかる クラウド データウェアハウス
データレイク データレイク ハウス オンプレ データウェアハウス リレーショナル データベース Teradata MySQL Snowflake Apache Hive Apache Iceberg ⾼い・スケールしない 集計が遅い 集計が早い 無限にスケールする 取り込みが簡単 データの不整合が発⽣しない スキーマオンライト パフォーマンスの問題を改善 カタログとエンジンの互換性 ファイル数が巨⼤になると遅い スキーマオンリード
データレイクとデータレイクハウス 4 ©RAKUDEJI Inc, 2024. Hive: 代表的なデータレイクのテーブルフォーマット db1.table1というテーブルは/db1/table1というディレクトリに格納されるシンプルな構成 ⾼速化のためにクラスタリングをサポート `where
k1=A`の時は/db/table1/k1=A以下だけを⾒れば良い 問題点 フォルダ=テーブルという構成はわかりやすいが効率が悪かった 遅い 例えばk1=Aに該当するファイルが数千万個になった場合に S3のファイルスキャンが遅い(最⼤5500 ファイル/s) 整合性の問題 ファイルの削除順の問題 k1=Aに該当するファイルを削除中に読み取りが⾏われた 場合に不完全な結果を返す場合がある
データレイクとデータレイクハウス 5 ©RAKUDEJI Inc, 2024. Iceberg: Hiveの問題点を解決するためのテーブルフォーマット。 ファイルとフォルダではなく、メタデータファイルで具体的なデータファイルを指定 クエリエンジンがIcebergテーブルにクエリを⾏うまで 1.
Icebergカタログから、メタデータファイルの場所(s3)を取得 2. クエリエンジンがメタデータファイルからスキーマ、パーティション情報、 最新のスナップショットを読み込む 3. クエリエンジンが最新のスナップショットのマニフェストリストの場所を取 得 4. クエリエンジンがマニフェストリストからマニフェストファイル⼀覧を取得。 マニフェストファイルにはデータファイルの場所、列の最⼤値・最⼩値など の情報が含まれている。 5. クエリエンジンが、SQLの条件から読み込むべきファイルを絞り込む(プルー ニング) 6. クエリエンジンがデータレイヤーにアクセスして、データを取り出す 7. クエリエンジンがマシンリソースで処理して結果を返す
Icebergテーブルを実際に⾒てみる 6 ©RAKUDEJI Inc, 2024.
クエリエンジンとは︖ 7 ©RAKUDEJI Inc, 2024. どんなコンピューターで処理するか︖どうやってデータを取得するか︖などを管理する Snowflake Snowflakeの管理するウェアハウスで処理 Spark AWS
SageMakerなどからSparkクラスタを⽤意して利⽤ Trino AWS EC2などで セルフホストできる分散クエリエンジン Icebergだけでなく、S3やRDBなどに直接 クエリできる
Icebergを利⽤するのはどんなときか︖ 8 ©RAKUDEJI Inc, 2024. 1. 数⼗TB~規模の巨⼤なデータを格納する場合 COPY INTOを実⾏するコストをカットできる 例:
携帯キャリアの通信履歴、Netflixの視聴履歴 2. SparkやTrinoからも同じテーブルにアクセスしたい場合 Snowflake以外からもクエリできる 例: 沢⼭の⼦会社などがあり、Snowflakeを強制することが出来ない場合 Icebergテーブルを作るようにすれば、データの移動なく様々なクライアントからアクセスできる
SnowflakeのIcebergテーブルでサポートされていない機能 9 ©RAKUDEJI Inc, 2024. * クローン * ⼀部のドライバー: *
ODBCドライバー * .NETドライバー * Go Snowflakeドライバー * Snowflake⽤PHP PDOドライバー * Node.jsドライバー * ダイナミックテーブル * フェイルセーフ * ハイブリッドテーブル * クエリ⾼速化サービス * Icebergテーブル、外部ボリューム、カタログ統合のレプ リケーション * 検索最適化サービス * Snowflake暗号化 * Snowflake Nativeアプリフレームワーク * Snowflakeスキーマ進化 * Snowpipeストリーミング: * SnowpipeストリーミングでのSnowflake Connector for Kafkaコネクタ * Snowflake Ingest SDK * Snowpipeストリーミング API * ⼀時テーブルと⼀時的テーブル 外部カタログを使⽤するIcebergテーブル: * クラスタリング * 標準ストリーム
©RAKUDEJI Inc., 2024. 10 世界で⼀番Snowflakeに詳しい会社を⽬指す