基于 Web 的交互式数据分析笔记本,可在同一文档中混合使用 SQL、Scala、Python 等解释器。
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
克隆代码仓库
- 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 数据每日更新。
相关项目
6669+2 本周2833JavaApache-2.0维护活跃更新于 3天前
面向 Apache Flink 和 Spark 的流式应用开发框架与云原生实时计算管理平台。
43461093JavaApache-2.0更新于 7天前
Trino 是一个分布式 SQL 查询引擎,用于在大数据源之间执行分析型查询。
1.3万+91 本周3856JavaApache-2.0维护活跃更新于 22小时前
一款开源 MPP 查询引擎,面向数据湖仓与自有存储的亚秒级分析,兼容 MySQL 协议。
1.2万2655JavaApache-2.0维护活跃更新于 21小时前
AWS Glue 数据集成的代码示例、教程与实用工具合集,涵盖 ETL 作业与数据管道。
1540835PythonMIT-0更新于 21小时前