网易首页 > 网易号 > 正文 申请入驻

技术应用 | 基于Flink+Hudi的实时数据湖建设

0
分享至

文/交通银行软件开发中心 杨智飞

目前商业银行数据仓库主要采用基于MPP(Massively Parallel Processing)架构的离线数据存储计算方式,离线数仓的数据源主要以文件形式提供,由统一批量采集传输原始数据至客户端服务器,对数据进行清洗、转换、加载至MPP数据库贴源层,然后再经由明细层、汇总层逐层加工,形成轻、高度汇总模型,最终以批处理方式将数据下发到各应用系统使用。该实现方式的主要问题在于数据统计时延长,统计报表只能展示前一天甚至两天前。随着大数据存储技术和计算技术的快速发展,低延时、高并发的业务需求越来越多,上述高时延、低并发的离线数仓架构已经不能满足业务需求。基于此,本文提出一种基于Flink+Hudi的实时数据湖架构,实现秒级延迟和日均十亿级吞吐量的处理能力,提供商业银行数字化营销、客户画像、实时风险决策等各类实时服务能力和数据,有效支撑商业银行内部业务运营决策。

实时数据湖关键技术分析

本文以提升商业银行分析决策的实时性为目的,构建从底层数据源到上层应用服务的全流程数据加工框架。在数据处理的全流程阶段,需要选择合适的组件解决相应的技术问题,从而实现实时数据湖。

1. 实时数据采集。数据源的实时接入,需要借助变更数据捕获(Change Data Capture,CDC)技术。CDC是一种捕获数据库变更数据的技术,当源端应用对其数据库进行任何操作时,操作记录信息都将在日志中保存,CDC通过实时解析数据库的日志,以复制的形式增量提取数据操作语言更改(插入/更新/删除)的事件和更改的数据本身,并将数据分发到下游系统,支持对接多种数据库以及Kafka等存储引擎,输出格式灵活配置,近乎实时地实现了事实数据的增量加载。

2. 实时计算引擎。数据处理实时计算需要引入实时计算引擎Flink,Flink是由Apache开源软件基金会发布的,为分布式、高性能的流处理应用程序打造的开源流处理框架。Flink提供了同时支持高吞吐和exactly-once一致性语义的实时计算,支持迭代计算、状态管理和内存管理,可实现低延迟的实时数据计算。Flink具有低延迟、高吞吐、支持有状态计算、支持事件时间、支持高可用配置等特性。

3. 数据存储引擎。实时数据湖引入Hudi数据湖存储引擎以实现流式数据的实时处理、海量数据的持久化以及历史数据准实时计算查询的能力。

Hudi(Hadoop Updates and Incrementals)是用于在分布式文件系统(Hadoop Distributed File System,HDFS)管理的数据库层上构建具有增量数据管道的流式数据湖,同时针对湖引擎和常规批处理进行了优化。简言之,Hudi是一种针对分析型业务的、扫描优化的数据存储抽象,在HDFS数据集海量存储的基础上提供了两种原语:首先是更新/删除记录,Hudi使用细粒度的文件/记录级别索引来支持该功能,同时还提供写操作的事务保证。查询会处理最新提交的快照,并基于此输出结果。其次是基于变更流的增量处理,Hudi对获取数据变更提供流式读取的支持,可以从指定的时间点获取指定表中已更新/插入/删除的所有记录的增量流。

基于上述设计,Hudi提供了基于DFS抽象的流/增量处理能力。这种架构设计使得Hudi具有如下的优势。一是提升效率:Hudi提供了记录级更新的标准支持。二是优化ETL性能:Hudi可以通过增量查询处理一张或多张输入表,同时结合常驻式Flink作业仅处理来自上游表的增量更改,可以大大加速此类数据管道应用。三是实现统一存储。

总体设计

1. 系统目标和总体架构。如图1所示,现有数据中台架构中,以批量数据仓库和批量数据湖为主,缺少实时数据指标加工能力。本文提出实时数据湖建设方案,基于Flink+Hudi流批一体架构设计,从数据采集、传输、计算、存储到服务全链路,实现实时数据应用场景所需的实时数据处理能力,解决传统离线数据仓库无法处理T+0数据、流式计算系统烟囱式开发等痛点,满足日益增长的实时类应用需求,最终提供秒级和分钟级的实时加工能力。总体设计分为实时数据集成、实时数据处理以及实时数据服务多个模块。

2. 实时数据集成。实时数据集成是指通过数据采集工具收集各个业务系统的实时数据,对非结构化的数据进行结构化处理,保存原始数据至实时数据处理模块贴源层,实现从源端到目标端秒级同步。实时数据的业务类型主要分为两类:第一类是业务交互数据,即业务流程中产生的支付、转账、赎回、确认份额等相关的数据,通常存储在数据库中,如Mysql、OceanBase等。第二类是埋点用户行为数据,用户在使用过程中,与客户端产品交互过程中产生的数据,比如页面浏览、点击、停留、评论、点赞、收藏等。

