分享

基于Apache Iceberg打造T+0实时数仓

导语

大数据处理技术现今已广泛应用于各个行业,为业务解决海量存储和海量分析的需求。但数据量的爆发式增长,对数据处理能力提出了更大的挑战,同时对时效性也提出了更高的要求。业务通常已不再满足滞后的分析结果,希望看到更实时的数据,从而在第一时间做出判断和决策。典型的场景如电商大促和金融风控等,基于延迟数据的分析结果已经失去了价值。

为了同时满足大数据量和高时效性的双重要求,实时数仓和在线交互式(ad-hoc)分析技术,及相应的基础组件应运而生,并快速发展。其中包括通用计算引擎(如Spark和Flink),交互式分析系统(如Presto,Druid和ClickHouse),数据湖框架(如Iceberg,Hudi和Delta Lake),和底层存储(如Ozone)。

本文主要介绍基于Iceberg的特性,通过Spark和Flink,如何打造T+0实时数仓,以及相应功能在Iceberg社区的进展。
离线和实时数仓

传统的离线数仓可以通过Hive加HDFS搭建。借助Hive成熟和稳定的能力,以及丰富的上下游生态,构造数据处理和分析平台。它通常遇到如下痛点:

•流批混合的作业难以基于同一套基础组件搭建;•难以保证端到端的”有且仅有一次“和”强一致“的语义;•流批衔接,即流式数据落地,通常环节多,流程长,时效性差;•难以保证ACID事务和读写分离,导致下游出现脏读等错误;如果通过外部逻辑实现ACID事务和强一致性,会进一步加长整个流程;•已写入的数据很难修正,或者只能以数据文件甚至整个分区这种较大的粒度进行操作,费时费力;•数据落地和处理过程难以实现端到端的增量处理等。

针对上述离线数仓的痛点,随着流式计算引擎的发展,越来越多的公司引入实时数仓,或者实时和离线融合的数据分析平台,以求达到秒级的实时响应。
基于Iceberg打造实时数仓

Iceberg最近已经顺利毕业,晋升为Apache顶级项目。它作为新兴的数据湖框架之一,开创性的抽象出”表格式“(table format)这一中间层,既独立于上层的计算引擎(如Spark和Flink)和查询引擎(如Hive和Presto),也和下层的文件格式(如Parquet,ORC和Avro)相互解耦。
2020-06-10_192758.jpg
Iceberg还提供哪些额外的功能?Flink如何写入和读取Iceberg?


可下载文档:
基于Apache Iceberg打造T 0实时数仓.pdf (693.6 KB, 下载次数: 33)

已有(1)人评论

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条