Apache Iceberg とは?

Apache Iceberg は、データレイク内の大規模データセットを管理するために設計されたオープンソースのテーブルフォーマットです。従来の Apache Hive などのテーブルフォーマットが抱える制約、特に大容量データの効率的かつ一貫性のある処理に対応するために開発されました。

instantly

信頼性の高いデータ整合性

Iceberg は ACID トランザクションをサポートしており、複雑で並行性のあるデータ操作においてもデータの完全性と信頼性を確保します。

unify-icon

非破壊的な Schema Evolution

Iceberg は Schema Evolution に対応しており、スキーマの変更(カラムの追加・削除・リネームなど)を段階的に適用できます。これにより、稼働中の処理に影響を与えることなくスキーマを柔軟に更新できます。

real-time-icon

クエリ性能の向上

データプルーニングやパーティション認識などの機能により、Iceberg はクエリ時にスキャンするデータ量を大幅に削減し、大規模データセットにおいても高速なクエリを実現します。

Iceberg の主な機能

Iceberg は世界中で広く利用されており、堅牢な機能セットを備えていることから、レイクハウステーブルフォーマットとしての最有力候補となっています。

Schema Evolution

データの再分配やダウンタイムを必要とせず、スキーマ変更をシームレスにサポートします。

Partition Evolution

既存のデータに影響を与えることなく、クエリ性能を最適化するためにパーティションを動的に適応させます。

ACID Transactions

ACIDトランザクションを強力にサポートすることで、データの完全性と一貫性を確保します。

Time Travel

データセットの過去の状態に簡単にアクセスできるように、過去バージョンのデータをクエリ可能にします。

効率的 Data Pruning

メタデータのツリー構造を活用することで、スキャンするデータ量を最小限に抑え、パフォーマンスを向上させます。

Iceberg ユースケース - ゲーム業界

現代のゲームは膨大なデータを生成します。ストレージはコストを抑えるだけでなく、データサイロを解消し、チームやスタジオをまたいで誰もがデータを最大限に活用できるようにする上で重要な役割を果たします。

 

Tencent Gaming がすべてのワークロードを Apache Iceberg に統合することで、事前集計をすべて排除しつつストレージコストを15倍削減した方法をご覧ください。ケーススタディを読む。

 

Apache Iceberg の代替案

Iceberg が合わない場合は、他の人気のあるオープンレイクハウステーブルフォーマットの選択肢もご確認ください。
Hudi Logo

Apache Hudi

リアルタイムデータの取り込みやアップサート機能で知られる Hudi は、低レイテンシなデータ更新や高速なデータ取り込みが求められるシナリオにおいて優れた性能を発揮し、増分処理にも対応しています。

Apache_Paimon_Logo-removebg-preview

Apache Paimon

Paimon はリアルタイムストリーミングデータおよび動的な Schema Evolution を強力にサポートしており、継続的なデータ更新やスキーマ変更が頻繁に発生する環境に適しています。

Delta Lake Logo

Delta Lake

Delta Lake は、強力な ACID トランザクション対応と Apache Spark エコシステムとのシームレスな統合により広く認知されており、大規模データ処理に Spark を活用しているユーザーにとっては非常に有力な選択肢です。

Iceberg のパフォーマンス向上

以下の最適化のヒントを活用することで、Iceberg の導入環境から最高のパフォーマンスを引き出すことができます。

Metadata Rewrite

クエリプランニングを高速化し、より効率的な Data Pruning を可能にするために、メタデータファイルを最適化します。これにより、クエリ時にスキャンされるデータ量が削減されます。

Data Compaction

多数の小さなファイルを定期的に大きなファイルへと Compaction することで、スキャンの効率を高め、ファイル処理のオーバーヘッドを抑えてクエリ全体のパフォーマンスを向上させます。

Iceberg の機能を活用する

Hidden Partitioning などの Iceberg 独自の機能を活用することで、ユースケースやワークロードに応じたデータレイアウトの最適化やクエリ性能の改善が容易になります。

データウェアハウス流の最適化

Partitioning、Sorting、Clustering といった従来のデータウェアハウスの最適化手法を Iceberg 上でも適用することで、ストレージやアクセスパターンを調整し、クエリ実行の高速化を図ります。

適切なクエリエンジンを選定する

Iceberg と高い統合性を持ち、ユースケースに合ったクエリエンジンを選定しましょう。低レイテンシクエリを Spark で無理に実現しようとするのではなく、StarRocks のように目的に合致したクエリエンジンを使用することで、最適なパフォーマンスが得られます。

ユースケース:データレイク向けクエリエンジン

Iceberg の導入は、優れたレイクハウス構築の第一歩です。成功には、適切なクエリエンジンの選定も欠かせません。以下に代表的なユースケースを紹介します。
WeChat-Logo.wine

ソーシャルメディア

ある大手ソーシャルメディア企業は、データレイクハウスアーキテクチャへ移行することで、1日あたり数兆件にのぼるデータの処理において、開発サイクルの短縮とコスト効率の向上を実現しました。

 

 

trip.com@2x

トラベル

Trip.com は従来のデータウェアハウスを廃止し、データレイクハウス用クエリエンジンに切り替えることで、クエリ性能を10倍向上させました

 

 

AT Renew Logo

Eコマース

ある環境系製造企業は、最新のオープンソースデータレイクハウスクエリエンジンへ移行することで、分析システムのコスト効率を10倍に高めました。

 

 

Tencent-Logo-1998

ソフトウェア

Tencent の A/B テスト向けSaaSプラットフォーム「ABetterChoice」は、要求の厳しいカスタマー向けワークロード をデータレイクハウス上に 統合しています

 

CelerData による Apache Iceberg の強化

StarRocks を基盤とする CelerData は、市場で最高レベルの分析性能とスケーラビリティを実現します。その仕組みをご紹介します。

Massively Parallel Processing

CelerData の Massively Parallel Processing(MPP)アーキテクチャは、インメモリデータシャッフルにより、単一ノードがシステム全体のボトルネックになることを防ぎます。これにより、特に JOIN や複雑な集計クエリにおいて、ほぼ線形にスケールすることが可能になります。

Vectorized Query Execution

C++ で実装され、SIMD 最適化が完全に施されているだけでなく、CelerData の Vectorized Query Execution により、Apache Iceberg 上で業界最速レベルのクエリ性能を実現します。

Caching Framework

CelerData の Caching Framework は、メモリおよびディスクをベースとしたメタデータキャッシュとデータキャッシュを実装しており、リモートストレージからのデータ取得にかかる高コストなオーバーヘッドを解消します。

Intelligent Materialized View

外部処理ツールを使用せずに、低速なクエリを高速化するためにオンデマンドで構築されるよう設計されています。CelerData のクエリリライト機能により、SQL を手動で変更することなく、いつでも Materialized View(MV)を構築可能です。

Distributed Iceberg Metadata Retrieval

CelerData は、ジョブプランニングおよび Iceberg メタデータの取得タスクをコンピュートノード全体に分散させます。Manifest ファイルの処理を並列化することで、StarRocks はクエリプランニング処理の高速化とスケーラビリティを実現します。