《Apache Flink 案例集(2022版)》——5.数字化转型——工商银行-工商银行实时大数据平台建设历程及展望(2) https://developer.aliyun.com/article/1227988
3. 数据安全和可靠性
近几年各个行业对数据安全的重视程度都越来越高,而大数据平台作为全集群数据的汇集地,对数据安全保障方面能力的建设就显得更加重要。大数据平台不但要存储很多数据,而且要提供的各式各样的数据访问方式。因此工行设计了一套全生命周期用数监控审计,类似于Ngnix的 access.log,主要用于事后追溯审计。当用户将数据拖回到本地时,平台会对数据加上水印,当有些数据被非正常公开后,就可以知晓数据泄漏的来源,同时对身份证、手机号、卡号等敏感字段,在返回时动态脱敏,比如 11 号的手机号中间几位都会变成 “********”。
动态控权是因为有些数据访问权限控制粒度较细,工行实现了一套 SQL 改写引擎,在运行时对 SQL 进行解析,根据用户与表权限的对照关系,对 SQL 加上控制条件及脱敏函数,避免数据被越权访问。敏感数据识别是于专家规则或 ML 模型,自动识别海量数据中的敏感信息,并自动进行分类分级。同时,提醒管理员对敏感信息和分类分级结果进行核实确认。
工行在上海外高桥和嘉定两个数据中心建立了双活的大数据平台,通过系统级复制确保两边基础数据同步。对于部分关键业务会在两边同时运行,通过这种架构来确保关键业务的稳定。
上图是数据离线备份架构。金融机构在监管方面,对于数据存储可靠性的要求很高,所以,我们将 NBU 磁带备份系统和 Hadoop 以及 MPPDB 数据库的接口做了集成,实现了类似于 Oracle RMAN 的数据存储,增量备份的能力。
4. 降本增效
根据国家监管的要求,大部分金融机构的大数据平台一般都以私有化的部署方式为主。在早期 Hadoop 技术刚出现时,大数据平台的设备选型以物理机 + 本地磁盘为主,尽可能实现本地计算。目前,主流的公有云大数据云服务以存算分离的架构为主。那么在建设金融机构大数据私有云时,到底应为物理机 + 本地磁盘为主,还是以存算分离架构为主呢?
在公有云实现存算分离的最重要的原因就是资源的超分配。假设公有云上有 10 个租户,每个租户分别申请了一个 10 节点的集群,但由于这 10 个租户的资源使用都会存在错峰的情况,因此云平台只要准备 50 台设备就可以满足上述需求,并不需要实际准备 100 台设备,这就是超分配。
私有云的大数据平台,一般会按业务线来划分集群。每个集群可能是数百台设备的规模,并不会出现大量的小租户、小集群,但集群间确实会存在一定错峰的情况。对于这种情况,工行更倾向于使用固定资源 + 弹性资源混合部署架构。如图所示,左边基于裸金属的固定资源池,用于满足日常的资源需求。右边基于容器的弹性资源池,用于满足特定事件发生时突增的需求。同时,这部分弹性资源池,可以在不同的集群之间,动态调配复用。