对于第一类存储在DB中的数据,选择Flink CDC技术进行采集,源数据库捕获到数据和数据结构的增量变更,转换为可被Flink读取的json格式,以近乎实时地将数据通过网络传输到指定目标端。

Flink CDC是一种基于Flink的流式数据处理技术,用于捕捉数据源的变化转换为流式数据,并实时将数据流发送到下游系统。对比常见的开源CDC方案,如下表所示。

表 常见开源CDC方案对比

可以发现,Flink CDC是基于日志的方式,具有优秀的增量同步能力,同时也可以支持全量同步,可实现全量+增量。Flink CDC采用分布式的架构,支持数据读取能力和写入能力水平式扩展。相较于其他方案,Flink CDC具有更丰富的生态。基于上述原因,选择Flink CDC作为实时数据集成的数据采集技术。

对于第二类业务应用运行中产生的实时消息,由业务应用产生后直接调用API推送至Kafka,再使用Flink CDC采集至贴源层。

3. 实时数据处理。实时数据处理是指实时数据入湖后的数据处理流程,由于Hudi支持Upsert/Delete、Table Schema和ACID的语义保证,并且Hudi提供了变更流的增量处理能力。因此选择Hudi作为存储引擎,Flink作为计算引擎,对于实时数据集成后入湖的增量同步数据,将清洗、补维、分流等逻辑通过增量流式进行处理,即可实现批流一体的实时数据湖架构建设,并在其中设计贴源层、明细层、汇总层以及应用层的数据分层模型,提升实时数据可复用性,避免烟囱式开发(见图2)。

贴源层:用于存放未经处理过的原始数据,结构上和源系统保持一致,数据源中的数据经过实时数据集成后写入贴源层。

明细层:为了解决重复建设的问题,要进行基于模型的统一构建,参考离线数仓的模式,建设统一的基础明细数据层,按照主题进行管理。明细层的目的是给下游提供直接可用的数据,因此要对贴源层进行统一的加工,比如清洗、过滤、扩维等操作。

汇总层:基于上层的指标需求,以分析的主题思想作为建模驱动,构建公共统计粒度的汇总表。汇总层是基于明细层的基础数据,通过Flink的简洁算子直接可以计算出结果,并且形成汇总指标池,所有的指标都统一在汇总层加工,按照统一的规范管理建设,形成可以复用的汇总结果。

应用层:主要提供给数据服务和数据分析直接使用的数据,一般会存放在Kafka、ElasticSearch、关系型数据库、ClickHouse等目标端中。

4. 实时数据服务。实时数据湖经过实时数据集成、实时数据处理加工完成后的结果,最终通过ElasticSearch、ClickHouse、数据库等查询引擎对接不同的应用,即对外提供数据服务以支撑实时查询、实时报表、实时风控、实时营销等金融行业典型实时数据应用场景。

实时查询:主要面向客户的报表,其业务特点是根据唯一标识去检索数据,需要低延迟、高并发、数据时效性要求高,而且需要明细数据,而不仅仅是聚合模型。基于明细可以实现更灵活的自助分析。对于这类场景,可以选择Mysql、OceanBase等关系型数据库增速点查或者范围查询。

实时报表:主要面向主管、客户经理等管理人员的报表,其特点是查询维度变化快,不只聚合成一种预设的模式,同时要求响应低延迟,查询性能要求高。因此选择将明细数据导入Clickhouse中,以处理复杂多维、大数据量分析计算场景。

实时风控:依赖于实时计算平台、知识图谱平台、机器学习平台、实时数据模型等,提供一系列的数据服务,包括关系欺诈服务、行为监测服务、设备指纹服务、位置解析服务等,以此来支持交易反欺诈场景、营销反欺诈场景等业务。

实时营销:基于百万日活和数千万事件的用户规模下产生的用户行为日志,聚合高维度的用户标签数据,同时提供基于事件实时触发低延迟的营销活动通知,保证整个链路在毫秒级内完成。

(此文刊发于《金融电子化》2025年2月上半月刊)

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
贪财又好色,德不配位的几位老艺术家,晚节不保一点都不冤

贪财又好色,德不配位的几位老艺术家,晚节不保一点都不冤

素衣读史
2026-01-19 12:01:39
上海外滩又出事啦!快来围观!

上海外滩又出事啦!快来围观!

小鹿姐姐情感说
2026-01-19 14:59:18
意外!被中国用核武器轰炸45次的罗布泊,如今竟然变成了这样!

意外!被中国用核武器轰炸45次的罗布泊,如今竟然变成了这样!

王鶔吃吃喝喝
2026-01-16 13:57:53
儿子被同学打死,主犯仅被判赔3000元,父亲在仇人家引爆炸弹!

