查看原文
其他

实战 | 海量数据高速查询的建设与实践

金融电子化 金融电子化 2022-11-29

欢迎金融科技工作者积极投稿!

投稿邮箱:newmedia@fcmag.com.cn

                                           ——金融电子化

文 / 兴业银行信用卡中心    刘秋艳  孙志鹏

数据是企业的第一生产力,企业数据量会随着企业的发展而不断增长,如何存储及高效检索海量数据是企业发展中不可避免的问题。兴业银行信用卡中心近年来在面向用户的海量数据高效查询方面积极探索,形成了一套以Hbase+ElasticSearch为中心的组合存储及查询框架,在业务场景应用方面卓有成效,持续推动业务数字化。


海量数据高速查询行业现状及背景

兴业银行信用卡中心在经营中积累的数据,具有海量性、快速流转性、多样性的特征。由于传统技术架构的限制,在信用卡历史交易流水查询、历史账单查询等海量数据的业务场景开展方面存在诸多痛点。如何充分利用好数据,提升数据查询效率,加快数据流转速度,提升企业经营效率,是信用卡业务发展中所面临的困境。在此背景下,兴业银行信用卡中心自2019年开始启动信用卡数据中台的建设,依托大数据技术,进行数据的存储、加工处理、分析利用等。其中,海量数据的高速查询模块是信用卡数据中台建设中的重要一环,以完善的高速查询技术体系支撑多样化的数据查询业务场景。


对于海量数据的高速查询,目前业界比较通用的技术架构是Hbase及二级索引的方案。Hbase是一个构建在HDFS上的列式分布式存储系统,适合海量数据的高并发在线查询,但仅支持行键的索引,如果要针对其他字段查询就只能扫描全表,代价大,在复杂查询方面能力弱。为满足现实中复杂多样的业务查询场景,提升数据查询效率,在实际应用中会在Hbase上构建二级索引。针对面向客户的海量历史流水数据的高速查询场景,兴业银行信用卡数据中台经过多方调研及实践探索,构建了Hbase+ElasticSearch的组合查询引擎,形成了一套数据准确写入及更新至这两套系统,并从两套系统高效合并查询的海量数据处理机制。


系统高速查询的具体实践

兴业银行信用卡数据中台涵盖数据传输、数据存储、数据加工、数据应用、数据管理等数据模块,围绕营销、风控、运营等全信用卡业务板块开展数据建设工作。海量数据的高速查询模块是信用卡数据中台的重要组成部分,基于Hbase+ES组合查询引擎,提供数百亿流水数据的秒级在线查询。


1.高速查询中数据流转的总体架构

Hbase+ES组合查询引擎在具体实践方面,核心要解决的问题是数据如何同步写入两套系统、如何从两套系统合并查询,需要定制化开发和维护数据同步、数据查询合并、索引构建及增删管理等多种能力。


兴业银行信用卡数据中台基于Hbase+ES查询引擎的数据总体流转流程有两类。一是对于大数据量的表,源库中的数据通过Spark引擎批量写入Hbase,同时将查询条件作为索引批量写入ES;在查询时,根据查询条件先在ES中获取索引,再通过主键信息在Hbase中获取详细数据返回给前端,将复杂逻辑的查询放在较为灵活的ES中处理,在Hbase中仅需要根据主键进行取数操作。二是对于中数据量的表,考虑到数据量及ES的数据存储能力,全部数据批量写入ES,复杂逻辑的数据查询也在ES中直接进行。另外,设置配置管理系统来维护高速查询体系,包括Hbase入库配置、ES入库配置、查询配置三方面,通过参数配置化有效管理数据的入库和查询,提升系统的灵活性。


2.高速查询体系的优化设计

兴业银行信用卡数据中台在Hbase+ES的组合查询方面,根据实际使用场景做了些针对性的优化设计。


(1)控制数据分布的均衡性。高速查询体系在配置管理模块的配置项中内置Hbase的预分区算法、主键的设计规则。在Hbase建表时,根据配置管理项中预估存入Hbase的数据总量及大小,内置的预分区算法直接计算出相应的预分区数量,以解决Hbase自动分区可能导致的分区不均衡问题。同时,在建表时,通过内置的主键设计规则来配置相应Hbase表的主键,保证主键的唯一性、散列性及尽可能短的原则,保证主键的均衡性。


(2)保障索引更新的稳定性。高速查询体系在配置管理模块的配置项中内置ES的分片数算法,在ES创建索引时,根据预估存入ES的数据总量及大小计算出分片数,以合理均衡分配ES索引数据。


