基于 Apache Iceberg 打造 T+0 实时数仓
大数据处理技术现今已广泛应用于各个行业,为业务解决海量存储和海量分析的需求。但数据量的爆发式增长,对数据处理能力提出了更大的挑战,同时对时效性也提出了更高的要求。业务通常已不再满足滞后的分析结果,希望看到更实时的数据,从而在第一时间做出判断和决策。典型的场景如电商大促和金融风控等,基于延迟数据的分析结果已经失去了价值。 如果想及时了解 Spark 、Hadoop或者HBase相关的文章,欢迎关注微信公众号: iteblog_hadoop 为了同时满足大数据量和高时效性的双重要求,实时数仓和在线交互式(ad-hoc)分析技术,及相应的基础组件应运而生,并快速发展。其中包括通用计算引擎(如 Spark 和 Flink ),交互式分析系统(如Presto,Druid和ClickHouse),数据湖框架(如Iceberg,Hudi和Delta Lake),和底层存储(如Ozone)。 本文主要介绍基于Iceberg的特性,通过Spark和 Flink ,如何打造T+0实时数仓,以及相应功能在Iceberg社区的进展。 文章目录 1 离线和实时数仓 2 基于Iceberg打造实时数仓 3 总体框架 4 ACID事务 5 Flink写入和读取Iceberg 6 基于Spark进行数据修正 7 增量消费Iceberg中的数据 8 数据和元数据的压缩合并 9 总结 10 参考 离线和实时数仓