数澜科技开设全新栏目「技术派+」,聚焦前沿技术,洞悉行业风向,分享来自一线的研发经验与应用实践。
本期专栏由数澜科技研发专家六木带来,探索流批一体实时数仓建设路径。
在数据仓库建设过程的开始阶段,企业的业务场景基本都是基于批处理的模式,利用成熟的离线技术来构建离线数仓,中间可能也会夹杂些实时处理的场景,但大多会转化为准实时的处理模式,如分钟级调度。
随着时代发展,企业业务数据呈几何式飞速增长,传统离线数仓不足逐渐毕露,准实时处理方式已经不足以满足业务诉求,企业开始着手构建实时数仓。
在实时数仓建设过程中,用同一套代码实现大数据的流计算和批计算,进而保证处理过程与结果的一致性的“流批一体”技术理念被业界广泛认可,并在多个业务场景中成功验证,逐渐走向落地。
流批一体技术理念发展
回顾来看,实时数仓技术架构发展主要经历了三个阶段:Lambda架构、Kappa架构、搭载数据湖的Kappa架构。
在Lambda架构中,批处理和流处理是分开的,通过周期调度来进行离线数据采集和加工,中间数据也能保存下来,同时实时流处理可以快速提供加工好的数据。批处理保障数据的准确性,流处理保障数据的及时性,架构稳定性也比较好。
但另一方面,Lambda架构的弊端也很明显,拥有批、流两种不同的计算引擎,针对同一业务场景需要维护两套代码,容易产生不同的数据结果;两种计算引擎,数据开发成本、运维成本也都比较高。
为了解决上述问题,业界提出流批一体的技术理念,即计算引擎同时拥有流计算的低延迟、批计算的高吞吐高稳定性,并且用同一套编程接口实现批计算和流计算并保证底层执行逻辑一致,进而保证处理过程和结果的一致性。
流批一体主要体现在以下四个方面:
基于流批一体的实时数仓架构
在流批一体技术理念提出后,Kappa架构走入主流视野。Kappa架构将流批整合,通过消息队列来进行数据缓存,结果数据存储到KV数据库(Hbase/ES)或OLAP数据库中,供业务方实时访问分析。数据研发只需编写一套处理逻辑,保证了数据的一致性,同时相对降低了资源消耗和维护成本。
但该架构也存在缺陷,无法对消息队列中的数据进行即席分析,并且对消息队列本身的性能、存储要求非常高,全链路依赖消息队列,容易造成数据时序性导致的数据结果不正确,此外,消息队列回溯能力也不及离线存储。
随着数据湖和Flink等相关大数据技术的快速发展,基于Flink+数据湖的Kappa架构成为了建设流批一体的实时数仓主流架构。
通过Flink CDC技术将全量和增量的原始数据写入到ODS层中,使用数据湖进行统一存储,后续只需通过Flink计算引擎、编写一套代码对数据湖中的数据进行分层分域的数据计算,即可完成整个数据处理链路,保证了数据的一致性,减少了运维成本;同时,部分数据湖技术如Iceberg还可以直接对接Presto/Trino计算引擎,可以快速支持实时数据即席分析的场景。
数栖平台——流批一体实时计算平台
数澜科技旗下数据中台构建套件数栖平台,提供一站式流批一体计算平台,通过集群管理、元数据管理、数据开发、运维发布、可视化监控告警等核心功能模块,帮助企业快速搭建实时数仓平台。
目前,数栖平台采用Flink+Iceberg的技术方案,表的元数据统一存储在HiveMeta中,数据文件统一存储在HDFS上,并通过全托管的方式让用户不用关心底层存储计算集群的架构原理,只需要聚焦于自身的业务逻辑。
数栖平台核心功能:
基于数栖平台搭建实时数仓,首先把各种数据源的数据通过实时同步任务采集到Iceberg中,然后在实时开发平台上创建Flink SQL或Flink作业来计算处理数据,计算结果可写入Hbase/ES/Mysql等,最后通过创建数据服务API来供业务方应用调用使用。
基于数栖平台搭建实时数仓的解决方案
扫描下方二维码添加数澜官方助手,回复【试用】,即可试用数栖平台!
RECOMMEND
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777