中原银行:基于 StarRocks 构建 OLAP 全场景架构解决方案,迈入极速统一时代
作者:专业研究的爱分析 ifenxi
近年来,随着银行业务场景的不断丰富、业务规模的不断扩张,用户线上线下交易大幅上升,数据量与数据种类愈加丰富,大量创新型数据分析和应用场景出现,对分析型数据库的存储与计算能力提出了更复杂的需求,尤其在对实时数据价值的深入挖掘、数据库查询与分析性能的提高上提出了更高要求。为满足以上需求,银行纷纷开始重塑数据库体系,对已有分析型数据库进行改造,在支撑业务需求的同时简化架构。
近日,专注于数字化市场的研究咨询机构爱分析深入调研了行业中一批国内领先的银行数字化转型实践案例,围绕实践领先型、案例创新性、应用成熟度、价值创造四个维度对多个实践案例进行评选,经过多轮评选与角逐,由 StarRocks 提供技术支持的“中原银行 OLAP 全场景架构解决方案”案例凭借其完整且个性化的实施方案、卓越的项目效果当选优秀创新实践案例。该案例中,中原银行借助 StarRocks 对数据分析架构进行改造升级,构建了全新的数据分析平台,从而提高用数效率,赋能银行经营管理与业务发展。
#01
数据量激增,业务场景多元化,中原银行数据平台需升级
—
中原银行成立于 2014 年,是河南省唯一一家省级法人银行,今年经改革重组后,该银行总资产规模已突破 1.2 万亿元,下辖 18 家分行,有 400 余家营业网点,2 万余名员工以及 17 家附属机构,目前已成为河南省首家资产超万亿的城商行。
随着业务不断扩张、数据量的高速增长以及业务逻辑复杂程度的不断提升,银行需要更加快速地响应客户,为其提供更加精准的服务,即使用实时数据进行客户洞察,以帮助银行经理与业务人员做出业务决策,提高管理水平。为此,中原银行搭建了一站式商业智能 BI 平台,该平台分为客户行为分析系统知秋、一站式报表平台鲁班、一站式大屏平台鸿图和自助分析平台云间四大应用系统,总用户超一万人,月活用户在 3000 以上,月均点击次数为 20 万以上,用户规模大且使用频率高。
为支持 BI 平台的快速高效工作,中原银行还搭建了完整的数据平台。该数据平台分为数据源、数据传输、数据存储计算、数据服务与数据应用五大部分。数据源是通过 Oracle 数据库对核心数据、信贷数据、绩效数据等进行存储。数据传输主要依赖中原银行自主研发的百川离线同步平台与实时传输 AR 平台。存储计算层主要分为数据湖、离线数仓与实时数仓三部分。其中,数据湖对半结构化数据、非结构化数据和部分系统日志与历史数据进行存储;离线数仓是基于 Gauss DB 完成跑批作业,对数据进行层层加工传输到读集群中以供报表查询;实时数仓则是对实时数据进行处理辅助进行实时决策。数据服务主要为对存储的报表、分析计算的数据进行查询。数据应用层面向银行客户经理,包括商业智能 BI 平台与业绩分析等应用系统。
(中原银行改造前的 OLAP 平台架构)
虽然已有商业智能 BI 平台与大数据平台已经能够解决中原银行大部分业务问题,但随着数字化转型逐步步入深水区,各业务场景对用数效率提出了更高要求。具体体现在:
查询效率亟需提高。中原银行原有的基于 MPP 和 Hadoop 构建的数据平台查询效率较低,尤其是多表关联查询效率,BI 平台的平均耗时超 10 秒,知秋系统平均耗时长达 20 秒以上,严重影响了对客户的深入洞察分析与对银行经营状况的管理。因此,该银行需要提高对业务、经营管理等数据的查询能力,尤其是对复杂的关联数据的查询能力,为其良好的分析性能提供保障。
需要升级数据平台架构,深入挖掘实时数据的价值。基于原有的数据平台架构,仅能支持 T+1 小时级别的准实时报表,需要等待最新的小时任务跑批完成,才可以查询最新时间的数据,难以满足银行在客户分析、风控管理等场景下的实时查询与分析需求。并且,原有架构中需要经过 Oracle-AR 数据传输平台-Kafka-Flink-Kafka 的长链路才能实现对实时数据的查询与分析。因此,银行需要全面升级数据平台架构,尤其是数据分析层的架构,从而满足业务增长带来的实时需求。
需要统一数据架构,降低运维成本。原有数据平台流批链路复杂,运维成本高,且实时数据与离线数据的存储并不统一,存在冗余,造成存算资源的浪费。因此,中原银行需要简化数据平台架构,对离线数据与实时数据进行统一高效管理。
#02
多维度综合考察,最终选择 StarRocks 升级 OLAP 架构
—
基于以上需求,中原银行决定对原有数据平台中数据分析架构进行全面升级与改造,以保证数据的统一管理与高效应用,提升实时响应能力。
经过调研了市面上的主流的两款 OLAP 数据库产品发现,ClickHouse 在单表查询和大宽表查询表现优秀,查询延迟也比较低,但是 Join 性能较差,且不易维护;StarRocks 在固化查询和灵活分析性能表现不错,多表查询性能也比较优秀,而且同时支持实时与离线导入分析场景。与此同时,StarRocks 分析型数据库具有流批一体、能够向量化执行、运维简单、查询效率高、兼容性好且能够满足高并发查询要求六大优势,恰好满足了中原银行构建极速统一的数据分析架构的业务需求。
具体而言,该数据库支持实时和批量两种数据导入方式,以实现极速统一分析;全面采用向量化技术,适配 CPU 的 SIMD 指令集等手段,充分发挥其并行计算能力;安装部署容易,高可用易拓展,且扩缩容期间无需停服;能够智能物化视图,通过智能 CBO 优化器提供亚秒级的多维分析能力;能兼容 MySQL 协议语法与 MySQL 生态,使用者可快速上手;同时,还能为客户提供高性能高并发的交互式分析体验,查询 QPS 高于平均水平。六大优势相辅相成,恰好满足了中原银行构建极速统一的数据分析架构的业务需求。
(中原银行 OLAP 查询引擎选型对比表)
通过 POC 测试 StarRocks 分析型数据库的数据导入性能、查询响应速度、与知秋客户洞察系统匹配程度发现,该数据库能够满足极端业务的数据导入性能要求,大幅度提高知秋系统转化分析、客群分群查询、活跃用户查询等应用查询效率,且与银行原有 MPP 数据库相比,平均性能可以提高 3.87 倍。
StarRocks 以“打造新一代极速全场景 MPP 数据库,面向复杂查询、高并发、实时分析等各类场景以达成数据价值的最大化”为原则,不断打磨产品,即将面世的 StarRocks 3.0 致力于支持用户同时进行极速分析与极速数据湖分析。StarRocks 还坚持发展生态,多方合作以壮大社区,阿里云计算平台事业部产品解决方案总经理陈立就曾表示“StarRocks 是阿里云在数据湖 3.0 云原生化、弹性化、实时化的重要产品之一”。截至目前,StarRocks 已帮助超过 170 家大型企业构建了全新的数据分析能力,生产环境中运行的 StarRocks 服务器数目达数千台,其社区用户也已超 7000 人,吸引几十家国内外行业头部企业参与共建。
综合以上结果,中原银行最终选择了产品成熟度高、技术栈与银行主流技术相符、功能完善、安全性高、查询效率高、社区活跃度高的 StarRocks 分析型数据库。
#03
StarRocks 助力中原银行分阶段升级 OLAP 架构
—
完成选型后,中原银行开始进行 OLAP 架构改造。此项目分为三个阶段:集群搭建、离线业务实践与实时业务实践。
(数据分析架构改造路径)
集群搭建
集群搭建是改造前的准备工作,包括与离线传输平台百川、流计算平台的对接,StarRocks 集群的规划与搭建,机器资源的申请与分配,此阶段为数据分析架构升级的有序进行奠定了基础。
离线业务实践
为解决对离线数据查询效率低与分析性能差的问题,中原银行将固定离线报表迁移至 StarRocks,并对知秋客户行为分析系统进行改造。
该银行的固定报表分为灵活分析、透视分析、电子表格、可视化报表四种形式,共计 2800 多张,广泛应用于对公、零售、绩效、风险、系统指标监控多个场景下。通过更新建表语句、将原有函数转化为 StarRocks 内部函数,中原银行实现了固定离线报表的自动化迁移。
(固定离线报表迁移方案)
迁移后的报表具有三大特性。首先,排序列前引入了前缀索引,能够快速过滤数据,减少数据扫描量,从而快速找到起始的目标行;其次,选择了高基数的列(如唯一的 ID)作为分桶键,保证了数据在各个分桶内尽可能均衡;最后,默认三副本,不同副本存储在不同 BE 上,保证某一机器或副本的损坏并不会影响业务查询。这三大特性既避免了数据缺失的问题,又保证了查询效率的提高。
知秋客户行为分析系统有获客分析、增长分析、留存分析、传播分析和特征分析五大分析场景,但由于其分析所需的报表多为上亿级别的大宽表,且需要多表关联查询,查询效率低,分析性能也较差。因此,中原银行将各分析场景也全部转移至 StarRocks 中,提高其查询响应速度;其次,对留存分析场景进行了 Bitmap 改造,如针对中原银行驻马店分行所应用的留存分析功能,将原有只能进行单一条件查询或全部查询的方式升级为了 Bitmap 取交集与并集计算的模式,大大提高了客户数据查询与分析的灵活性与时效性,也丰富了客户行为分析的种类。
实时业务实践
实时数据读写效率低下严重影响了对客户的深入洞察与经营管理查询效率,因此,中原银行在原有数据平台架构上对数据存算层与数据服务层进行改造,搭建了实时数仓。
(中原银行改造后的数据平台架构)
搭建实时数仓后,数据传输不再是统一抽取到 Kafka 后再进行推送,离线数据将采用 broker load 的方式将 T+1 数据直接导入 StarRocks 中,通过相关 SQL 命令进行快速分析处理;实时数据则通过 Flink connector 的方式导入,实现 Oracle- Kafka- Flink- StarRocks 的实时链路,极大地提高了实时查询与计算的效率。同时,原有的 ES 实时维表转变成了 StarRocks 中主键模型的数据表,它支持自定义主键、指标列与秒级的导入与查询,在查询时能够返回相同组件的最新数据,也促进了实时数据使用效率的提高。
此实时数仓架构将中原银行的离线数据和实时数据进行了统一,极大程度上减少了数据的冗余,同时支持秒级的导入与查询,提高了业务的时效性和多样性。
#04
升级平台架构,优化查询效率,实现实时响应,提升用数效率
—
目前,中原银行使用 StarRocks 完成了固定报表迁移、知秋系统改造与实时数仓建设,极大提高了银行的数据导入、查询与分析效率。整体改造后的具体效果如下:
固定报表迁移效率与查询效率大幅提升。70%的报表可以通过自动化迁移来完成。迁移完成后,固定报表查询效率提升为原来的 2.7 倍,所需时间下降到 3 秒以内。尤其是原耗时排行 top 10 的报表,查询效率提优化了 10 倍以上,提升效果明显。
实现自助客户行为分析,查询效率显著提高。目前,知秋系统内 13 个业务场景已全部迁移,其中,针对留存分析进行了 bitmap 改造,查询效率提升了 10 倍以上;其他模块查询效率平均提升 3 倍以上,平均查询时效为 5.8 秒。
实时架构升级,实现秒级响应。通过搭建实时数仓,能够实现秒级响应最新贷款等业务数据的实时查询,管理决策用数效率从 T+1 小时转换为秒级。在实时存贷款报表应用中,业务人员能够查询到精准到秒级的最新数据,核对存款入账时间从平均半小时缩减至 5 秒钟,提升了 360 倍。
通过实时大屏,实时监控银行经营与管理情况。基于实时数仓,中原银行极大程度的丰富了实时大屏的应用场景。目前,智能运营增长平台可以实时监控触达转化数据;鸿图大屏能实时查看对公时点存款、对公时点贷款的余额、对公总客户数与对公的排名情况,辅助业务人员进行实时的分析决策;还能够实时查看当天各项目组 DevOps 研发效能流水线发版情况、发版成功率、失败率和以及排名情况。
#05
中原银行为城商行 OLAP 架构升级提供创新实践典范
—
中原银行作为目前我国排名第八的城商行,此次与 StarRocks 合作的升级 OLAP 项目为其他规模相同、已有数据平台建设较完善的城商行提供了标杆。
首先,银行在改造前需深入分析业务需求,基于此进行选型。目前市面上的分析型数据库厂商众多,各产品优势不同;银行不能盲目跟风采购,需要拆解业务需求,并结合技术适配度、安全性、社区活跃度等多维度进行考察与 POC 测试,选择符合业务需求、适配技术框架的分析型数据库。该项目中,中原银行基于用数效率提高的核心需求,从九大维度中进行考察,最终选择了在查询效率、技术架构与兼容性有明显优势的 StarRocks。
其次,项目实施过程应分阶段分场景进行改造。对于中原银行为代表的数字平台建设已经比较完善的银行来说,OLAP 的升级比较复杂。因此,应该按照业务场景等逻辑进行任务拆分,有规划的分阶段进行改造,提高项目执行效率。此项目中,中原银行按照业务需求将具体执行阶段划分成离线业务改造与实时业务改造,在 9 个月内完成了部分系统的升级改造。
未来,中原银行还会携手 StarRocks 继续深入改造与优化包括数据分析平台在内的数据平台架构,挖掘更多业务场景下的实时报表,进一步探索优化 OLAP 性能,解决数据湖分析过程中存在 IO 延迟高、数据格式无法最优化等问题,从而在 StarRocks 上实现极速分析与极速数据湖分析以提高用数效率并赋能业务增长与银行管理,迈向极速统一 3.0 时代。
关于 StarRocks
面世两年多来,StarRocks 一直专注打造世界顶级的新一代极速全场景 MPP 数据库,帮助企业建立“极速统一”的数据分析新范式,助力企业全面数字化经营。
当前已经帮助腾讯、携程、顺丰、Airbnb 、滴滴、京东、众安保险等超过 170 家大型用户构建了全新的数据分析能力,生产环境中稳定运行的 StarRocks 服务器数目达数千台。
2021 年 9 月,StarRocks 源代码开放,在 GitHub 上的星数已超过 3400 个。StarRocks 的全球社区飞速成长,至今已有超百位贡献者,社群用户突破 7000 人,吸引几十家国内外行业头部企业参与共建。
评论