查看原文
其他

如何做好银行大数据平台的选型、设计和实施? | 最佳实践

twt社区 twt企业IT社区 2022-07-03

【摘要】本文由来自银行业的实践专家介绍当前银行业大数据平台建设的现状和趋势,分析如何进行产品和技术路线选型,如何做好设计,可供正在规划大数据平台项目的银行业同行参考借鉴。

【分享专家】浩然,从事某股份制银行大数据支持处,主要负责大数据平台搭建,运维,以及日常故障的解决。对大数据领域的应用具有丰富的实践经验,并且对AI有一定的兴趣


一、银行行业中上大数据平台建设的多吗?现在是什么形势?

目前银行业很早已经认识到大数据的重要性,利用开源的技术组件来建立大数据平台整合行里的数据资源,从而进一步挖掘数据的内涵价值,支持银行业务。目前本人身处商业银行,所以我只能谈谈商业银行大数据平台推进和落地的大致情况。大数据平台在大中型商业银行已经落地开花,相应的大数据应用正如火如荼地展开,基本上都已经完成大数据平台建设。

截至到目前,大数据技术在大中型商业银行的应用主要表现在以下三大领域:

1)风控领域

利用大数据技术实现对用户多维度、全方位的客户画像,建立起具备自我学习能力、不断迭代的风险模型,从而实现更加精致、高效地风险量化能力。

比如实时风控系统。

2)精准营销和智能投顾

利用大数据技术对多渠道获得的信息进行整合、分析和应用,实现“千人千面”,达到提供给客户科学的资产配置和投资建议。比如用于零售的大数据精准营销,智能投顾系统。

3)运营优化

数据是银行最宝贵的财富。利用大数据技术,对银行海量客户行为数据分析,了解未来市场的发展方向,从而做出有针对性的战略调整。比如行为分析系统。

总之,大数据技术和传统的技术一块构成了银行的混合技术体系,在银行的应用系统中发挥越来越重要的作用。大数据平台已成为银行最重要的基础技术平台和基础数据平台。

以某商业银行为例,14年就开始探索和建设大数据平台,尝试将新的应用使用大数据技术来实现,不断积累经验,逐渐推广到使用大数据技术优化重构现有应用系统。目前该行大数据平台经过三期的迭代建设,已经引入10多个开源技术组件,建成200多台规模的集群,纳入了全行所有的数据,支撑了该行20余个应用,其中一多半都是A类或A+类系统。


二、在银行大数据平台建设中,应该如何进行产品的选型?

银行大数据产品的选型一般会考虑三大因素:选什么样的产品、该产品的什么版本、行业的应用案例。

1) 选什么样的产品

根据具体的业务或者应用的需求,选择合适的技术组件。对银行而言,技术组件一般要选择Apache社区下的活跃度比较高的,这样才能保证该组件在未来比较长的时间内具备生命力,并且功能会不断地迭代完善和优化。

2) 产品的版本

对银行来说,升级某个产品是个巨大的工程。因此选择合适的版本,尽量减少该产品的大的升级是一个非常重要的事情。一般而言,在满足需求的前提下,会选择次新稳定版。

3) 行业的应用案例

银行在选择大数据平台产品,不管是选择某一家都会进行行业案例的了解和应用情况的咨询,毕竟具有行业案例的产品选择是比较好的,不同行业业务场景不一定一样,所以在这方面还是会是一个参考的。

基于以上的三大因素进行考虑平台产品的选型。


三、银行行业在大数据平台建设中,如何进行技术路线的选择?

银行在大数据平台建设中,对于技术路线的选择呈现的是大致类似的方式:主要是以开源技术为主,自主跟踪、掌控、应用、创新或联合业内专业大数据技术公司合作应用创新。

银行的大数据平台包括存储、计算(批量和流式)、展现、挖掘以及权限管理等功能模块,关于每个模块的技术路线的选择,一般遵循如下原则:

• 业务需求驱动:业务需求明确,组件的技术特性可以满足业务要求

• 技术发展成熟:目前已发布的版本比较成熟稳定

• 开源社区发展好:技术组件的开源社区发展比较活跃,技术演进路线清晰

具体技术组件如下:

1) 在海量数据的存储上,选择以HDFS、Hive表、HBase表作为存储结构化和非结构化数据的介质。

2) 在批量处理功能上,选择以MR、Hive SQL、SparkSQL作为批量计算的框架。

3) 在流式处理功能上,选择以Storm、SparkStreaming、Flink作为流式计算的框架。

4) 在资源管理和调度上,选择以Yarn作为应用程序的资源管理和调度的模块。

5) 在权限管理上,选择以Ldap和Ranger作为权限管理和认证的主要凭证。

6) 在数据挖掘分析上,选择以Spark结合Mlib来实现数据的挖掘分析、机器学习。

7) 其他技术选择:

选择Kafka作为海量消息数据的缓冲队列。

选择多维分析引擎Kylin,实现超大规模数据的多维分析能力。


四、在银行行业大数据平台项目建设中,如何进行定量需求分析?需要收集哪些需求数据信息?

银行业建设大数据平台建设最终是为银行的各种业务服务的,所以收集银行的各种需求(业务需求、应用需求等)是最基础的一步。

大数据应用系统的功能模块从本质上主要分为三种:批量计算、流式计算、实时查询。对于每种模块,大致的数据需求如下表所示:


