《周耀-Apache Flink 在国有大型银行智能运营场景下的应用.pdf》由会员分享,可在线阅读,更多相关《周耀-Apache Flink 在国有大型银行智能运营场景下的应用.pdf(39页珍藏版)》请在三个皮匠报告上搜索。
1、Apache Flink 在国有大型银行智能运营场景下的应用建信金科周耀目录00404公司介绍公司介绍业务背景与挑战业务背景与挑战方案演进与业务效果方案演进与业务效果展望展望0101公司介绍建信金科介绍新金融人工智能区块链云计算大数据量子计算行业应用数字化运营智慧金融智慧政务智慧出行监管科技乡村振兴建信金融科技有限责任公司是中国建设银行的金融科技子公司传承三十年的科研力量积淀,公司以“新金融”战略为发展蓝图,以“新一代”系统为发展核心,运用人工智能、区块链、云计算、大数据、量子计算等前沿技术,在基础技术、行业应用、咨询顾问、数字化运营等领域构建成熟、系统的金融科技核心能力
2、。同时,公司积极拓展新场景,构建新生态,将金融科技能力成功运用于智慧金融、智慧政务、智慧出行、监管科技、乡村振兴等领域。公司将持续致力于成为“新金融”体系的科技推动者和生态连接者,助力中国建设银行集团数字化转型,赋能“数字中国”建设,让金融科技尽其所能,让社会更美好。智能运营产品介绍智能运营产品介绍1.现状呈现2.问题诊断3.监控分析4.结果优化0202业务背景与挑战在银行业,类似流程场景有几百种以信用卡申请为例:从客户申请到户最终使用,会经历多个步骤,每个步骤称为站点,所有站点串接起来形成一个流程业务要求能有一个通用且可配置的流程应用申请信用卡审核发卡制卡激活使用缺乏全局视角业务视角的统一视
3、图BeforeAfter提升服务满意度流程优化质效提升流程应用流程指标/流程风险监控/流程资产还 原 服 务 流 程流程分析的目标指标分析设计态与运行态数据化赋能提升服务满意度 业务数据来源于多个系统,数据湖中的数据仅是简单的数据堆砌,容易形成数据孤岛,无法形成业务视角的全局视图现有数据缺乏全局视角 业务要求:能将站点定义,流程定义,及站点流程的串接过程,通过参数化进行配置。要求设计态的参数与运行态的数据迭代优化业务灵活性高:可配置 业务要求:配置完成后,站点与流程的加工能在业务发生后,数据能秒级实时加工展示业务需求数据实时性高 站点信息来源于多个流,需要实时Join关联才能得到一个业务操作的
4、站点数据来源于多个流 数据来源于银行分布于全球的网点柜面渠道及移动端渠道,来自多个业务系统,7*24小时不间断的到达业务数据量大-日均几百亿面临的业务挑战痛点的解决方式通过对站点,流程使用参数化进行配置流程站点流程站点参数定义参数定义通过Kafka消息队列对业务系统与分析系统隔离数据采集数据采集消息队列消息队列真实时,可横向扩展Rocksdb 管理中间状态FlinkFlink同一套Flink引擎节省资源批流一体批流一体数据接入Flink实时处理数据存储应用业务系统网卡报文前端埋点CDC报文ESLogstashKibana消息队列Kafka(ODS)发布平台 监控告警运维平台 日志搜索数据清洗
5、指标计算维表关联 数据监控HbaseGreenPlumKafka OracleBI分析流程分析运营分析消息队列Kafka(DWD)大数据处理平台数据源日志埋点CDC数据分析及加工数据存储业务展示数据加工架构流程0303方案演进及业务效果章节页 方案一(请在实际使用时删除该行文字)3.13.1流程分析流程分析3.23.2流程指标流程指标3.33.3业务效果业务效果3.13.1流程分析流程分析每个业务动作对应三条日志报文:请求,响应,菜单埋点有相同的跟踪号。每个不同的业务动作都有全局唯一的跟踪号。难点之一是对不断到来的三条数据流,抽取多个字段拼接形成唯一标识,进行高效的JOIN连接请求流响应流埋点
6、流业务动作多流多流JoinJoin 性能是遇到的核心难题之一性能是遇到的核心难题之一结合业务场景,大幅提高多流结合业务场景,大幅提高多流JoinJoin 性能性能#1.0实现实现 keyedProcessFunctionkeyedProcessFunction,手动管理中间状态使用滑动滑动windowwindow使用IntevalInteval Join Join,Flink 自动管理中间状态#2.0#3.0 三条数据流,分别为:埋点,请求,响应 80%的情况3条数据会在5s内到达 需要容忍数据1小时的延迟到达 Join连接键只会连接一次技术背景多流Join 1.0版本 滑动窗口使用Redis
7、 手动管理状态Key byfilter10s 的滑动 windows5s 滑动一次 co group随着接入数据越来越大,受限Redis 吞吐量低,有背压吞吐量低 数据量大,存放Redis中的状态运维复杂Redis 运维压力大 保证状态,导致需要额外的代码与redis交互Redis 交互代码复杂当消息延时到达,需要保存未join上的消息状态Redis 状态积压大Redis Redis 作为状态存储的缺点作为状态存储的缺点多流Join 2.0版本 Interval join框架内 Rocks DB 自动管理状态通过阅读通过阅读 FlinkFlink 源码发现:源码发现:Interval join
8、 Interval join 会将会将 lower bond lower bond 和和upper boundupper bound的时间区间内的数据保存在的时间区间内的数据保存在state state 中,直到中,直到数据时间过期才会删除清理数据时间过期才会删除清理多流Join 2.0版本 Interval join框架内 Rocks DB 自动管理状态 长上下区间的数据,会导致状态数据多,checkpoint 体积大Checkpoint 体积大 当Rocksdb 中的状态大,容易导致OOMOOM 排查困难 作业不稳定导致业务过程中断导致实时业务中断Interval join Interva
9、l join 的存在的问题的存在的问题-在行内join一次场景中多流多流Join 3.0Join 3.0版本自己管理状态数据版本自己管理状态数据框架内 Rocks DB 手动管理状态Rocks Rocks dbdb是一种嵌入式 key value 数据库。在Flink中已集成,由Flink 管理,通常用于存放数据中间状态数据,可以很方便的进行横向扩展使用使用Rocksdb作为状态后端作为状态后端Rocksdb作为嵌入式数据库由Flink 框架管理降低运维压力降低开发量降低开发量相比最初1.0版本提高了10倍吞吐量提升吞吐量提升吞吐量提升实时处理能力方便横向扩展提升实时提升实时多种Join 方案
10、良好的自定义接口多种接口多种接口小结:多流小结:多流JoinJoin方案的发展历程方案的发展历程#1.0实现实现 keyedProcessFunctionkeyedProcessFunction 接接口结合定时器口结合定时器,自主管理Rocks DB状态数据。避免了Redis最大连接限制。最终使 Flink 大幅提升吞吐量,节省了计算资源使用滑动滑动windowwindow,结合Redis 将先后到达的消息报文保存在Redis前期数据量不大的时候能够支持验证业务模式使用IntevalInteval Join Join,将状态管理,交给Flink 内置的Rocks DB。业务高峰的时候会导致OO
11、M造成业务中断,内置的join方案无法满足项目需求#2.0#3.03.23.2流程指标流程指标实时指标计算实时指标计算1.01.0版本版本以GP 数据库为核心,使用SQL进行指标计算,周期性调度分钟级调度延迟秒级延迟GP分钟级准实时指标实时指标计算实时指标计算2.02.0版本版本端到端秒级延迟秒级、真实时指标渠道分布环节处理时长流程处理时长回退率产品分布机构业务分布基于流程的一些指标基于流程的一些指标流程指标使用 Flink 的收益提供指标的秒级延迟真实时真实时加工过程更容易FlinkFlink SQLSQL减少数据组件提升稳定性缩短链路缩短链路3.33.3业务效果业务效果流程分析示例流程分析
12、,被多个业务条线推广应用,并广受好评为数字化转型提供有力的数据支撑流程分析价值-流程重塑优化流程流程指标接入指标接入流程数据流程数据可视化可视化流程数据流程数据挖掘挖掘流程优化流程优化重塑重塑业务流程闭环管理业务流程闭环管理流程分析价值-风险干预管理异常场景监测异常场景监测事项定义事项定义业务流程实时还原业务流程实时还原异常触发预警异常触发预警实现风险管理实现风险管理流程分析价值-优化资源配置基于流程数据基于流程数据监测业务资源使用监测业务资源使用积累不同场景积累不同场景资源耗用情况资源耗用情况进行资源配置预测进行资源配置预测优化资源使用效能优化资源使用效能0404未来展望未来规划平台化平台化希望将在建信金科打磨的智能流程运营方法论,进行产品化,平台化,推广到更多的行业中。让更多的行业能得到金融级流程运营实践。产品化产品化推广使用推广使用行业咨询行业咨询请求流响应流埋点流业务动作Take it HomeTake it Home建信金科智能运营走在金融行业前列的运营体系解决方案让金融科技尽其所能让金融科技尽其所能THANKS(建议保持本页样式,请在实际使用时删除该行文字)