Files
nexus/wiki/entities/Apache-Iceberg.md
2026-05-03 05:42:12 +08:00

44 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Apache Iceberg"
type: entity
tags: [data-engineering, lakehouse, open-table-format, ACID]
sources: [engineering-data-engineer]
last_updated: 2026-05-02
---
## Overview
Apache Iceberg 是一个开放表格格式规范Open Table Format为数据湖提供 ACID 事务、隐藏分区、时间旅行和跨引擎互操作能力。Data Engineer Agent 使用 Iceberg 替代或与 Delta Lake 配合实现跨引擎Spark/Trino/Presto读写同一份数据。
## Key Features
### ACID Transactions
与 [[Delta Lake]] 类似Iceberg 提供写操作的原子提交和并发控制。
### Hidden Partitioning隐藏分区
- 分区策略由 Iceberg 自动管理,消费者无需感知分区键
- 支持身份分区identity、桶分区bucket、日期/时间分区等
- 避免用户误操作分区列导致数据倾斜
### Time Travel & Rollback
- 通过 snapshot ID 或 timestamp 查询历史数据
- 支持 rollback 到任意历史 snapshot
###跨引擎互操作
- Spark、Trino、Presto、Flink、Hive 均可读写同一 Iceberg 表
- 企业级数据湖多引擎共享数据的标准方案
## Iceberg vs. Delta Lake
| 特性 | Apache Iceberg | Delta Lake |
|------|---------------|------------|
| 起源 | Netflix/Apple 开源 | Databricks 开源 |
| 跨引擎 | ✅ 原生多引擎 | ⚠️ 主要 Spark/Databricks |
| 隐藏分区 | ✅ | ❌ |
| 增量读取 | ✅ | ✅ |
| 生态 | Trino/Presto/Flink 广泛支持 | Spark/Databricks 深度集成 |
## Related Concepts
- [[Delta Lake]]Iceberg 的主要替代方案)
- [[Medallion Architecture]]Iceberg 作为 Bronze/Silver/Gold 存储格式)