从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践“我”的2024 | 通信世界全媒体年度盘点即将重磅上线!

8次阅读

       作者:武基鹏,无锡锡商银行大数据技术经理

       编辑整理:SelectDB技术团队

       导读:为实现数据资产的价值转化以及全面数字化、智能化的风险管理,无锡锡商银行大数据平台经历从Hive离线数据仓库到ApacheDoris实时数据仓库的演进,目前已接入数百张实时表、上百数据服务接口,接口QPS达到数百万级别,解决了离线数据仓库时效性不足、成本高昂、效率低下等问题,查询提速超10倍,为用户提供及时、有效、安全的数据服务及使用体验。

       面对大数据、物联网、人工智能等新兴技术给金融行业带来的变革,无锡锡商银行将科技能力和大数据能力的发展放在重要位置。为实现数据资产的价值转化以及全面数字化、智能化的风险管理,基于“业务线上化、风控数据化、架构平台化”三翼一体的科技布局,无锡锡商银行建立了大数据平台,以管理每日流入的海量交易记录与信贷申请数据,借助用户画像、实时报表、实时风控等应用,为用户提供更加及时、有效、安全的数据服务及使用体验。

       无锡锡商银行大数据平台经历了基于Hive离线数据仓库到基于ApacheDoris的实时数据仓库演进。通过架构的升级,解决了离线数据仓库时效性不足、成本高昂、效率低下等问题,实现查询速度10倍提升,使得银行能够更快感知客户行为,及时洞察异常交易行为、识别和预防潜在的风险。本文将详细介绍无锡锡商银行大数据平台演进历程以及ApacheDoris在实时查询、营销服务、风控服务等场景的落地实践。

       基于Hive的大数据离线数据仓库

       01需求场景

       无锡锡商银行早期建设了大数据离线数据仓库,主要服务于数据报送、数据风控、数据运营、即席查询及日常取数等场景,需求场景包括且不限于:

       数据报送:客户风险、EAST报送、1104、大集中、征信报送、利率报备、反洗钱、金融基础数据报送等。

       数据风控:包含对贷款类风控指标、用户行为指标、反欺诈、贷后预警、贷后管理等风险控制。

       数据运营:对BI业务报表、管理驾驶舱、行外渠道和行内各系统进行定时批量供数。

       即席查询及日常取数:根据业务需求进行数据分析、数据开发及数据提取。

       02架构及痛点

从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践“我”的2024 | 通信世界全媒体年度盘点即将重磅上线!

       近些年,随着无锡锡商银行业务的发展与扩张,相关业务部门对数据处理的要求也越来越高,离线数据仓库已无法满足新的需求,主要体现在:

       数据时效性不足:离线数据仓库使用离线抽取的方案,数据时效性为T+1,而报表、数据大盘、营销指标、风控变量要求数据实时更新,当前架构无法满足。

       数据查询效率低:需满足秒级别、毫秒级的查询响应。离线数据仓库执行引擎主要是Hive及Spark,Hive执行时会将查询分解为多个MapReduce任务,并需读取和写入HDFS中的数据,执行时长一般为分钟级别,严重影响查询效率。

       维护成本高:离线数据仓库底层涉及技术栈繁多,包括LDAP、Ranger、ZooKeeper、HDFS、YARN、Hive、Spark等多个系统,这将导致较高的系统维护成本。虽然线上也有HBase+Phoenix的实时存储与服务,但由于其组件比较“重”、社区不活跃,且某些特性无法满足实时场景需求,仍然不能完全解决当前的问题。

       技术选型

       面对离线数据仓库时效性不足、查询效率不高,多个技术栈带来的维护成本高等痛点,实时数据仓库的构建势在必行。在对多个MPP数据库进行深入的调研后,无锡锡商银行决定以ApacheDoris为核心构建实时数据仓库平台。这一技术选型旨在确保平台在数据写入、查询及服务层面均能满足实时业务分析的高要求。选择ApacheDoris的理由如下:

       高效数据更新:

       ApacheDorisUniqueKey支持大批量数据更新、小批量数据实时写入以及轻量化表结构的修改。尤其在处理大量数据和分区时,能够有效避免庞大的修改量和修改不准确的问题,从而提供更加便捷实时的数据更新。

       低延时实时写入:

       支持秒级别的数据实时写入、更新和删除;支持主键表模型写时合并,可实现微批高频实时写入;并且支持主键模型Sequence列设置,可保证数据导入过程中的有序性。

       查询性能优异:

       ApacheDoris多表Join能力强大,依托向量化执行引擎、CBO查询优化器、MPP架构、智能物化视图等功能,能够实现海量数据的毫秒级查询响应,满足即查即走的数据查询要求。同时ApacheDoris2.0版本支持行列混存,在点查询场景可以实现数万并发的毫秒级响应。

       平台极简易用:

       兼容MySQL协议,并提供丰富的API接口,能够降低上层应用的使用难度。同时,ApacheDoris架构精简,只有FE和BE两进程,节点扩缩容简单、集群管理和数据副本管理均支持自动化,具备部署简单、使用成本及运维成本低的特点。

       引入ApacheDoris搭建大数据实时数据仓库

       2022年4月,无锡锡商银行引入ApacheDoris构建实时数据仓库平台。考虑到银行数据规模非常庞大,接入实时数据的同时,再从业务库同步全量历史数据难度较大,因此,初期实时数据搭建主要依托于离线数据。

       首先,采用HDFSBroker方式高效初始化历史实时数据;同时,借助采集工具DataPipeline将数据实时采集至Kafka集群中,再由Flink写硬编码模式将数据实时写入ApacheDoris中。最后,借助飞流平台的接口服务能力,将ApacheDoris作为统一存储与查询引擎,为各业务线提供服务。

       飞流平台是无锡锡商银行为应对未来实时业务场景而构建的统一综合平台,主要包含实时采集、实时同步工具、实时

       数据仓库

       、实时计算以及数据服务。