儿子被同学打死,主犯仅被判赔3000元,父亲在仇人家引爆炸弹!

极品小牛肉
2024-03-18 12:06:49
无论战争胜败,泽连斯基的结局都不会改变,他就是下一个吴庭艳!

无论战争胜败,泽连斯基的结局都不会改变,他就是下一个吴庭艳!

近史博览
2026-01-19 00:02:15
香港活动大牌齐聚:刘德华鼻子下垂,洪金宝面部崎岖太吓人

香港活动大牌齐聚:刘德华鼻子下垂,洪金宝面部崎岖太吓人

查尔菲的笔记
2026-01-19 14:12:12
一口气搞懂16种酒,吹牛更显学问

一口气搞懂16种酒,吹牛更显学问

混知
2026-01-09 12:27:20
被伊朗嘲讽后,特朗普放狠话称“是时候在伊朗迎来新的领导层了”

被伊朗嘲讽后,特朗普放狠话称“是时候在伊朗迎来新的领导层了”

山河路口
2026-01-18 13:16:55
国足名宿范志毅,曾花22万买下英国豪宅,24年后增值了多少?

国足名宿范志毅,曾花22万买下英国豪宅,24年后增值了多少?

小莜读史
2026-01-09 12:05:37
周琦NBA被边缘化,杨瀚森与球队老大相处融洽

周琦NBA被边缘化,杨瀚森与球队老大相处融洽

阅尽天下精彩
2026-01-19 19:31:02
刚刚,夜晚7家公司出现重大利好和利空公告,有没有与你相关的个股?

刚刚,夜晚7家公司出现重大利好和利空公告,有没有与你相关的个股?

股市皆大事
2026-01-19 19:41:17
CCTV5直播,上海久事VS北京首钢,古德温PK杰曼,大白边VS马帝昂

CCTV5直播,上海久事VS北京首钢,古德温PK杰曼,大白边VS马帝昂

体坛小快灵
2026-01-19 15:05:13
演都不演!李亚鹏收千万捐助仅1天,恶心一幕出现,结局大快人心

演都不演!李亚鹏收千万捐助仅1天,恶心一幕出现,结局大快人心

千言娱乐记
2026-01-19 20:05:42
Lisa金球奖庆功派对造型惹争议,恢复铁刘海妆造的她,却穿透视装

Lisa金球奖庆功派对造型惹争议,恢复铁刘海妆造的她,却穿透视装

小老头奇闻
2026-01-16 15:18:15
台海发生激烈对峙!解放军2架武直10全程跟随,美军带新面孔亮相

台海发生激烈对峙!解放军2架武直10全程跟随,美军带新面孔亮相

史智文道
2026-01-19 19:58:17
原来她早已离世!自己订墓园和寿衣,3200万遗产全给姐姐

原来她早已离世!自己订墓园和寿衣,3200万遗产全给姐姐

丹妮观
2026-01-18 12:39:12
2026年一开年就被偏爱的三个星座,机会接连上门,别再错过

2026年一开年就被偏爱的三个星座,机会接连上门,别再错过

小晴星座说
2026-01-19 20:19:04
新任公安局长探访民情,在自家饭店吃饭被“所长小舅子”掀了桌子

新任公安局长探访民情,在自家饭店吃饭被“所长小舅子”掀了桌子

卡西莫多的故事
2025-12-19 11:15:00
陈行甲,又转身了!

陈行甲,又转身了!

梳子姐
2026-01-19 11:46:42
特朗普对欧洲八国加征关税 外交部回应

特朗普对欧洲八国加征关税 外交部回应

海外网
2026-01-19 20:37:02
2026-01-19 21:07:00
金融电子化 incentive-icons
金融电子化
中国金融信息科技类主导期刊。
2475文章数 524关注度
往期回顾 全部

科技要闻

这一仗必须赢!马斯克死磕芯片"9个月一更"

头条要闻

特朗普给挪威首相发信息:不再有义务只考虑和平

头条要闻

特朗普给挪威首相发信息:不再有义务只考虑和平

体育要闻

错失英超冠军奖牌,他却在德甲成为传奇

娱乐要闻

吴磊起诉白珊珊诽谤,白珊珊称被盗号

财经要闻

公章争夺 家族反目 双星为何从顶端跌落?

汽车要闻

徐军:冲击百万销量,零跑一直很清醒

态度原创

旅游
教育
亲子
本地
公开课

旅游要闻

四川广元昭化古城:千年文脉在守护与创新中焕发新生|文化中国行·巴风蜀韵

教育要闻

孩子说“太累了想休息一天”,你会给老师请假吗?

亲子要闻

东莞望牛墩金宝宝幼儿园食材配送启动招标 此前大米生虫被罚

本地新闻

云游内蒙|黄沙与碧波撞色,乌海天生会“混搭”

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版