《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

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
12天前
|
存储 分布式计算 OLAP
Apache Paimon统一大数据湖存储底座
Apache Paimon,始于Flink Table Store,发展为独立的Apache顶级项目,专注流式数据湖存储。它提供统一存储底座,支持流、批、OLAP,优化了CDC入湖、流式链路构建和极速OLAP查询。Paimon社区快速增长,集成Flink、Spark等计算引擎,阿里巴巴在内部广泛应用,旨在打造统一湖存储,打通Serverless Flink、MaxCompute等,欢迎大家扫码参与体验阿里云上的 Flink+Paimon 的流批一体服务。
13324 0
Apache Paimon统一大数据湖存储底座
|
4天前
|
大数据 Java API
大数据计算引擎之Flink Flink CEP复杂事件编程
大数据计算引擎之Flink Flink CEP复杂事件编程
|
5天前
|
消息中间件 存储 大数据
深度分析:Apache Kafka及其在大数据处理中的应用
Apache Kafka是高吞吐、低延迟的分布式流处理平台,常用于实时数据流、日志收集和事件驱动架构。与RabbitMQ(吞吐量有限)、Pulsar(多租户支持但生态系统小)和Amazon Kinesis(托管服务,成本高)对比,Kafka在高吞吐和持久化上有优势。适用场景包括实时处理、数据集成、日志收集和消息传递。选型需考虑吞吐延迟、持久化、协议支持等因素,使用时注意资源配置、数据管理、监控及安全性。
|
5天前
|
SQL 运维 druid
深度分析:Apache Doris及其在大数据处理中的应用
Apache Doris是一款开源的高性能实时分析数据库,设计用于低延迟SQL查询和实时数据处理,适合大规模实时分析场景。与Apache Druid、ClickHouse和Greenplum相比,Doris在易用性和实时性上有优势,但其他产品在特定领域如高吞吐、SQL支持或数据处理有特长。选型要考虑查询性能、实时性、SQL需求和运维成本。Doris适用于实时数据分析、BI报表、数据中台和物联网数据处理。使用时注意资源配置、数据模型设计、监控调优和导入策略。
|
5天前
|
消息中间件 分布式计算 Kafka
深度分析:Apache Flink及其在大数据处理中的应用
Apache Flink是低延迟、高吞吐量的流处理框架,以其状态管理和事件时间处理能力脱颖而出。与Apache Spark Streaming相比,Flink在实时性上更强,但Spark生态系统更丰富。Apache Storm在低延迟上有优势,而Kafka Streams适合轻量级流处理。选型考虑延迟、状态管理、生态系统和运维成本。Flink适用于实时数据分析、复杂事件处理等场景,使用时注意资源配置、状态管理和窗口操作的优化。
|
13天前
|
消息中间件 Oracle 关系型数据库
实时计算 Flink版操作报错合集之连接RabbitMQ时遇到Could not find any factory for identifier 'rabbitmq' that implements 'org.apache.flink.table.factories.DynamicTableFactory'错误,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
347 0
|
14天前
|
Kubernetes Oracle 关系型数据库
实时计算 Flink版操作报错合集之用dinky在k8s上提交作业,会报错:Caused by: org.apache.flink.table.api.ValidationException:,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
105 0
|
14天前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错合集之从hudi读数据,报错NoSuchMethodError:org.apache.hudi.format.cow.vector.reader.PaequetColumnarRowSplit.getRecord(),该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
14天前
|
Oracle 关系型数据库 Shell
实时计算 Flink版操作报错合集之遇到报错:Error: Could not find or load main class org.apache.flink.cdc.cli.CliFrontend,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
SQL 消息中间件 分布式计算
《Apache Flink 案例集(2022版)》——5.数字化转型——移动云Apache Flink 在移动云实时计算的实践(上)
《Apache Flink 案例集(2022版)》——5.数字化转型——移动云Apache Flink 在移动云实时计算的实践(上)
237 0

热门文章

最新文章

相关产品

  • 实时计算 Flink版