SQL、Scala、Pythonなどのインタープリターを共有ドキュメントで使える、インタラクティブなデータ分析向けWebノートブック。
apache/iceberg
Spark、Trino、Flink、Hiveなどのエンジンが同じテーブルを安全に共有できる、大規模な分析データセット向けの高性能なオープンテーブルフォーマットです。
- スター
- 9,412
- フォーク
- 3,665
- 未解決の Issue
- 909
- 最終コミット
- 18 時間前
これは何?
Apache Icebergは、大規模な分析データセット向けのテーブルフォーマットです。データレイクにSQLテーブルの信頼性とシンプルさをもたらし、複数の処理エンジンが同じテーブルを同時に扱っても、データを破損させずに利用できるようにします。
このリポジトリには、Iceberg仕様のリファレンス実装となるコアJavaライブラリが含まれています。公開API、Avro対応のコア実装、オプションのParquet・ORC・Arrowモジュール、Hive metastoreをバックエンドとするカタログ、JVMアプリケーションからテーブルを直接読み書きするためのdataモジュールに分かれています。Spark、Flink、Hiveとのエンジン統合も含まれています。
Go、Python(PyIceberg)、Rust、C++など、ほかの言語による実装は別のリポジトリで管理されています。Java 17または21上でGradleを使ってビルドします。
主な機能
- 01データレイクのテーブルに、SQLテーブルのような信頼性をもたらします。
- 02Spark、Flink、Hiveなど複数のエンジンで、同じテーブルを同時に利用できます。
- 03オプションのモジュールを通じて、Avro、Parquet、ORCのデータファイルをサポートします。
- 04Hive metastoreをバックエンドとするテーブル実装を備えています。
- 05JVMアプリケーションからテーブルを読み書きするためのJava APIを提供します。
ユースケース
- SparkとTrinoが同じ分析テーブルをクエリできるデータレイクを構築する。
- Flinkで分析テーブルにストリーミングデータを書き込みながら、バッチジョブで読み取る。
- HiveベースのスタックにあるParquetまたはORCデータセットに、テーブルレベルの信頼性を加える。
クイックスタート
- 1
リポジトリをクローンする
- 2
Gradleでプロジェクトをビルドしてテストを実行する(Java 17または21が必要)
./gradlew build
使う前に知っておきたいこと
- ビルドとテストの実行には、Java 17または21とテストスイート用のDockerが必要です。
- このリポジトリはJavaライブラリです。単体で動作するデータベースやエンドユーザー向けアプリケーションではありません。
トピック
よくある質問
- iceberg とは?
- Spark、Trino、Flink、Hiveなどのエンジンが同じテーブルを安全に共有できる、大規模な分析データセット向けの高性能なオープンテーブルフォーマットです。 Apache Icebergは、大規模な分析データセット向けのテーブルフォーマットです。データレイクにSQLテーブルの信頼性とシンプルさをもたらし、複数の処理エンジンが同じテーブルを同時に扱っても、データを破損させずに利用できるようにします。
- iceberg は無料で使えますか?ライセンスは?
- iceberg は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- iceberg は今もメンテナンスされていますか?
- 活発にメンテナンス中。iceberg の最終コミットは 2026年11月6日 です。
- iceberg は何に使えますか?
- SparkとTrinoが同じ分析テーブルをクエリできるデータレイクを構築する。 Flinkで分析テーブルにストリーミングデータを書き込みながら、バッチジョブで読み取る。 HiveベースのスタックにあるParquetまたはORCデータセットに、テーブルレベルの信頼性を加える。
- iceberg のインストール方法は?
- リポジトリをクローンする Gradleでプロジェクトをビルドしてテストを実行する(Java 17または21が必要): ./gradlew build
- iceberg はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/apache/iceberg
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Apache FlinkとSparkのジョブを実行・管理する、ストリーミングアプリケーション開発フレームワーク兼クラウドネイティブなコントロールプレーン。
Trinoは、ビッグデータソースを横断して高速な分析クエリを実行する分散SQLクエリエンジンです。
MySQLプロトコルに対応し、データレイクハウスと独自ストレージ上のデータをサブ秒で分析できるオープンソースMPPクエリエンジン。
AWS GlueでETLジョブやデータ統合パイプラインを構築するためのコードサンプル、チュートリアル、ユーティリティ。