从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践“我”的2024 | 通信世界全媒体年度盘点即将重磅上线!

       01完善数据流转链路

       从银行数据特性出发,结合ApacheDoris功能优势,无锡锡商银行重新思考并完善了数据流转链路:

       从离线数据仓库同步历史数据,风险最小化:

       文提到,由于银行数据的庞大规模,如果直接从Oracle与MySQL同步全量历史数据,会导致大量数据流经过防火墙和交换机,引发其他业务请求阻塞和服务超时等问题。为了避免这些潜在的风险和问题,首先基于Oracle与MySQL批量构建Doris表结构,然后使用HDFSBroker从离线数仓HiveODS层同步T-1全量数据到Doris中,从而实现风险最小化。

       实时增量抽取,更安全抽取模式:

       实时抽取会产生极少量的磁盘IO、内存、CPU消耗,为了避免对业务主库有影响,默认认情况下,一般会选择从业务从库或同城灾备库实时抽取。而针对时效性要求较高的业务需求,需要充分评估才能从业务主库抽取数据。

       构建Kafka层,保证数据一致性:

       建立Kafka层作为数据中间传输层,以确保数据的有序性和一致性。通过将Datapipeline发送的数据的Key配置为Database-Table-PK,并按照同一个维度有序地发送到KafkaTopic的某个分区(Partition)。由于KafkaTopic各自分区内部是有序存储的,因此下游的消费者可以按照顺序处理数据,避免乱序情况对实时数据仓库数据准确性的影响。此外,Kafka层可作为数据公共层可开放给营销类、风控类业务等场景使用。

       数据实时写入,保证数据不丢不重:

       在实际应用场景中,离线链路在T-1日的晚上11点至早上6点进行数据离线跑批,在T日10点借助HDFSBroker方式进行表历史数据初始化。实时链路使用Flink直接指向T-1的晚上10点消费KafkaTopic,进行实时数据同步,而在实时消费过程中会出现部分重叠数据。为应对该问题,选用ApacheDoris的UniqueKey模型(该模型支持数据幂等性),该模型可快速覆盖重叠数据;并使用Flink-Doris-Connector完善实时数据仓库链路,以保证实时数据同步不丢不重。

       02灵活的数据服务

       为了提供精准、高效的查询响应,无锡锡商银行采取了以下三种方式来实现数据服务:

       离线数据查询:针对离线需求,需要对数据进行快速查询。无锡锡商银行将数据定期从离线数据仓库导入到实时数据仓库Doris表中。这样可以在实时数据仓库中快速查询,满足离线数据分析和决策的需求。

       简单实时需求:对于不复杂的实时需求,无锡锡商银行利用ApacheDoris的高效查询能力,在”飞流”平台上提供了直接配置数据服务接口的能力,用户可基于实时数据仓库ODS层的SQL进行手动配置。通过这种方式,可以快速满足简单实时数据查询的需求。

       复杂实时需求:对于复杂的实时需求,无锡锡商银行采用实时Kafka数据流和Flink轻度计算的方式,将数据流写入实时数据仓库的DWD层表中,在”飞流”平台上基于明细表的SQL进行再次聚合,并手动配置数据服务接口,以满足复杂实时数据查询的需求。

       面向更多样化的服务场景

       01BI报表秒级查询响应

       无锡锡商银行基于ApacheDoris满足了当日数据分析、日常取数以及BI实时报表等多种场景需求,查询响应时间大大缩短,

       能够在1秒内返回查询结果

       ,极大降低了数据分析师的等待成本和服务器资源的消耗。

       比如,在BI实时报表方面,无锡锡商银行建立实时贷款数据表、实时存款数据表、账户时点余额表等多种报表。

       这些报表平均SQL代码行数为253行,平均响应时间为1.5秒。

       另外,通过优化查询性能和数据模型设计,无锡锡商银行能够在较短的时间内生成准确的实时报表,为业务决策提供及时的数据支持。

       02支持个性化营销方案

       在营销类数据服务方面,无锡锡商银行基于ApacheDoris丰富客户标签、完善客户精准画像,开展了资产净增活动、艺术家盲盒活动等多种营销活动。通过实时数据的分析,银行能够及时观察活动用户的转化情况,并及时调整运营圈选策略,实现从“千人一面”到“千人千面”的个性化营销。

       比如,在资产净增活动和艺术家盲盒活动等营销活动中,无锡锡商银行利用ApacheDoris实时数据仓库的能力,不断收集、分析和反馈活动数据。通过实时观察用户的转化情况,及时调整运营圈选策略,确保人员和活动之间的匹配度。这种个性化的营销策略使得银行能够更好地满足客户的需求,提升参与度、响应率以及用户粘性。

       03高效的风险识别与控制

       ApacheDoris的引入,使得无锡锡商银行能够更快计算出风控特征变量、异常交易行为。以新用户注册为例,当用户填写资料时,系统可以基于实时的风控特征变量,快速判断审批策略结果,及时优化策略模型,保证审批的质量和准确性。

       无锡锡商银行还能够及时识别和预防潜在的风险。例如,对于短时间内大量交易、异常交易金额等交易数据,银行可以实时收集并进行监测,以及时发现异常交易行为和欺诈行为。通过实时数据分析,银行可以快速识别潜在的风险,并采取相应的措施进行预防和应对。

       另外,无锡锡商银行还利用ApacheDoris实时数据仓库对客户的信用历史和信贷申请信息进行实时分析。通过快速判断客户申请金额是否符合其还款能力,银行可以及时作出风险评估和决策,从而有效控制信贷风险。

       04七日交易流水表的数据自动更新

       在实际应用场景中,交易流水表的数据量非常庞大,涉及交易序号、交易日期、交易类型、交易金额等数据。为确保数据的及时更新,无锡锡商银行选择采用ApacheDoris动态分区表的特性。该特性可以自动创建分区,并自动删除超过七天的交易流水数据,以实现七日交易流水表的数据自动更新。具体的操作包括以下步骤:

       以业务日期构建伪列作为联合主键;

       当ID数据进行

       tran_date

       跨天更新时,代码进行回表操作;

       找到数据在Insert与分区表中对应的Date值,并拼接成UpdateJson更新入库。

