44 lines
1.6 KiB
Markdown
44 lines
1.6 KiB
Markdown
---
|
||
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 存储格式)
|