Repolode
apache

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. 1

    リポジトリをクローンする

  2. 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 の数値は毎日更新されます。

関連プロジェクト