一、引言
《“十四五”国家信息化规划》指出加快推进数字化转型,是“十四五”建设网络强国、数字中国的重要战略任务。金融行业面临全面的数字化转型新契机,中国人民银行《金融科技发展规划》中指出深化金融数据要素应用,夯实数字基础底座,发挥数据要素倍增作用。作为数字金融发展基建保障的基础运维,其数字化转型成为金融数字化转型中必不可少的重要组成部分,必须予以重视。数据仓库作为金融企业数据资产承载的核心部件,随着业务数据的爆发式增长,业务场景呈现多样化趋势,数据仓库运维管理面临着新的压力,如:
1.数据仓库与传统数据库相比无有效综合指标,无法快速判断运行状态;
2.单一仓库集群不能承载全部业务,拆分功能集群面临极大运维管理压力;
3.数据仓库各项资源管控粗放,无法实现精细管控、精准趋势预判等;
4.数据仓库采用分布式架构,组件众多,规模庞大,事件处置,尤其是性能相关事件处置,分析定位困难。
为了更好的适应数据仓库技术的发展趋势,支持相关业务的发展,G行逐步深入数据仓库运维数字化探索实践,建立了数据仓库全景运维数字化模型,多维度展示、维护、管理数据仓库运行生态,强化平台异常感知能力、精细化管理能力、资源调配能力、租户服务能力等,全面提升数据仓库的运维管理水平。
二、探针监测
G行数据仓库采用国产MPP集群架构产品,承接数十个数据集市,上百个业务系统,是G行重要的数据资产承载系统。虽然业内数据仓库多采用关系型数据库,但是不同于传统关系型数据库可以通过TPS、QPS、IOPS等综合指标来描述整体运行效率,数据仓库场景下常规指标无法准确描述数据仓库的运行状态。通常数据仓库运维关注数据仓库整体运行状态、压力负载以及各计算实例状态等,而在数据仓库故障场景中,监控采集到的异常现象,有明确的故障指向,更容易进行有针对性的进行分析定位,此类故障处置相对快速,而通过业务应用反馈的异常,通常不易处置,一是未知场景、运维监测未达,二是业务反馈描述易于理解但相对强调主观感受,例如“慢了、快了”等。
G行数据仓库运维打破固有思维,站在运维希望业务应用反馈哪些关键信息的角度,把业务反馈由“慢了”更换为“建立连接慢”、“任务分发处理慢”、“结果集反馈慢”等更清晰、更能辅助判断定位的描述。结合运维经验换位思考探寻快速便捷的判断方式,首创探针机制。探针简而言之就是模拟实际场景,探针绝不是一成不变的,而是根据业务场景特殊制定的。不同于具体业务,反馈一个结果,关注响应时间,探针不只是探测响应反馈时长综合指标,更是标识探针探测过程中各项时间消耗明细:WAIT等待时长,CREATE CONNECTION建连时长,INSERT插入效率,DDL响应时长,ANALYZE执行效率等。探针辅以探针监测机制,实现数仓运维的综合监测指标。探针不是绝对的,没有固定的取值范围,这个取决于业务应用背景以及数据仓库集群的处理能力。因为探针依赖数据仓库的业务场景,所以探针不可移植,但探针机制可以相互借鉴,属于数据仓库普适性综合指标。
图1 探针检测与分析
探针监测可宏观的判断业务运行状态,日常运维还需结合数据仓库的实时运行视图综合判断,对于某些特殊SQL引起的异常、亦或是节点响应慢等场景,探针监测机制无往不利。因为特殊SQL与探针数据的异常之间存在相关性,可以通过探针数据异常结合实时运行视图,反推定位异常SQL,从而快速定位解决故障。同时,由于数据仓库的业务场景和投产周期相对的固定,一个投产周期内的探针表现情况会相对固定,所以基于探针的时点同比,可以判断数仓整体运行状态,当实时探针发生较大偏差,也可以提前介入进行定位处置。基于探针机制,G行数据仓库运维能够更快的感知、定位、处置异常,从而降低业务影响、保障业务运行。
三、动态调控
随着业务的发展,单一的数据仓库集群已经不能满足业务的需求,银行业大多都采用拆分功能集群或业务拆分的方式,实现数据仓库集群压力分散。G行数据仓库采用一主多辅的功能集群配置架构模式,主集群主要完成全行批量加工,业务数据处理,监管报送等重要批量任务处理工作,辅助功能集群分别为报表结果集查询、数据备份、灵活查询、数据挖掘等功能集群。同时主集群承担向各个功能集群进行同步数据,保障数据一致任务。
图2 数据仓库功能定位
G行数据仓库为了满足相关业务的高效性,部分业务采用联机访问主仓的方式,这就出现一个混合场景。对于单一功能数仓集群而言,完成满足数仓功能定位即可,G行数据仓库主功能集群不仅承担了批量任务还承担了部分前端业务查询。由于前端联机业务查询跟批量业务处理是完全不同的两个作业场景,在同一环境运行无法做到绝对的资源隔离,所以尽可能避免冲突将两个业务场景的运行时段进行拆分,做到不相互干扰,也正因如此G行有着行业内最早的结批时点。为满足混合业务场景的高要求,G行通过数字化手段,增强调控精准保障业务运行。
01.资源调控
由于同一数据仓库集群应对批量和联机两种不同业务场景,所以为保证不同时点的业务诉求,保证不同业务场景应用最优资源配置,根据具体使用情况采用自动调控的方式,调整资源配置,向高优先级业务倾斜,工作时间保证联机业务查询探索,非工作时间保证日批处理,分时段、分场景精准资源调控保证业务处理高效。
02.调度调控
探索根据集群资源消耗情况实时调整并发控制,达到时刻保持高水位运行,最大限度利用集群固件资源,提升业务处理效率。通过采集集群的各项资源使用情况,包括基础资源消耗,集群并发数量,前端、批量并发配比等指标数据,建立实时动态调度调整的数据模型,调整不同种类任务调度,相同类别任务的并发分配占比等。
03.运行调控
数据仓库批量业务场景相对稳定,任务都是经过非功、压测等各种测试,整体任务运行稳定。但因为主集群承接混合联机查询业务场景,由于联机查询场景不可控,不可避免可能发生资源争抢。当因系统资源发生争抢,导致运行异常,大概率是因为前端的异常SQL查询导致的,导致数据仓库压力激增,此时启动自动运行调控机制,来最大限度的保证数据仓库的运行稳定。经探索实践自动调控机制大致归为三个等级:一是自动查杀运行时间长,低效的联机查询;二是自动查杀前端全部查询,快速释放资源;三是极端场景应对,封禁全部联机业务查询。
四、数字画像
为了更好的进行数据仓库的运维管理,G行数据仓库运维探索实践中,建立数据仓库的数字画像并不断的健全完善,数据仓库数字画像,借鉴业务部门的“客户画像”,依赖数据仓库的数字画像,不断的挖掘数据仓库运行的规律和特点,从而更加清晰的了解数据仓库的运行,实践过程中数据仓库数字画像大致分为两类:一是数仓平台的数字画像,描述数据仓库的运行规律和特点;二是数据仓库的租户数字画像,描述数据仓库上不同集市租户的资源消耗和业务使用特点。
图3 数据仓库数字画像
01.平台画像
宏观的展示数据仓库平台的整体概况,从应用批量、基础资源、数据库使用情况等三个方面对数据仓库平台进行数字建模展示平台画像。其中,应用批量显示批量任务变化,执行时长,完成度,同比、环比等;基础资源展示存储变化,倾斜异常,容量变化,日均消耗等;数据库从连接数量,实例资源消耗,实时任务、任务等待,用户资源分布、占比等多个角度展示数据库库资源分布。除展示的平台宏观数字画像,还有通过各种维度观测整理出更多平台精细画像,满足日常不同角色管理人员对数据仓库平台的维护管理需求。
02.租户画像
功能定位是满足数据仓库平台了解各集市租户的运行特点,同时将租户画像通过自动推送的方式,推送对应集市管理人员,以便相关人员了解各自用户数据仓库上的资源消耗,同时方便各集市对其后续发展及目标定位更清晰。租户画像一方面通过描述用户连接、实例资源占比,访问总量,响应时长以及通过DDL、DML消耗占比等了解业务特点。另一方面通过表数量,数据量,并发数的变化趋势了解业务发展趋势,提前规划应对数据仓库租户资源需求变化等。
数字画像多维度的采集仓库平台及租户的各项运行数据,通过数字建模的方式描述各类运行场景,对仓库平台的各项指标的趋势监控,更好的监测平台运行,做到不仅知其然而且知其所以然。通过租户各项指标的运行监测,了解运行特点,对租户进行精细划分,根据租户的运行特点不同,针对性定制管理策略,从而实现数据仓库平台的精细化管理。
五、异常感知
多年数据仓库运维经验得出,MPP架构数据仓库集群具有典型的“木桶效应”特点,集群单点性能异常会导致整体性能下降。而此类性能下降成因主要分为两类:一是计算倾斜,由于业务数据倾斜或统计信息不准,导致任务运行倾斜,数据仓库集群资源未能充分利用;二是由于设备硬件老化等问题导致单点性能下降,此类性能下降一般不易察觉,通常由于影响业务反查,定位单点硬件异常、性能下降。为实现针对硬件老化等场景的异常提前感知,G行通过数据建模,采用针对基础资源的流数据实时采集分析处理,大大提升了异常感知,做到了高效识别潜在风险故障,充分发挥数字化运维的特点,提升运维效率,多次避免了业务影响。真正做到了从“亡羊补牢”到“未雨绸缪”,提前发现并规避问题,防患于未然。通过不断的探索实践,G行实现了离群节点检测、异常进程检测、慢盘检测等多种异常感知策略。
图4 异常告警
01.离群节点监测
根据MPP架构及运行特点,采集CPU、内存、负载、连接等基础资源信息横向对比,经过建模运算实时监测集群内部节点和节点之间的资源消耗及其变化情况,探测异常推送管理人员提前介入处置。
02.异常进程监测
通过实时、周期采集节点进程消耗情况,分析进程TOP资源消耗,历史资源消耗同比,节点进程资源消耗环比,校验进程运行状态,识别异常进程,探测异常推送管理人员介入处置。
G行为提升数据仓库整体运维服务水平,借助日趋成熟的数字化技术,不断提升运维管理的能力,除离群节点监测、异常进程监测等基础资源的异常感知,还在应用、数据库等多个层级设置了异常访问告警、应用效率比检测、慢盘监测、SQL残留检查等多项异常感知策略。
六、总结
IT业对金融系统生命周期和投入一般表述为“三分建设、七分运维”,由此可见运维在整个生产系统的建设、运行、维护、管理中充当重要的一环。数字化运维场景下,运维管理的基本职责不变,而有了数字化加持的运维管理不应只是保障系统的平稳运行,应承担更多的职责。由于管理之间的壁垒,运维不可能去干预业务开展,但是运维作为生产运行一线,能更多的了解析生产运行特点、特性,资源消耗周期,增长趋势等。我们常说实践出真知,生产运维产生的数据才是生产运行的一手资料,相比于测试、预判都要更为准确,在此基础上进行梳理、汇总、分析反向推动指导业务,能更好地推动业务稳健发展。运维数字化,为运维管理提供了新的发展方向,大有可为,未来可期。