Repolode
apache

apache/iceberg

面向海量分析数据的高性能开放表格式,让 Spark、Trino、Flink、Hive 等引擎安全地同时读写同一张表。

Star
9,412
Fork
3,665
未关闭 Issue
909
最近提交
昨天

这是什么?

Apache Iceberg 是一种面向大规模分析数据集的表格式,为数据湖带来类似 SQL 表的可靠性和易用性,让多个计算引擎可以同时操作同一张表而不会相互破坏数据。

本仓库包含核心 Java 库,同时也是 Iceberg 规范的参考实现。代码按模块组织:公共 API、带 Avro 支持的核心实现、可选的 Parquet、ORC 和 Arrow 模块、基于 Hive Metastore 的表实现,以及可在 JVM 应用中直接读写表的数据模块。此外还提供 Spark、Flink 和 Hive 的引擎集成。

其他语言的实现位于独立仓库,包括 Go、Python(PyIceberg)、Rust 和 C++。项目使用 Gradle 构建,支持 Java 17 和 21。

核心功能

  • 01为数据湖表提供类似 SQL 表的可靠性。
  • 02支持 Spark、Flink、Hive 等多个引擎同时操作同一张表。
  • 03通过可选模块支持 Avro、Parquet 和 ORC 数据文件。
  • 04提供基于 Hive Metastore 的表实现。
  • 05提供 Java API,可在 JVM 应用中读写表。

适用场景

  • 构建数据湖,让 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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目