面向未来的流批一体架构初探

来源:BanTech智库

作者:中国银行软件中心(合肥) 程彦茹 江梦茹


信息科技进步带动了“云计算”的兴起,在数据呈现出爆炸性增长态势的今天,各行各业都将数据价值利用放在了战略性的位置。云计算的发展让人们看到了“流计算”和“批处理”这两种数据处理框架的应用场景,但这两种框架均会造成部署及运营成本的增加,因此单一的计算框架已无法实现对复杂数据的处理,大数据应用开始拥抱“融合”。本文在详细阐明流批一体研究的必要性后,提出一种适应于中国银行现行企业级建设的流批一体架构,并聚焦实际场景在实践中验证了架构方案的可行性。


一、落脚实际,初探实时数据赋新能

在商业智能(Business Intelligence,简称BI)时代向数据智能(Data Intelligence,简称DI)时代演进的过程中,中国银行数据治理项目组在2021年2月投产上线了企业级数据湖、中国银行统一数据门户及数据协同平台。同年4月上线数据字典平台、统一数据服务中心及分析师工作台,同年6月上线湖仓一体的企业级数据仓库,同年7月正式投产了第一个新线试点应用。目前仍在不断扩大数据规模,提升数据质量,优化数据服务,用数据展现用户需求,从而不断提升用户体验,最大程度发掘数据价值。

新技术研发助力业务发展迈向新阶段,业务提升对技术发展提出新要求。2021年12月,中国银行实时数仓投产上线,从存贷款日报指标的实时输出和展示入手,构建了一整套实时数据接入、实时数据建模、实时数据计算、实时数据服务以及实时任务调度的工具体系,为之后的实时数据开发以及实时服务推广打下了坚实的技术基础。事实上,实时数仓和前期投产的离线数仓在分层结构和模型设计上都遵循着相似的原则和思想,如何提升资源利用率和数据质量,提供更高的数据服务能力成为亟需解决的问题。


二、厚积薄发,探求数据处理新工艺

1.流计算和批处理的定义

离线计算(也称为批处理)和实时计算(也称为流计算)是两种不同的数据处理方式,两者主要是在数据处理延迟性上有不同的要求[1]。离线计算适用于对实时性要求不高的场景,比如离线报表、数据分析等,延时一般在分钟级或小时级,多数场景是定时周期性执行一个Job任务,例如MapReduce就是一个离线计算框架,Spark SQL也通常用于离线计算任务。实时计算通常应用在对实时性要求高的场景,比如实时ETL、实时监控等,延时一般都在毫秒级甚至更低。目前比较流行的实时框架有Spark Streaming与Flink。其中,Spark Streaming属于微批处理,是一种把流当作一种批的设计思想,虽具有非常高的吞吐量但其延时也较高,这使得Streaming的场景受到了一定的限制;Flink则是事件驱动的流处理引擎,是一种把批当作一种有限的流的设计思想,具有高吞吐,低延时,高性能的特点。

2.流批一体架构发展现状

金融科技发展日新月异,传统的批处理已无法完全满足当前商业银行业务发展的需求,很多业务场景对数据的时效性提出了要求,比如网点营销人员目前只能通过线下手工统计营销情况;理财产品推荐功能更多基于对离线数据的分析,实时数据应用较少;很多业务指标需要T+1才能计算出来,时效性较低;异常交易大多为事后处理,不能及时监控等。在上述这些场景下,实时化处理大数据的手段必不可少,但同时为了精准构建客户画像,或确认运营策略效果,对历史数据的分析也不可或缺,即流计算和批处理在大数据应用中的作用是不分伯仲的,只是应用场景有所不同。

从技术上来说,时下流行的Lambda架构整合了离线计算和实时计算,在经历多年的发展后仍然非常稳定,但它的流和批是两套系统,存储和模型都是两套,这就导致了应用效率和搭建效率较低;开发、存储和维护的成本比较高;数据一致性和数据质量难以保障等缺点。同样应用比较广泛的Kappa架构是真正意义上的流批一体处理方式,其原理是在Lambda架构(如图1所示)的基础上进行了优化,以消息队列替代了数据通道,虽然实现了实时和离线代码的统一,但也存在着数据时序性差、无OLAP分析能力、严重依赖消息队列等缺点。


图1 Lambda架构


不难看出,不管是业务上还是技术上,都迫切需要将割裂的架构一体化,打通流批之间原有的壁垒,推动流计算的低延迟和批处理的高稳定完美融合,从而达到“1+1>2”的效果。


三、深入转型,构建流批一体新架构

以金融科技创新“研究、研发、应用”机制为抓手,在业技融合的指导思想下,结合实时数据的使用需求不断攀升及中国银行实践基础,本文提出一种基于流批一体架构(如图2所示)的数据平台建设方案。整体架构主要分为数据接入、数据存储和数据服务三个模块,紧跟我行发展战略和发展现状,基于中国银行现有的大数据开发框架搭建实现。


图2 流批一体架构


首先通过对方主动推送或我方埋点的方式将采集的流式数据推送至kafka的topic中,依据存储基于iceberg实现统一存储,分为贴源层、主题层、汇总层,贴源层里的数据结构与源系统基本保持一致;主题层主要存放基于每个具体的业务过程特点构建的最细粒度的明细事实表;汇总层主要存放基于上层应用和产品的指标需求构建的公共粒度的汇总指标表,通过flink[2]统一计算引擎将topic的数据按照各层的规划落地,可支持对各层数据的即席查询。加工成的汇总数据则通过springboot微服务框架提供相关接口,应用到经营分析、实时营销、大屏展示等场景。

