云计算·大数据 频道

基于分布式数据库的联机查询和实时分析一体化建设实践

  近年来,各商业银行数字化转型进入了深水区。对于商业银行而言,数字化转型既是提升发展质量、拓展业务场景的必经之路,更是改善用户体验、优化服务水平的重要支撑。中国邮政储蓄银行(以下简称邮储银行)率先同时采用企业级业务建模和分布式微服务架构,历时三年,于2022年11月重新构建起基于通用服务器云架构的新一代个人业务分布式核心系统(以下简称个人新核心系统),并完成了6.5亿个人客户在线无感迁移。围绕个人新核心存汇款系统,邮储银行着力打造了一套核心技术自主可控、系统性能同业领先、用户体验全面提升的核心系统体系。

  作为核心系统体系建设的重要成果,邮储银行同步建设了专业的联机查询分析系统—统一查询系统。该系统定位于企业级系统,承载了存汇款登记簿、交易明细、交易流水、账户信息等查询打印类交易,有效分担了新核心系统的查询与存储压力。未来该系统也将提供新一代对公核心、新一代信用卡核心及行内其他重点系统历史数据联机查询分析服务,助力邮储银行加速数据融合,激发数据要素价值,为邮储银行全方位、全渠道提升用户极致体验做出贡献。

  系统功能

  1.统一查询系统的建设始终以用户为中心。一方面,该系统致力于为柜员、客户及外部司法机构等用户提供长周期、大跨度、高并发的联机查询和实时分析服务;另一方面,该系统为了配合新核心系统在线迁移,通过接口映射方式聚合多源查询接口,屏蔽新旧核心系统查询接口差异,实现在线迁移过程中用户查询“流畅无感”。

  2.统一查询系统提供了更为完善的查询功能。相较旧核心系统,该系统支持按机构、柜员、账户、客户、交易类型、交易金额、对手信息等多个维度进行筛选查询;同时通过优化排序规则、完善查询渠道、扩充查询周期、支持机构下沉查询多方面优化查询功能;另外,新增首末页、跳页等功能选项,方便柜员快速定位查询信息,以充分满足用户多样化查询诉求。以上功能优化通过对交易进行整合,不但大大丰富了查询维度,而且完善了查询功能,降低了柜员操作繁杂度,全方位提升了柜员操作体验,使得柜员操作更加便捷高效。

  3.统一查询系统协同电子渠道实现全方位功能提升。该系统为手机银行、个人网银等电子渠道提供8年以上实时收支明细查询及收支汇总分析。系统通过梳理摘要、备注、商户、交易对手、存取标志等信息,根据所制定的收支分类规则,明确每笔交易收支交易类型,实现客户资金收支明细和收支分析无感“秒查”;另外,支持十几个维度模糊搜索方式查询交易信息,同时支持客户对收支分类结果进行在线修改,并实时生效,为客户提供更有温度和品质的金融服务。统一查询系统协同电子渠道对查询功能所进行的优化和提升,满足了客户长周期、多元化、个性化的查询诉求,进一步提升了客户服务品质。

  技术创新

  统一查询系统在建设过程中充分考虑到银行实际业务场景及数据处理和存储压力,应用实现上采用了分布式微服务架构,利用离线大数据技术和流式大数据技术,基于国产硬件、操作系统和分布式数据库打造的企业级联机查询分析系统,实现联机查询和实时分析一体化。在以下几方面均趟出了极具探索意义的实践之路。

  1.采用分布式微服务架构,提供统一的查询接口服务。系统采用单元化和微服务架构,支持动态延伸和弹性扩展。通过对不同应用组件进行组装,可快速实现新的查询接口,并以Restful API服务形式向渠道端系统进行接口发布,供其调用。接口服务调用方不需关注底层数据查询逻辑,大大降低了数据使用成本。

  2.构建公共数据服务平台,屏蔽多源数据接口差异。统一查询系统通过构建公共数据服务平台,实现登记簿、交易明细、交易流水、账户信息等查询及打印功能。该平台支持动态地对多源接口数据进行映射、聚合、排序、去重以及分页,对外提供统一化和标准化的联机查询接口服务,使客户在新旧核心系统切换过程中查询体验不受影响。该平台创新性地提出了基于索引标识的聚合分页算法,通过记录各数据源系统的分页数据索引和分页标识,有效解决了多源数据聚合及深度分页查询效率问题。

  3.构建可扩展的数据模型,实现离线数据和实时数据统一处理。对于银行面客类系统,数据的完整性和准确性至关重要,因此该系统数据架构设计上采用了较稳健的Lambda架构,利用离线数据处理技术和流式数据处理技术分别实现离线数据加工和实时数据加工,并进行相互验证,最大程度保证数据的及时性、完整性、准确性和一致性。为了实现10年乃至永久的历史数据查询,以查询需求为驱动,构建可扩展的数据模型,通过将数据模型分别部署在铺底数据平台、离线数据平台及实时计算平台,实现远期历史数据、近期数据以及当日实时数据统一处理,为高质量查询服务提供数据支撑,支持长周期、大跨度数据查询需求。

  4.构建实时数据计算平台,支持实时资金收支分析。针对不同的业务场景,分别引入了RocketMQ、Kafka消息中间件,集成CDC(Change Dat aCapture)变化数据捕获技术以及Flink流式计算引擎技术,实现了高吞吐、低延时的实时数据处理。数据实时增量同步工具通过读取新核心系统数据库WAL(Write Ahead Log)日志,将新核心系统数据库插入、更新等操作同步发送至Kafka中;Flink数据处理任务通过对数据进行清洗转换及关联计算后,将结果数据写入分布式数据库以及ES(Elasticsearch)数据库,以支持实时查询分析以及模糊搜索功能。

  在实时数据处理效率优化方面,采用了分层解耦、异步IO、连接池、SQL优化等多种技术手段进行优化,以提高实时数据处理效率。每天实时数据处理最大单表1.5亿笔左右,结息日达6亿笔左右,每秒最高可写入15万笔,99.99%以上的流式数据在1.5秒内完成了端到端数据实时同步、流式计算加工以及数据实时写入,其中流式数据计算加工及数据写入数据库耗时达到毫秒级。

  5.构建多种校验补偿机制,确保数据完整性和准确性。为了进一步提升实时数据处理的完整性和准确性,引入多种数据补偿机制。一是基于乐观锁版本号,确保高吞吐下的数据准确性。在消息写入分布式数据库时,通过自定义数据库Sink组件,按照版本号进行消息的写入及更新,使得乱序消息的到达不影响数据入库的准确性。二是使用Flink的Checkpoint和两段事务提交机制确保集群异常时数据的准确性。当消息处理出错时,将消息放置到补偿队列或死信队列中,确保出错的消息不丢失、不重复,并可以继续重试处理。三是离线结果数据和实时结果数据相互校验,确保数据完整性。Flink实时数据处理当天T日数据,离线数据处理T-1日数据,每天晚上离线结果数据和实时结果数据进行相互核对,对于差异数据,以离线结果数据为准。

  Flink流式数据处理集群部署采用同城双活,异地灾备策略。同城双活模式各部署一套相同集群,各自处理全量数据,保证中心级可靠。“双活”机制及多种校验补偿机制确保流式数据处理的一致性和健壮性,实现业务数据实时生产、实时消费,最大化发挥数据价值。

  6.基于国产分布式数据库,支持万亿级数据存储查询。邮储银行积极响应自主可控及国产化改造要求,在项目中引入了国产分布式数据库,实现10年以上万亿级数据在线存储,并支持高并发、高时效联机查询和实时分析。为了满足均值3万TPS、峰值13万TPS需求,结合分布式数据库产品特性制定了专项的实现方案。一是按业务属性拆分多个集群,各集群之间按业务场景存放对应的数据,集群间相互独立、互不影响,从物理层面将资源隔离,避免了高并发查询引发的资源争抢。二是多协调节点访问方式,应用按一定规则负载到多个协调节点,并通过协调节点自动路由Sql到相关数据节点,提高应用整体并发量。三是将数据均匀打散至集群的各个节点,在处理事务的过程中,各个节点分别执行各自事务并处理相应数据,达到并行的效果,大大提高了执行效率。

  结 语

  在邮储银行数字化转型关键时期,统一查询系统以“寻客所想,查客所需,为客提供全新查询体验”为建设理念,成为邮储银行客户旅程优化的关键一环。统一查询系统承载了邮储银行18亿账户交易数据,覆盖4万个网点及所有线上电子渠道,为全行21万柜员以及6.5亿客户提供了10年以上联机交易查询分析服务,使客户纵享优质的查询分析体验,并满足了司法查询有权机关对于长周期客户数据的查阅诉求。通过数技融合和数实融合,统一查询系统深挖数据要素价值,助力邮储银行数字化转型向纵深发展;深化“以用户为中心”理念,提供线上线下全渠道联机查询分析服务,为用户提供了一条联机查询分析服务的“高速主干道”,提升了客户服务品质,增强了客户黏性,为邮储银行全面提升客户体验注入了新的动能。

0
相关文章