引 言
“科技不属于金融,但未来金融属于科技。无论是做平台还是做应用,本质上都是为业务服务。金融科技的本质是金融,但新金融的创新和发展需要以科技为依托。”
——建信金融科技大数据智能研发部负责人赵世辉
建信金融科技大数据智能研发部负责人 赵世辉
9月16 日,由 张江卡园和中国银联主办,Kyligence 承办的“数据赋能,金融科技 2.0”主题论坛中,来自建信金融科技大数据智能研发部负责人赵世辉为在场的五十多家金融机构带来题为《数据赋能,平台先行——金融大数据云平台建设经验分享》的演讲,介绍了建行数据平台的建设历程,从最早的传统数仓到“新一代”数据平台,再到目前正在建设的大数据云平台。带有“建行特色”的大数据云平台,其中有哪些技术突破,又带来了哪些应用效果,以下是赵世辉在演讲中的分享。
建设银行数据平台发展历程
1)第一阶段:数据仓库 + ODS
2004 年左右,建行开始真正意义上的数据平台建设,当时建行刚刚完成了全国数据集中,通过数据平台来解决两个问题:
● 系统间的数据交换
● 监管等需要多个系统数据整合加工的应用建设
这一阶段的数据平台,建行主要是数据仓库和ODS,使用的技术是Oracle和Teradata。平台主要处理行内数据,包括数据分发和管理类报表加工。
2)第二阶段:“新一代”数据平台
2012年开始,刚刚经历了全球金融危机,银行监管越来越严格,客户的需求越来越多样化,另一方面互联网金融也开始入局竞争。在此背景下,建行在新一代核心系统建设中,同步建成了“新一代”数据平台。
“新一代”数据平台最大的特点就是引入了开放平台上的Greenplum和Hadoop等技术,让大数据处理不再依赖于昂贵的Teradata设备。存储和加工成本的降低,使建行的数据量飞速增长。
在2012 年到 2017 年间,数据平台的数据量较之前翻了 100 倍,如何发挥数据的价值呢?“新一代”的策略是自主用数。数据平台提供了多种自助用数模式,从新一代开始,就很少有开发人员做固定报表,基本都是由业务人员自行配置。
3)第三阶段:大数据云平台
2018年左右,随着大数据和云计算技术的成熟,“新一代平台”处理的数据量和数据类型都面临着巨大的挑战。建行开始进行新型的大数据云平台建设。
大数据云平台对“新一代”数据平台的技术做了整体提升,一是与互联网厂商合作,大量使用开源技术;二是对平台功能进行全云化构建,实现了真正意义上的海量数据存储。随着算力和存储能力的增强,可处理的数据量越来越大,应用也越来越多。
大数据云平台解决了哪些问题?
随着大数据云平台的建立,无论是数据处理还是应用创新都获得了极大的助力,解决了目前大数据高速发展中面临的难题:
1. 金融业数字化程度高,数据价值密度大,但是优势越来越不明显。特别是在业务创新方面,大量的创新要结合外部数据。所以在大数据能力建设中,生态数据的获取工具和能力急需增强。
2. 传统的金融数据分析以批量为主,但是互联网行业早已进入了实时时代,比如抖音、淘宝都会根据客户的行为进行实时分析。金融产品要想在市场上立足取胜,越来越需要更快、更实时的数据来支撑。
3. 以前银行主要对结构化数据进行处理分析,随着5G、物联网技术的发展,越来越需要从非结构化数据中去挖掘“金矿”。之前的数据平台在处理非结构数据方面的能力有限,需要新的平台来提供更多的资源、更有效的分析手段来保证所有数据存的下、算的完。
4. 数据开放和隐私保护已经成为全社会关注的焦点。如何安全的使用各方数据,需要增强数据平台的能力,如 增加可信数据计算技术等。
5. 大数据的技术栈很多,如果让每个开发人员都掌握如此多的技术难度非常大。所以需要构建一个平台,能够把大数据技术都集成进来,屏蔽技术的复杂性,快速支持应用开发。
6. 业务人员的技术能力越来越强了,需要数据平台能够提供更多样化的环境和分析技术,满足不同层次业务人员的需求。
大数据云平台构建框架
在调研多家互联网云厂商的大数据平台后,建行结合自己多来年的数据平台建设经验,抽象出了新型大数据云平台需要具备的核心能力:
1. 全方位的数据采集能力,既要支持结构化数据的采集、也要支持日志、物联网、图像视频等非结构化数据的采集;既要满足批量数据的采集,也满足实时数据的采集。
2. 高效的数据集成能力,包括对数据的检核、清洗、转换、加载和异构数据库的数据同步,能对各类数据进行加工。
3. 敏捷的数据开发能力,要提供多种开发方式,包括代码开发、可视化开发,帮助开发人员快速的建立数据应用。
4. 多样化的分析可视化能力,提供面向不同场景的数据可视化、分析挖掘和大屏等工具。
5. 灵活的数据服务能力,屏蔽底层数据存储计算的差异,提供一致的数据查询和体验。
6. 智能化的资源和任务调度能力,为不同的作业提供调度执行和资源管理。
7. 在线的数据管理能力,保证数据进入平台后的轨迹能够被持续跟踪,为数据资产在平台内流动提供全流程的管理。
8. 高性能的存储计算能力,提供包括Hadoop、MPP、图数据库等基础产品,并且具备海量处理资源和弹性伸缩等能力。
9. 数据安全和运营能力,目标是按照金融级数据平台的要求,提供数据安全和运营保障体系。
大数据云平台主要技术组件
下图是平台的技术架构和组件关系,篮框是组件,数字是数据的流向及处理步骤。
1:数据采集组件负责把数据抽取或传输到平台
2:数据进入平台后写入存储与计算组件中的存储
3:采集到的元数据信息登记到数据管理组件
4:开发人员利用数据开发组件进行作业的开发和编排,开发过程会从数据管理组件获取元数据信息,比如数据源的信息,然后把形成的映射、调度依赖等信息写回数据管理组件形成血缘关系
5:调度把数据开发形成的作业按照要求运行,智能调度组件除了按照依赖关系运行作业外,还承担着不同资源的调配,保证作业的SLA(服务水平协议)指标
6:作业利用存储计算组件的计算能力,完成离线计算、实时计算、图计算等加工
7:加工后的数据可使用分析可视化组件让业务用户进行数据分析
8:也可以通过数据服务组件向外部应用提供服务。
数据管理组件是平台的中枢,一方面收集其他组件产生的信息,另一方面为各组件提供元数据的访问,将组件高效串联。
大数据云平台技术栈——开源+商业双轮驱动
与银行业普遍使用成熟的商业化产品不同,建行大数据云平台通过开源加商业产品的双轮驱动模式打造了整个平台的技术体系。
1)商业化产品 + 开源技术,实现自主可控
使用开源技术,实现技术的自主可控。目前平台使用的开源技术有80多种,都是业界比较成熟、社区活跃度比较高的技术。建行在开源代码的基础上对高可用、稳定性、安全性、和用户认证对接等进行了增强。对于开源技术不能满足要求,又是急需的技术,则引入了商业化产品,并把这些产品按照云平台的要求进行深度融合,快速与业界先进水平对齐,优先满足业务使用。 “开源 + 商业”产品双轮驱动的模式,也是后面很长一段时间内建行大数据云平台技术的发展方式。
2)商业产品的云化改造
如何让商业产品与大数据云平台高度融合、高效协作?
建行创建了云化托管模式,不改变原产品的架构,按照大数据云平台统一的技术框架和规范,实现与平台底层和上层组件的对接,达到与平台融为一体的服务模式。向下能够通过接口自动获取虚拟机、容器等资源,完成产品安装部署、服务启停;向上可以直接对外提供服务,或者和其他组件进行对接。 通过云化托管模式,实现了商业产品在平台上的云化,包括租户的隔离以及资源的动态调整,并且最大限度保留了产品原来的功能特性。
大数据云平台的技术突破
1)云化存储计算分离 MPP数据库
建行云化存储计算分离MPP数据库的架构如下图所示:上层的计算资源可以通过高速的数据交换网络共享底层的数据。
这种架构的好处是:
● 首先,计算和存储分离增加了系统的弹性,高峰期可以增加计算资源,低谷期可以减少资源。在非云化的环境下,这种操作难度很大, 现在借助云计算,使存储计算分离技术快速落地。
● 其次是这种架构增加了系统健壮性,计算节点可以被认为是无状态的,当计算集群出现故障时,能够快速恢复。
● 最后一点是系统扩展变得更加方便,扩计算资源和扩存储资源可以分开进行,节约成本。
这个技术解决了以前Greenplum使用中的一些痛点,比如故障恢复时间长,之前每次Greenplum故障至少要影响四到五个小时,影响运行效率;单个集群规模受限,导致大量的数据复制;Greenplum 的并发能力弱,无法满足日益增长的数据加工和访问需求。
云化存储计算分离 MPP数据库底层存储使用了对象存储,上层的计算引擎与Greenplum保持一致。对象存储是分布式存储的一种,支持高并发、分布式读写以及安全控制,当对象存储达到一定规模后,读写效率可以接近本地存储。此外,上层的计算引擎有本地缓存,通过缓存可以在本地完成 80% 的工作,另外20%的工作才与对象存储进行数据交换。基于这两点,数据的存取效率可以得到比较好的解决。存储计算分离减少了数据复制,增强了并发度,综合验证下来,会比原来Greenplum的加工时效性有好很多。
截止8月底,建行 云化存储计算分离 MPP数据库集群节点有1000多台,共享一份数据,节省了20%左右的数据存储和30%左右的系统资源。
2)云化大规模多维分析引擎
另外一个技术突破是大数据云平台对建行的OLAP引擎技术进行了升级。新一代数据平台主要使用Cognos作为多维分析的工具,但是随着数据量的增长和数据复杂度的增加,Cognos在使用过程中出现了报表响应速度慢、无法满足业务较长数据周期分析的需求、实时数据分析能力缺乏等问题。
基于新的国产智能大数据分析技术,建行基于Hadoop体系建立起了新型大规模多维分析引擎。优化了部署方式,实现了读写分离,提升了整体运行的稳定性;扩展了微批和流数据的分析能力,实现Cube的分钟级更新和准实时访问。
截止8月底,生产上的云化大规模多维分析引擎集群有1000多台,查询平均响应时间在1秒以内,每天查询量有几十万次。
大数据云平台上的应用建设
目前建行大数据云平台服务的对象主要分为两类,一类是行内客户,一类是行外客户。对外,大数据云平台支持了多地的政务类输出,在过程中完善了很多非金融特性。一方面让这个平台适用范围更广,另一方面也坚定了建行把平台进行产品化的决心,实现拓宽金融服务面、拉近客户与银行的距离,促进客户需求落地的功能。对内,在一套大数据平台上,以组件化的方式支持灵活支撑各种大数据应用。应用可以根据自身需求,利用大数据云平台的海量存储计算、数据加工、分析挖掘和数据可视化等能力进行组合,完成相应的业务功能,目前,已经上线运行了40多个全云化的大数据应用。
大数据云平台在实践中的挑战
1)金融场景与互联网场景在架构、流程、功能上存在很大差异,在联合研发过程中出现了“水土不服”的问题。希望对互联网技术要“扬弃”,不过“发扬什么,抛弃什么”需要根据实际情况做出判断。
2)大数据云平台在设计时是按照体系化设计的,这样可以把各组件进行高效的串联以便发挥最大的效能,但各组件耦合度较高,后续会在组件解耦上下功夫,通过一系列的解耦规范,保证组件既能高效协作,又能独立运行。
3)平台功能与应用个性化需求间的矛盾。平台类项目不像应用类项目有明确的业务需求,平台的建设要根据当前业界成熟的技术做一些超前设计。在平台上线初期,出现了一些功能业务不使用,业务需要的功能不具备的困境。所以在后续建设中,对平台的各种能力进行了重检,加强了与用户的深度沟通。
4)平台各组件之间以及与外部的协同对接没有统一的标准,给平台后续功能扩展和维护带来影响。现在一方面把好的方法落地,参与国家金融标准的制定,另外也将持续跟踪已发布的标准,对平台不断进行升级。
大数据云平台的未来规划
1)实时能力的增强。虽然平台上已经有了实时采集和流计算等技术,但是还没有形成统一的实时类应用建设环境和标准。大数据云平台要聚焦端到端的实时数据支持,未来会建立企业级的实时数据服务环境,除了对实时获取、传输和计算能力进行增强,还会完善实时数据分析、在线机器学习等实时数据服务功能。这些实时能力增强后,会在数据消费端产生更多有价值的应用。
2)打造可信数据计算环境。各行业对数据的流通和共享的需求都非常迫切,但现在市场上还没有成熟的产品。主要是因为可信数据计算的场景化较强,技术实现难度较高,或者是技术不成熟,或者是没有业界认可的安全或加密标准。另外,目前的技术大部分基于半诚实模型,也就是参与方都能按照规范执行,否则效果是难以满足要求的。平台已经在一些技术上做了研究,如参与金标委的相关标准制定,与一些外部企业落地了试点项目,后续会在这个领域重点突破。