同时批量数据也通过数据采集工具接入到数据存储,与流式数据存储在同一张表中,同样使用Flink进行相同的模型计算,并将结果数据与流式数据进行比对,实现流式数据的按天修正。

整个方案相当于在统一数据平台的基础上实现了统一存储和统一计算下的流式处理,既继承了统一数据平台先进的分层结构,又在其基础上实现了流批一体。方案的特点主要体现在四个方面——以“四统一”提升工艺新高度,以“强敏捷”助推开发全流程,以“早规划”融入企架共突破,以“多复用”确保成果落实处。

1.四统一,提升工艺新高度

首先,本架构促进了数据存储上的统一,流式数据和批量数据实现了各层物理上的整合和存储,存储成本约降低50%,完美支持数据的高效回溯。其次,构建了统一的数据模型,在物理层面上的统一存储保证了逻辑层面上的统一模型,而规范化的指标定义、表建模和开发保证了数据模型的见名知义及规范统一。再者,本架构应用了基于Flink的统一计算引擎,使用一套代码实现了逻辑统一和灵活切换,大幅提升开发效率。最后,提供了统一的数据服务,在汇总层提供的多种轻度加工指标可支持后线应用按需积木式搭建生成个性化报表,其查询逻辑完全一致,能够大幅降低应用端接入成本。流式数据和批量数据在各层的落地如图3所示。

图3 流式数据和批量数据在各层的落地


2.强敏捷,助推开发全流程

本文提出的流批一体架构基于大数据开发框架,通过设计数据模型、配置接入信息、配置作业流程、配置服务形式以及测试上线共五个步骤,流程化实现了全场景应用;除此之外,在应用过程中又增加了流式作业生成模块[3],能够提供统一大屏数据展示服务,进一步完善了大数据开发框架,实现全渠道、全触点数据链路打通,提供全场景、全流程数据开发服务。

3.早规划,融入企架共突破

在中国银行迈入数字化转型及企业级架构转型建设的关键时期,本着高度融合,顺应发展的原则,为配合企架建设,达到落地即可用的效果,整个方案在早期规划中考虑到了与企架六层九平台的适配性,面向生产落地,尽可能避免产生后续重构的问题。

4.多复用,确保成果落实处

考虑到前期数据治理建设的丰硕成果,从架构的可复用性出发,通过对比底层架构能够明确复用的要点就是建立hive到iceberg的映射。首先在iceberg中建一个catalog命名空间,并在命名空间中建立数据湖和数据仓库对应的库和表,其次建立hive在iceberg上的映射表,实现通过hive对iceberg表的查询,通过建库建表和数据映射这两个步骤,保证后线应用集市无感知切换。最后通过Flink、Spark或hiveSQL将HDFS上路径1下存放的ORC数据文件复制到路径2。通过上述复用关键点,确保成果可复用,规避低价值重复建设。数据治理成果的复用方案如图4所示。


图4 数据治理成果的复用方案


基于上述四大特点,本文所述流批一体方案相比流批分离的方案突出规避因数据同步导致的数据质量问题,此外的预期存储、计算和维护的成本降低约50%,人力成本降低约65%,集群资源利用率可达80%,研发效率提升一倍以上,从全流程上达到保质、降本、增效的目的。


四、因地制宜,挖掘多措复用保成效

根据我行向下深入探索前沿科技,向前推进业技融合共创,向后提升创新成果转化实效的工作模式,可将上述流批一体架构应用在网点营销大屏展示的场景中(如图5所示)。众所周知,存贷款业务是银行主要的自营业务,而中间业务收入又是银行最重要的利润来源,这些指标都与行内各机构间的评比息息相关。通过对接相关业务系统实现业绩指标在营销大屏的实时展示,各级机构可按级划分查询权限,不仅可以让一线营销人员对当前的营销情况了如指掌,上级机构也可结合实时数据不断调整营销策略,落实营销计划,推动行内各级机构间的良性竞争。


图5 基于流批一体架构实现的网点营销大屏展示


整个场景分为三级展示页面,不同级别的页面会根据展示信息粒度的不同进行细微差别的设计,但大体是保持一致的。在各级页面上,各个指标沿着机构树,自下而上从支行汇总到全国节点,其中既有实时刷新的指标和明细数据,也有离线统计的历史数据和客户排行,在流批一体架构下,相应批量和实时的数据都存储在iceberg的同一物理表中,实时数据可以非常便利地关联历史数据进行查询,大大提高了此类指标的计算效率。


五、继往开来,推动业技融合开新局

实时数据的应用和价值发掘是未来大数据应用的发展趋势,但大数据的未来并不只有“实时”。流批一体架构实现了流计算和批处理的优势融合,带来了金融服务渠道拓展和增效降本的效果。通过业技融合,将不断促进中国银行客户服务能力的提升,融入我行数字化科技版图,推动业务和产品的创新迭代,助力中国银行实现全球一流现代银行的建设目标。


参考文献:

【1】云娜.面向批流一体计算平台的若干关键技术研究[D].杭州:杭州电子科技大学,2019.

【2】Lopez M A, Lobato A G P, Duarte O C M B. A performance comparison of open-source stream processing platforms[C]. Washington: 2016 IEEE Global Communications Conference (GLOBECOM). IEEE, 2016:1-6.

【3】腾讯大数据. Oceanus:基于Apache Flink 的一站式实时计算平台[EB/OL]. 2018.

-END-

这是科技创新最好的时代,这是属于我们每个人最好的时代,关注“BanTech智库”,专注银行科技发展,探索无界金融生态!

展开阅读全文

页面更新:2024-04-29

标签:架构   离线   中国银行   批处理   实时   框架   场景   指标   未来   方案   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top