五、如何进行大数据平台建设的系统方案设计?有哪些具体的设计内容?

银行在进行大数据平台建设的时候,一般首先会从整体上进行规划设计,完成架构设计方案包括逻辑架构、数据架构、技术架构、物理架构等。

逻辑架构主要描述了大数据平台的主要组成模块以及各个模块的主要作用。一般会包括数据源、数据获取、数据服务(数据同构区、数据基础区、数据实验区、数据接口区、明细查询区)、流式计算、深度学习/机器学习、ETL作业调度、接口服务、数据应用等模块。

应用架构主要是根据大数据自身具备的数据挖掘、数据分析、流式处理、海量存储等特点规划的大数据平台应该提供的能力,描述以这些能力为基础支持银行应用支撑层、产品服务层及管理分析层的应用。一般而言,银行大数据平台需具备:海量数据存储和分析能力、明细数据查询和检索能力、流式计算能力、数据挖掘分析能力。

数据架构主要描述了数据在大数据平台里的整个生命周期的过程,包括产生方式、编码、存储格式以及数据的流向。大数据平台上的 一般分为批量数据、流式数据和管理数据(作业调度的控制流)。

技术架构主要描述了大数据平台采用的技术组件。具体的技术组件在前面已经提过,这里省略。

物理架构主要描述了大数据平台生产环境的实际部署。考虑到大数据平台是数据是分布式存储的,东西流量远远大于南北流量,因此大数据的集群之间是万兆互联。对于技术组件比如HDFS、HBase等的控制模块,一定要保证高可用。对于大数据的元数据要及时备份。


六、在大数据平台项目建设中,涉及新购或扩容改造的产品、资源有哪些?

银行大数据平台项目建设中,涉及到新购或扩容改造的产品、资源主要分为软件和硬件。

1) 硬件:

主要是X86的服务器和万兆交换机

2) 软件

主要是使用大数据平台的应用的改造:

a)JDK版本的升级

b)和大数据平台组件模块的开发


七、某银行大数据平台应用调用kafka的API往kafka里发送数据,发送端出现OOM的难点问题?

银行在建设大数据平台的过程中,不可避免地遇到各种技术难点问题。遇到难点问题时,项目组需协调各种资源解决这个问题。

在使用kafka(0.8.2.1)的时候,遇到一个很诡异的问题,具体如下:

应用调用kafka的API往kafka里发送数据,每隔一段时间后(大概发送百万笔报文后),发送端就会出现OOM的问题。

1、 我们初步分析讨论了后,得出这个问题应该与kafka集群没有太大关系,问题出在调用段上,故采用了以下三步:

a)分析发生OOM后,产生的dump文件;

b)重新审视了调用端的相关的调用代码;

c)确认调用端的系统的内核参数是否优化;

对dump文件进行分析,除了确定是那行代码造成的OOM问题,其他并没有找到太多有价值的东西。

对调用段的代码进行优化,确保不会产生线程泄露的问题。

对操作系统的内核参数进行优化,比如调优limits参数等。

2、 在进行1、步骤中的各种工作后,重新测试,问题依旧。

项目组召开了一次讨论会,大家一致倾向于是调用kafka的程序存在问题。

重新阅读了下kafka的官方手册,包括重新梳理了官方提供的demo和各种参数的配置。

对比了下出问题的调用程序,发觉JDK使用的版本不一样。

报OOM的程序的JDK使用的是JDK1.6的版本,而官方要求的最低版本是1.7。

我们重新用JDK1.7编译和打包及将调用端的系统的JDK改为1.7,重新测试,持续了2天,大概往kafka里发送了1000多万条的数据,一切正常。

我们分析了JDK1.7和JDK1.6的一个重大区别是垃圾回收机制的不同

至此,找到此次产生OOM问题的原因和解决问题的方法。

3、 总结:

虽然,问题原因查明和解决方法很简单,但是后续的善为工作比较麻烦。

1)访问kafka的应用使用的都是JDK1.6,该应用承担了很多功能,不可能贸然使用JDK1.7。因此将访问kafka的模块单独出来,形成个服务。单独部署。

2)这次OOM,使得不少同事和领导对kafka产生了怀疑。虽然解释了,但不可避免地留下了恶劣印象。

3)此次事件,促使了我们坚定了大数据组件使用规范的编写的决心。在很端的时间内,我们组织了相关同事编写了大数据组件的开发使用规范,并根据相关专家的意见进行了修改,形成了1.0版本的初稿,作为指导应用使用大数据的一个手册。

 资料/文章推荐:

  • 银行大数据的发力点——机器学习,主要应用场景分析

    http://www.talkwithtrend.com/Article/245147

  • 银行大数据开发平台架构经验及未来人工智能应用分享

    http://www.talkwithtrend.com/Document/detail/tid/231361


欢迎关注社区 "大数据"技术主题 ,将会不断更新优质资料、文章。地址:

http://www.talkwithtrend.com/Topic/37

下载 twt 社区客户端 APP

与更多同行在一起

高手随时解答你的疑难问题

轻松订阅各领域技术主题

浏览下载最新文章资料


长按识别二维码即可下载

或到应用商店搜索“twt”


长按二维码关注公众号

*本公众号所发布内容仅代表作者观点,不代表社区立场

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

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