すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Iceberg

最終更新日:Aug 15, 2026

Iceberg は、HDFS または Alibaba Cloud Object Storage Service (OSS) にデータを格納し、Spark、Flink、Hive、Presto で分析できる、オープンなデータレイクテーブルフォーマットです。

コア機能

Apache Iceberg は、Hive データウェアハウスをクラウドに移行するためのソリューションとして始まり、その後、クラウドベースのデータレイクサービスの標準テーブルフォーマットとなりました。詳細については、Apache Iceberg の公式サイトをご参照ください。

Iceberg は以下の機能を提供します:

  • HDFS または OSS 上の低コストのデータレイクストレージ。

  • 取り込みと分析のためのオープンソースのコンピューティングエンジンとのシームレスな統合。

  • 完全な ACID セマンティクス。

  • 行レベルのデータ変更。

  • 履歴バージョンのロールバック。

  • 効率的なデータフィルタリング。

  • スキーマ進化。

  • パーティションレイアウトの進化。

  • 隠しパーティショニング。

次の表は、オープンソース ClickHouse (リアルタイムデータウェアハウス) 、オープンソース Hive (オフラインデータウェアハウス) 、Alibaba Cloud Iceberg (データレイク) の 3 つのアーキテクチャを比較したものです。

比較基準

サブ項目

オープンソース ClickHouse リアルタイムデータウェアハウス

オープンソース Hive オフラインデータウェアハウス

Alibaba Cloud Iceberg データレイク

システムアーキテクチャ

アーキテクチャ

コンピューティングとストレージの結合

コンピューティングとストレージの分離

コンピューティングとストレージの分離

複数コンピューティングエンジンのサポート

非サポート

サポート

サポート

オブジェクトストレージ上のデータストレージ

非サポート

部分的にサポート

サポート

HDFS 上のデータストレージ

非サポート

サポート

サポート

ストレージフォーマットのオープン性

非公開

オープン

オープン

ビジネス価値

即時性

秒

時間/日

分

コンピューティングの柔軟性

低

高い

高い

トランザクション

非サポート

不完全

サポート

テーブルレベルのセマンティクスの普遍性

劣る

劣る

優れる

行レベルのデータ変更

非サポート

限定的にサポート

サポート

データ品質

非常に高い

高

高

メンテナンスコスト

クエリパフォーマンス

高

高

高

ストレージコスト

非常に高い

中

低

セルフサービス

非サポート

非サポート

サポート

リソースの弾力性

一般的

一般的

優れる

オープンソース Iceberg との比較

次の表は、Alibaba Cloud Iceberg とオープンソース Iceberg の基本機能、データ変更、コンピューティングエンジンを比較したものです。

説明

√ は機能がサポートされていることを示し、x は機能がまだサポートされていないことを示します。

カテゴリ

項目

サブ項目

オープンソース Iceberg

Iceberg Commercial Edition (Alibaba Cloud)

基本機能

ACID

該当なし

√

√

履歴バージョンのロールバック

該当なし

√

√

Source と Sink の統合

バッチ

√

√

ストリーミング

√

√

効率的なデータフィルタリング

該当なし

√

√

データ変更

スキーマ進化

該当なし

√

√

パーティションの進化

該当なし

√

√

コピーオンライト更新

該当なし

√

√

マージオンリード更新

読み取り

√

√

書き込み

√

√

コンパクション

x

√

コンピューティングエンジン

Apache Spark

読み取り

√

√

書き込み

√

√

Apache Hive

読み取り

√

√

書き込み

√

√

Apache Flink

読み取り

√

√

書き込み

√

√

PrestoDB または Trino

読み取り

√

√

書き込み

√

√

プログラミング言語

Java

該当なし

√

√

Python

該当なし

√

√

高度な機能

Alibaba Cloud OSS とのネイティブ統合

該当なし

x

√

Alibaba Cloud DLF とのネイティブ統合

該当なし

x

√

ローカルデータキャッシュの高速化

該当なし

x

√

小規模ファイルの自動コンパクション

該当なし

x

√

説明

この比較は、2021 年 9 月時点のオープンソース Iceberg と Iceberg の Commercial Edition の分析に基づいて作成されました。機能のサポートは、将来のバージョンアップグレードによって変更される可能性があります。

シナリオ

Iceberg はデータレイクソリューションの中核コンポーネントであり、以下のシナリオに適しています。

シナリオ

説明

リアルタイムのデータインポートとクエリ

上流データは Iceberg データレイクにリアルタイムでストリーミングされ、すぐにクエリ可能です。 たとえば、ロギングシナリオでは、Iceberg または Spark のストリーミングジョブを開始して、ログを Iceberg テーブルに書き込みます。 その後、Hive、Spark、Iceberg、または Presto を使用してデータをクエリします。 ACID サポートにより、取り込みとクエリの間の分離が保証され、ダーティリードが防止されます。

データの削除または更新

従来のデータウェアハウスでは、行レベルの削除や更新を効率的に実行することは困難です。これらの操作では通常、元のテーブル全体を読み取り、データを変更し、書き戻すオフラインジョブを実行する必要があります。Iceberg は変更をテーブルレベルからファイルレベルに絞り込むことで、効率的な部分更新が可能です。

Iceberg データレイクでは、DELETE FROM test_table WHERE id > 10 などのコマンドを実行することで、テーブル内のデータを直接変更できます。

データ品質管理

Iceberg のスキーマ検証を使用して、インポート中に異常なデータを破棄するか、さらに処理することができます。

データスキーマの進化

Iceberg は、履歴データを書き換えることなく、Spark SQL DDL ステートメントによるスキーマ変更をサポートしているため、高速な進化を実現します。

ACID サポートにより、スキーマ変更が既存の読み取りジョブから分離され、プロセス全体で一貫した読み取りが保証されます。

リアルタイム機械学習

機械学習のワークフローでは、データ処理 (クレンジング、変換、特徴抽出) が大半の時間を占めます。Iceberg は、履歴データとリアルタイムデータを単一の信頼できるストリームに統合し、各処理ステップがパイプラインのノードとして機能します。これにより、個別のバッチパスとストリーミングパスが不要になります。Iceberg は、アルゴリズム開発者向けにネイティブの Python SDK も提供しています。