《Apache Flink 案例集(2022版)》——5.数字化转型——中信建设-Apache Flink 在国有大型银行智能运营场景下的应用(下)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 《Apache Flink 案例集(2022版)》——5.数字化转型——中信建设-Apache Flink 在国有大型银行智能运营场景下的应用(下)

《Apache Flink 案例集(2022版)》——5.数字化转型——中信建设-Apache Flink 在国有大型银行智能运营场景下的应用(上) https://developer.aliyun.com/article/1227900



应用场景

Flink流处理在中信应用于三个不同的场景,包括零售业务实时指标统计、基金投顾实时指标统计和资金流水明细查询。

image.png


零售业务线实时指标是管理驾驶舱的重要组成部分,决策者通过分析公司运营指标,对公司的运营和发展作出合理决策。  


面向零售业务设计实时数仓,需要获得开户统计、客户服务、APP 运营几个主题的统计指标,根据实时数据处理架构和数据仓库分层的设计,面向零售业务的实时数仓可以分为以下几个流程:  


首先是构建 ODS 层数据,实时采集客户信息表、业务流水表、渠道表等相关基础表的 CDC 日志。每个业务库的数据表对应接入到一个 Kafka 的 topic 中建立实时数仓的 ODS 层;


其次是 DWD 层的数据建模,创建 Flink 任务消费 ODS 层的 Kafka 消息,进行数据清洗,过滤、脱敏、关联转换等处理。同时以客户账户粒度进行数据合流,借助离线维表进行扩围操作,以获得账户粒度的明细表,实现 DWD 层的建立;


之后是 DWS 层的数据建模,基于 DWD 层的数据进行汇总,通过分析业务需求,将 DWD 层的数据按照主题进行划分,汇总出渠道服务主题宽表、业务部运营主题宽表、交易产品主题宽表等公共指标宽表,建立 DWS 层;


最后根据实际业务需求,计算业务指标建立 ADS 层。对于一部分用户账户粒度的业务指标,可通过 DWD 层的明细直接计算得到,部分粗粒度的业务指标比如 APP 渠道服务客户人数、投顾产品阅读人数等,可以通过 DWS 层计算获得。最终计算结果接入到数据网关将数据统一提供给下游系统或通过 BI 系统展示。  


image.png


基金业务在证券行业的重要性日益凸显,它能实时提供基金投顾产品的销售信息,为基金投顾及时调整策略提供数据支持。基金投顾场景的数据有三个特点:  


第一,涉及的数据规模比较小;

第二,数据在开盘时间提供给公司内部人员查看;

第三,数据对准确性的要求特别高。  


针对数据量小的特点,中信将数据指标结果输出到 Oracle 关系数据库;针对开盘时间将数据供给内部人员查看的特点,通过开启实时任务的启停策略,将更多的资源留给夜间跑批的任务来使用;针对数据准确性要求很高的特点,通过夜间离线跑批的方式对数据进行修正,以保证数据的准确性。  


原来的方案是通过页面触发存储过程来读取数据,而且读取的数据不是源系统数据,存在分钟级别的延迟。而实时数据加工方案通过实时推送客户新增、追加、签约、保有、签约率、规模等维度的指标,让业务部门可以更高效地掌握核心数据。

image.png

资金流水实时ETL场景主要满足业务人员在开盘期间快速查询客户某个时间段内的交易流水明细数据。它需要解决三个问题:

第一,资金流水明细总共几十亿条数据,数据量很大的情况下,如何做到快速查询?

第二,开盘时间内满足业务人员查询,且非开盘时间内数据量较小,是否采用定时调度?

第三,资金流水一定不能出错,如何保证数据的准确性?  


针对数据量大的特点,中信最终选择通过HBase组件来存储数据,通过合理设计RowKey与建立数据分区,达到快速查询指定时间段内的资金流水明细情况;针对非开盘时间内交易数据量很小的特点,开启任务的定时启停策略,将更多的资源留给夜间跑批任务;针对数据准确性要求高的特点,通过离线数据修正的方法来达到准确性的要求。



未来规划


中信目前正在开发中的场景分为以下几个方面:  账户资产,包括实时资产持仓指标统计,客户交易盈亏、交易记录的分析; 营销知识,包括MOT流失客户提醒与召回、开户未成功客户提醒与跟踪、两融业务潜在新客户的挖掘、电商 APP 活动的内容与内容运营; 风控,包含以客户维度的持仓集中度指标,以公司维度的融资额度占公司净资本等指标的分析统计。  另外中信正在调研 OLAP 多维分析组件,由于目前实时开发仍然采用 Lambda 架构,结果表存储组件涉及到关系型数据库比如 MySQL、SQL Server、Oracle 以及 NoSQL 数据库比如 HBase、ES、Redis。数据孤岛是目前面临的严重问题,希望通过 OLAP 组件实现实时数据的与离线数据的统一写入,实现流批一体,打破目前数据孤岛的局面,希望在流批一体存储层达到统一存储、统一对外服务、统一分析处理的目的。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
6天前
|
消息中间件 分布式计算 Kafka
深度分析:Apache Flink及其在大数据处理中的应用
Apache Flink是低延迟、高吞吐量的流处理框架,以其状态管理和事件时间处理能力脱颖而出。与Apache Spark Streaming相比,Flink在实时性上更强,但Spark生态系统更丰富。Apache Storm在低延迟上有优势,而Kafka Streams适合轻量级流处理。选型考虑延迟、状态管理、生态系统和运维成本。Flink适用于实时数据分析、复杂事件处理等场景,使用时注意资源配置、状态管理和窗口操作的优化。
|
14天前
|
消息中间件 Oracle 关系型数据库
实时计算 Flink版操作报错合集之连接RabbitMQ时遇到Could not find any factory for identifier 'rabbitmq' that implements 'org.apache.flink.table.factories.DynamicTableFactory'错误,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
360 0
|
14天前
|
Kubernetes Oracle 关系型数据库
实时计算 Flink版操作报错合集之用dinky在k8s上提交作业,会报错:Caused by: org.apache.flink.table.api.ValidationException:,是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
107 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社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
15天前
|
SQL Kubernetes 数据处理
实时计算 Flink版产品使用问题之在 flink-conf.yaml 中定义的配置在某些情况下未被正确应用到 K8s 上运行的任务管理器(JobManager)和任务管理节点(TaskManager),是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
14天前
|
消息中间件 Java 关系型数据库
实时计算 Flink版操作报错合集之从 PostgreSQL 读取数据并写入 Kafka 时,遇到 "initial slot snapshot too large" 的错误,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
749 0
|
14天前
|
存储 SQL 关系型数据库
实时计算 Flink版操作报错合集之按时间恢复时,报错:在尝试读取binlog时发现所需的binlog位置不再可用,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
660 0
|
14天前
|
消息中间件 资源调度 Java
实时计算 Flink版操作报错合集之遇到了缺少包的错误,已经添加了相应的 jar 包,仍然出现同样的报错,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
638 2
|
14天前
|
监控 Oracle 关系型数据库
实时计算 Flink版操作报错合集之在配置连接时,添加了scan.startup.mode参数后,出现报错。是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
717 0

热门文章

最新文章

相关产品

  • 实时计算 Flink版
  • 推荐镜像

    更多