Iceberg
Apache开源的高性能表格式,为数据湖提供ACID事务、Schema演进和分区管理等能力,是湖仓一体架构中与Delta Lake并列的开放格式标准
时间轴 (近 90 天)
缓解 Iceberg 流式写入提交冲突的直接手段包括:减少提交频率、扩大单次批写粒度、把压缩放在低冲突窗口执行。
持续向 Iceberg 湖仓流式写入(如每 30 秒提交一次)会在几十个分区上制造大量约 120 KB 的 Parquet 碎片文件,两个月内单表可累积超过 400 万个独立对象。
Logic42 工程团队观测到一家金融客户因 Flink 持续写入 Iceberg 湖仓导致查询引擎直接放弃响应。
Iceberg 表的元数据采用多级树状结构:表快照(snapshot)→ manifest list → manifest file → 数据文件(data file),查询引擎在规划阶段必须完整读取整棵元数据树。
当表内有 400 万个 120 KB 的小文件时,manifest 文件本身可达数千个、总计数 GB,仅读取这棵元数据树就可能耗尽 Trino coordinator 的堆空间。
Iceberg 使用乐观并发控制协调多个写入者:提交时原子替换 catalog 中的 metadata 指针,若指针已被其他写入者改动则提交失败并重试。
在流式场景中,数十个 Flink 并行子任务每 30 秒提交一次快照并叠加后台压缩任务,会导致 Iceberg 乐观并发控制的冲突概率急剧上升,进而触发反压并传导至 Kafka broker。
湖仓架构将开放格式(如 Parquet、Iceberg)的数据湖与数据库的事务性和查询能力相结合,使同一份数据既可被 Postgres 引擎访问,也可被 Spark、Trino 等分析引擎直接读取
全部知识事实 (8)
缓解 Iceberg 流式写入提交冲突的直接手段包括:减少提交频率、扩大单次批写粒度、把压缩放在低冲突窗口执行。
50%待验证持续向 Iceberg 湖仓流式写入(如每 30 秒提交一次)会在几十个分区上制造大量约 120 KB 的 Parquet 碎片文件,两个月内单表可累积超过 400 万个独立对象。
50%待验证Iceberg 使用乐观并发控制协调多个写入者:提交时原子替换 catalog 中的 metadata 指针,若指针已被其他写入者改动则提交失败并重试。
50%待验证在流式场景中,数十个 Flink 并行子任务每 30 秒提交一次快照并叠加后台压缩任务,会导致 Iceberg 乐观并发控制的冲突概率急剧上升,进而触发反压并传导至 Kafka broker。
50%待验证Iceberg 表的元数据采用多级树状结构:表快照(snapshot)→ manifest list → manifest file → 数据文件(data file),查询引擎在规划阶段必须完整读取整棵元数据树。
50%待验证当表内有 400 万个 120 KB 的小文件时,manifest 文件本身可达数千个、总计数 GB,仅读取这棵元数据树就可能耗尽 Trino coordinator 的堆空间。
50%待验证湖仓架构将开放格式(如 Parquet、Iceberg)的数据湖与数据库的事务性和查询能力相结合,使同一份数据既可被 Postgres 引擎访问,也可被 Spark、Trino 等分析引擎直接读取
50%待验证Logic42 工程团队观测到一家金融客户因 Flink 持续写入 Iceberg 湖仓导致查询引擎直接放弃响应。
50%