从离线到实时:无锡锡商银行基于 Apache Doris 的数据仓库演进实践“我”的2024 | 通信世界全媒体年度盘点即将重磅上线!

       借助ApacheDoris动态分区分表特性,不仅能够保证底层主键和服务器稳定运行,还能够自动更新并只保留七天流水交易数据以供分析师查询,

       并满足百万QPS下1.5秒查询响应需求

       。

       05高并发点查询

       早期营销类与风控类应用场景主要依赖两套HBase集群以支持点查服务,然而在实际应用中,会遇到诸如Master/Regionserver异常退出、RIT等问题。为避免该问题,可利用ApacheDoris高并发点查能力,并在创建UniqueKey表时,启用Merge-on-Write策略,使得主键点查能够经由简化的SQL执行路径完成,仅需一次RPC即可完成快速的查询响应。

       最终通过在三台节点上进行压力测试,在为每台节点配置了8C、10GB的情况下,获得了以下显著收益:

       在单表包含5000万数据的查询场景中,QPS高达2.5万;

       在涉及5000万数据的多表读写场景中,QPS同样达到2万;

       复杂SQL查询的稳定性也保持在QPS2.5万的高水平;

       在多表实时读写场景中,QPS亦能稳定在2.5万。

       结束语

       目前ApacheDoris在无锡锡商银行已经接入数百张实时表、上百数据服务接口、接口QPS达到数百万级别。此外,ApacheDoris作为统一查询网关,显著提升了历史数据分析的效率,与原来分钟级响应时间相比,查询提速超10倍。

       未来,无锡锡商银行将持续发掘ApacheDoris优势,并推进其在实时场景中更深度的应用。

       在性能表现上:进一步优化高并发点查询、自动分区分桶、执行引擎等能力,以提升数据的查询响应效率;

       在负载均衡上:构建双集群,实现架构负载均衡;同时,将完善架构预警与熔断机制,保障业务运行不间断;

       在集群稳定性上:实现ApacheDoris集群的“分工协作”,使其各自承担实时数据仓库的计算与存储、数据服务加速查询等任务,进一步提高系统的稳定性及可靠性。

正文完
 0
网站地图