对于整个ES服务来说,索引的维护策略是决定整个集群是否稳定的首要因素。高速查询体系采用索引滚动策略、索引接力策略,来分别维护ES中增量追加的索引、全量替换的索引。索引滚动策略是指根据配置管理的配置项建立一个具有多个分片的索引,每次向该索引中添加增量数据,索引定义别名,查询时统一通过别名引用,便于异常情况下的表切换。索引接力策略是指数据每次入库ES时新建索引,在新索引中数据写入完成后,将指向旧索引的别名切换到新索引,切换完成后,删除旧索引,在索引更新的同时保证更新的无感知性。


(3)优化数据查询的效率。当ES中索引的数据量很大,分布在成百上千的分片中,查询时就需要同时对成百上千个分片进行搜索,相当影响查询效率。高速查询体系充分利用ES的路由机制,在建索引时指定路由字段,查询条件中带有路由字段,这样就只需要查询某几个分片就能得到结果,大幅提升查询效率。在选取路由字段时,有两点需要注意:一是路由字段只有是在查询时带有的条件才能起到优化作用,与路由字段无关的查询,无法得到优化;二是路由字段对应的索引数据需要尽可能的在不同分片中均匀分布,保证不会发生数据热点情况。

图1  信用卡数据中台的整体架构


实践总结

1.数据有效互导支撑是数据中台建设的关键前提

拥抱数据中台建设,兴业银行信用卡中心通过建设海量数据的高速查询引擎,打造数据存储及查询的支撑能力,从而接入并汇聚卡中心各业务板块的多样化数据,统一把控数据查询出入口,为渠道端系统提供高效的查询服务,以底层数据支撑能力推动信用卡中心的数据中台建设。通过封装数据入库及查询的配置管理模块,加强了系统的灵活性,将经营中累积的海量数据通过数字化技术手段充分利用,加快数据流转速度,提升数据价值,进一步为客户服务、为经营增效,探索与业务结合的最佳方式。


2.强大的查询能力为业务场景的优化夯实了基础

围绕优化业务场景,建立可基于数百亿客户流水数据的秒级在线查询能力。借助强大的查询能力突破创新,结合账单查询场景,兴业银行信用卡开创同业先例,首次在自助渠道账单服务场景中为客户提供自开卡以来所有期限的交易流水数据的实时查询及补寄服务。将冗长繁杂的人工提取历史数据的工作,转变为客户高度自助的实时查询服务,加速了新技术的规模化应用,有效提升用户服务质量、降低人力成本、加强经营效率。Hbase及ES分布式集群架构的灵活扩充能力,也从底层为业务场景的不断扩展提供强有力的支撑,不仅已有场景,对于新增查询场景,都可在配置管理模块进行简单配置及维护,加强系统集成化建设,降低日常开发维护成本,同时加快数据查询需求投入应用的时效,提升业务场景扩展的灵活性。


未来展望

企业经营中积累的海量数据具有多样化的特性,除了批量结构化数据外,还有实时流式数据、非结构化数据等。兴业银行信用卡数据中台正在推进流式数据实时入库Hbase、ES,并提供实时查询的能力建设,逐步完善现有查询引擎的技术架构,扩展对多样化数据的支持能力,增强数据的更新及应用时效。同时,从底层不断横向扩展在线数据的高速查询集群,全面接入海量热数据,逐步形成联机查询数据的统一出口。另外,信用卡数据中台将建设信用卡全量历史数据的分级存储机制,根据数据的使用频率、数据的提取时效,使用不同性价比的存储设备对海量历史数据进行分级存储管理,以最小化的存储成本来最大限度地满足用户数据需求,使数据价值最大化。总而言之,信用卡数据中台从多角度全方位不断完善高速查询体系的技术架构,形成规模化、标准化的数据应用支撑能力,为兴业银行信用卡中心的数字化进程不断助力。


(栏目编辑:韩维蜜)





往期精选:

(点击查看精彩内容)


● 实战 | 支付领域实时风控系统建设实践

● 实战 | 远程银行探索与实践

● 实战 | 云室吸气式极早期探测预警系统在数据中心火灾防范的应用

● 实战 | 运维动态口令管理模式拓展与实践

● 实战 | 证券行业风险资讯监测应用实践






《金融电子化》新媒体部:主任 / 邝源  编辑 / 傅甜甜 潘婧

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存