《Apache Flink 案例集(2022版)》——5.数字化转型——工商银行-工商银行实时大数据平台建设历程及展望(2)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 《Apache Flink 案例集(2022版)》——5.数字化转型——工商银行-工商银行实时大数据平台建设历程及展望(2)
+关注继续查看

《Apache Flink 案例集(2022版)》——5.数字化转型——工商银行-工商银行实时大数据平台建设历程及展望(1) https://developer.aliyun.com/article/1227993



应用场景


接下来介绍一些工行实施大数据平台的应用场景,主要包括余额提醒、损益预查询、实时大屏和实时对帐中心等四个方面。 


image.png


在余额变动场景,客户进行一次动账交易,可能触发多种通知内容,例如账户支出提醒、账户收入提醒、积分消费提醒等,造成客户手机连续收到短信提醒,用户体验不佳。因此,工行基于 Flink 多流合并和会话窗口的能力,将同一时刻发生的多条消息关联,将通知的逻辑合并在一起发送给客户。而当一条消息出现晚到的情况,通过会话窗口的 GAP 设置能自动降级,将逻辑分为两条消息发出去。大幅提升对用户的友好性。 


image.png


每家商业银行在每年 12 月 31 日时需要出年报,所以那天银行需要对全年的利润分配等指标进行试算。工行和其它商业银行一样早期使用 DB2 主机实现核心交易,年终时的损益、预查询都在主机上实现。但主机是按 MIPS 收费,所以当这种预查询多次执行时,成本很高。  


因此工行做了架构改造,通过 CDC 数据复制技术,将主机实时发生的数据复制到大数据平台,通过 Flink 进行实时 ETL,数据搬运过来之后,充分利用大数据平台海量的计算能力,大幅提升预查询效率。原来每天跑 10 轮,现在每天可以跑 30 轮,原来每轮 30 分钟,现在每轮只要 10 分钟,既提升了时效又节省了成本。 


image.png


实时大屏场景一般都是基于日志采集或 CDC 技术实现数据的统一汇集,基于 Flink 进行实时的业务量统计。工行也是通过这种方式实现的实时大屏,并使用了 Flink 的 mini-batch 的特性。虽然 Flink 能逐条实时处理数据,但在大部分场景,它会有 1ms 和 100ms 的延时,mini-batch 的特性类似于 Spark Streaming 微批的处理方式,在增加小量数据延时的情况下,大幅提升海量数据的吞吐能力,非常适用于实时大屏的场景。 


image.png


在银行业早期,大家基于 DB2 主机支撑核心业务。随着国内去 IOE 以及自主可控转型的浪潮,各家商业银行都开始将主机上的业务,迁移到分布式体系上,通过服务化接口的调用,满足不同业务系统之间的协作。业务迁移到分布式体系后,在调用多个服务化接口时,由于网络抖动等影响,会出现交易中,部分环节失败的情况。


 为了解决这个问题,工行基于 Flink 研发了业务一致性对账中心,将服务化接口调用过程中的调用日志,统一汇集到 Kafka。基于 Flink 会话窗口的特性,判断交易中各个环节的调用是否完整。如果发现不完整的情况,会触发业务上的补账 / 核对动作,及时消除对客户账务的影响。 


未来规划

image.png


目前在上线新的实时模型时如果涉及到历史数据的统计指标,需要分为两个作业来实现。以金融行业为例,在一个反欺诈模型里,如果需要最近 7 天累计交易额的统计指标,一般会先跑 Hive批量算出前 6 天的统计值放进 Redis,然后基于 Flink 读取 Kafka 中的数据,统计当天的增量数据,再进一步汇总成最近 7 天的统计值。而使用 HybridSource 可以将 Hive 和 Kafka 中的数据抽象成一张表,通过一个作业就可以统计出最近 7 天的值,在 Flink 内部自动实现类似于 union 的功能,大幅提升研发效率。 


image.png


关于动态资源调整,随着平台规模越来越大,资源利用率的关注度就越来越高。实时计算在一定特定的场景,会出现交易量突增的情况。比如在双十一大促之前,工行都会提前一周对交易相关的实时计算模型,进行手工扩容,大促之后再手工缩容。这个过程,总体比较复杂。工行目前还是采用手工扩容,或者通过业务侧将批和流结合的方式解决。因此后续希望 Flink 通过具备动态扩缩容的自适应能力,配置 min 和 max,引擎可以自动根据数据量的负载在 min-max 之间,调整使用的资源量从而提高整个平台的资源利用率。



《Apache Flink 案例集(2022版)》——5.数字化转型——工商银行-工商银行实时大数据平台建设历程及展望(3) https://developer.aliyun.com/article/1227985

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
4天前
|
SQL 分布式计算 MaxCompute
Apache Flink目前不支持直接写入MaxCompute
Apache Flink目前不支持直接写入MaxCompute
21 3
|
4天前
|
SQL JSON Apache
Apache Flink SQL目前还不支持直接解析JSON字符串并将其转换为预期的数据类型
Apache Flink SQL目前还不支持直接解析JSON字符串并将其转换为预期的数据类型
15 1
|
4天前
|
消息中间件 Apache 流计算
Apache Flink的RabbitMQ connector使用的是`org.apache.flink:flink-sql-connector-rabbitmq`库
Apache Flink的RabbitMQ connector使用的是`org.apache.flink:flink-sql-connector-rabbitmq`库
15 2
|
4天前
|
消息中间件 Kafka Apache
Apache Flink消费Kafka数据时,可以通过设置`StreamTask.setInvokingTaskNumber`方法来实现限流
Apache Flink消费Kafka数据时,可以通过设置`StreamTask.setInvokingTaskNumber`方法来实现限流
19 1
|
5天前
|
SQL 分布式计算 MaxCompute
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
11 3
|
20天前
|
Java Apache 流计算
Mac 下安装Apache Flink
Mac 下安装Apache Flink
22 0
|
1月前
|
消息中间件 分布式计算 Kafka
将Apache Flink任务实时消费Kafka窗口的计算改为MaxCompute
将Apache Flink任务实时消费Kafka窗口的计算改为MaxCompute
53 6
|
1月前
|
消息中间件 存储 Kafka
Apache Flink在处理Kafka数据时遇到的问题
Apache Flink在处理Kafka数据时遇到的问题
37 5
|
1月前
|
SQL 测试技术 Apache
Apache Flink 中,当你开启 Checkpointing 时
Apache Flink 中,当你开启 Checkpointing 时
22 1
|
2月前
|
SQL 存储 Java
官宣|Apache Flink 1.18 发布公告
官宣|Apache Flink 1.18 发布公告
636 3
官宣|Apache Flink 1.18 发布公告
相关产品
实时计算 Flink版
推荐文章
更多
推荐镜像
更多