从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者:吴岐诗,杭银消费金融大数据应用开发工程师

本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享

引言:融合数据湖与数仓的创新之路

在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金融作为一家持牌消费金融机构,虽以金融业务为核心,却始终保持着强烈的科技创新精神,发明专利的话屈居行业第二。面对业务高速发展带来的数据挑战,公司开始了一场围绕数据基础设施的变革——构建基于镜舟数据库的 GLH 湖仓一体平台。

GLH 代表了公司在湖仓一体化道路上的探索与实践,是连接业务与技术的关键桥梁。

一、GLH 建设背景:数据痛点驱动创新

1. 业务场景需求

作为一家以“数据、场景、风控、技术”为核心的消费金融机构,公司业务发展迅速,但传统数据处理架构已无法满足日益增长的数据需求,这些需求不仅关系到日常运营,更直接影响公司战略决策和合规底线。

• 策略数据实时性:金融风控策略需要准时获取数据支持决策,哪怕几分钟的延迟都可能导致风险控制失效;

• 多表数据一致性:不同库表间数据同步必须保持时间点一致性,一旦出现不一致,可能导致业务逻辑混乱;

• 经营数据准确性:管理层关注的经营日报必须准确及时,这直接影响了公司战略决策走向;

• 业务对账需求:日间数据支持业务对账流程,而传统 ETL 无法满足这一时效性要求;

• 监管合规要求:监管上报数据必须满足时效性和准确性;

2. 核心痛点分析

在传统数据架构下,公司遇到了几个关键问题:

问题 1:数据回溯困难

数据传输过程出现异常,可能造成数据缺失,问题发现不及时,数据回溯成本高。

问题 2:变动明细缺失

监管报送场景下,生产系统中客户信息一天内多次变更则需要报送每次的状态,但生产系统没有保存每次的变更信息,只能靠每日批量获取日终最后一次状态,无法满足监管要求全量报送每次变更的需求

问题 3:时点数据不准

受资源限制,抽取任务执行时点也可能存在偏差或无法执行,导致跨表数据同步存在时间差,同一业务在不同表中的数据状态不一致,造成业务逻辑混乱。

问题 4:跨系统日切问题

以交易对账还款场景为例,交易系统和账务系统等不同系统间对同一交易的处理时间不同,导致日切数据严重不准确,直接影响业务对账。

这些痛点不仅仅是技术困扰,更直接威胁业务发展:无法实时同步数据影响业务策略执行效果;数据不一致导致业务对账困难;数据质量无法保证使监管合规面临风险;数据回溯困难使审计工作耗时且成本高昂。

二、融合镜舟数据库打造湖仓一体架构

1. GLH功能架构

这一架构不仅满足功能需求,更兼顾了系统的稳定性、扩展性和可维护性,为湖仓一体平台奠定了坚实基础。

2. 为什么选择镜舟数据库替代 GreenPlum

在数据仓库选型这一关键决策上,团队经过反复论证和实践测试,最终选择镜舟数据库(StarRocks 企业版)作为核心存储引擎。团队面临的选择并不容易——原有的 26 台生产环境 GreenPlum 集群随着业务量增加,性能日益下降,而扩容意味着高昂的投入:

(1)降本增效:GreenPlum 的授权费用高昂且横向扩展成本高,而镜舟数据库提供了更具性价比的选择,符合公司降本增效的战略需求;

(2)实时写入能力:相比 Hive 等传统大数据工具,镜舟数据库支持实时数据写入和事务查询,在实时数据场景下有着天然优势;

(3)统一数据平台:数据分散在各个系统形成“数据孤岛”,而镜舟数据库作为统一的数据存储与计算平台,能够满足需求。

3. 基于镜舟数据库的湖仓一体架构设计

在新架构中,GLH与镜舟数据库深度融合,共同构建了真正意义上的湖仓一体平台。

• 存算分离设计:底层采用 HDFS 存储(规划未来迁移至 S3),灵活应对数据规模增长,既保证性能又控制成本;

• 多模型表设计:结合 StarRocks 的明细表和宽表能力,设计出支持时间序列、数据回溯等特性的自定义表结构,满足各种业务场景需求;

• 统一数据处理:采用“一次采集、多次加工”的理念,所有数据只需维护单一处理流程,避免重复开发,显著提升了开发效率和数据一致性;

• 灵活数据分发:支持通过 Kafka 向其他系统分发数据,满足 Flink CDC 等场景需求,打造了开放、灵活的数据生态。

三、显著成效:业务性能与成本效益兼顾

在实际部署过程中,团队积累了宝贵的经验:

• 批次时间优化:团队根据业务需求灵活调整数据同步批次时间,有的表需要 5秒同步一次,有的则是几分钟,这种差异化策略既满足了业务需求,又平衡了系统性能;

• 分区分桶调优:分析业务特点,重新设计了分区策略,以减少小文件合并开销,大幅提升了系统性能;

• 资源合理分配:计算节点与存储节点资源配比优化,监控显示,18个CN 节点和FE 节点组成的集群运行稳定,CPU利用率常年保持在50%以下,在下午和凌晨的业务高峰期也能从容应对,确保系统稳定运行;

业务成效

建成后取得了显著成效:

• 全面数据覆盖:已实接入 3,800+ 表,涵盖公司所有业务系统;

• 分钟级同步:从数据产生到可用,实现了分钟级无延迟同步,与传统T+1 模式相比,业务响应速度提升了数十倍;

• 批处理能力提升:支持每日运行 6,500+ 个任务,包括 800+ 个数仓任务,与原有架构相比,处理效率提升显著;

• 业务应用深化:打破了原有只允许批量查询的限制,开放实时查询接口,使业务系统能够直接获取实时数据;

这些成效不仅仅是数字上的提升,更转化为了业务响应速度的提高和客户体验的改善,为公司核心竞争力的提升做出了实质性贡献。

四、未来发展展望

GLH已完成核心功能建设,包括 API 服务、调度引擎、存储接入引擎以及数据管理、节点管理、任务管理等基础功能。未来发展方向包括:

1. 更开放的接口:支持接入更多计算引擎和存储引擎;

2. 丰富的插件生态:开发更多数据处理插件,增强平台数据处理能力;

3. 深化业务融合:进一步与业务系统深度融合,提供更精准的数据服务;

4. 技术持续演进:跟进存储技术发展,规划 S3 对象存储迁移;

结语

基于镜舟数据库构建的 GLH 湖仓一体平台,不仅解决了杭银消费金融在数据管理中面临的关键痛点,还为公司数字化转型提供了坚实的数据基础。通过构建“湖仓一体”的数据架构,公司实现了数据资产的整合与价值释放,为业务创新提供了强有力的数据支撑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Bean 作用域有哪些?如何答出技术深度?

导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答&#xff0c…

基于 Spring Boot 策略模式的短信服务提供商动态切换实现

一、整体设计思路 为了实现在短信服务提供商变更时,不修改现有代码就能无缝切换到新服务实现,可采用策略模式结合依赖注入以及配置中心化管理的方式来设计软件系统。 二、 具体实现步骤 1. 定义统一接口(以短信服务为例,接口命名为 SmsService) 创建一个抽象的接口,用…

解决SQL Server SQL语句性能问题(9)——SQL语句改写(1)

9.4. SQL语句改写 目前主流关系库的高版本中,特别是作为主流商业关系库的SQL Server来讲,大部分场景中,同一语义和结果集的SQL语句,其不同写法并不会影响CBO为SQL语句生成和选择最合适、最高效的查询计划。但少数情况下,不同写法的同一语义和结果集的SQL语句,CBO也许会为…

设计模式复习小结

1.容易忘得设计原则 接口隔离:指接口中的功能太杂则可以拆分一下。防止实现类实现了接口后自动依赖了一些不需要的功能。不同功能拆分成不同的接口。 里氏代换:强调父类能出现的地方,子类一定能正常跑。 迪米特法则:又称最少知…

昇腾CANN集合通信技术解读——细粒度分级流水算法

随着AI技术的演进,模型的计算复杂度和参数量呈现几何级数增长,这使得传统单机单卡部署在算力供给与显存容量方面显得力不从心,从而直接推动了分布式训练/推理技术的快速发展。今年年初爆火的DeepSeek在训练及推理Prefill阶段采用了分级流水Al…

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…

Copilot for Xcode (iOS的 AI辅助编程)

Copilot for Xcode 简介Copilot下载与安装 体验环境要求下载最新的安装包安装登录系统权限设置 AI辅助编程生成注释代码补全简单需求代码生成辅助编程行间代码生成注释联想 代码生成 总结 简介 尝试使用了Copilot,它能根据上下文补全代码,快速生成常用…

React 进阶特性

1. ref ref 是 React 提供的一种机制,用于访问和操作 DOM 元素或 React 组件的实例。它可以用于获取某个 DOM 元素的引用,从而执行一些需要直接操作 DOM 的任务,例如手动设置焦点、选择文本或触发动画。 1.1. 使用 ref 的步骤 1. 创建一个 ref:使用 React.createRef 或 …

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…

【大厂机试题解法笔记】报文响应时间

题目 IGMP 协议中,有一个字段称作最大响应时间 (Max Response Time) ,HOST收到查询报文,解折出 MaxResponseTime 字段后,需要在 (0,MaxResponseTime] 时间 (s) 内选取随机时间回应一个响应报文,如果在随机…

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…

Python爬虫实战:研究demiurge框架相关技术

1. 引言 在当今数字化时代,互联网上蕴含着海量的有价值信息。爬虫技术作为获取这些信息的重要手段,被广泛应用于学术研究、商业分析、舆情监测等多个领域。然而,构建一个高效、稳定且可维护的爬虫系统面临诸多挑战,如网页结构复杂多变、反爬机制日益严格、数据处理流程繁琐…

Jenkins | Jenkins构建成功服务进程关闭问题

Jenkins构建成功服务进程关闭问题 1. 原因2. 解决 1. 原因 Jenkins 默认会在构建结束时终止所有由构建任务启动的子进程,即使使用了nohup或后台运行符号&。 2. 解决 在启动脚本中加上 BULID_IDdontkillme #--------------解决jenkins 自动关闭进程问题-----…

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…

猜字符位置游戏-position gasses

import java.util.*;public class Main {/*字符猜位置游戏;每次提交只能被告知答对几个位置;根据提示答对的位置数推测出每个字符对应的正确位置;*/public static void main(String[] args) {char startChar A;int gameLength 8;List<String> ballList new ArrayList&…

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…

Towards Open World Object Detection概述(论文)

论文&#xff1a;https://arxiv.org/abs/2103.02603 代码&#xff1a;https://github.com/JosephKJ/OWOD Towards Open World Object Detection 迈向开放世界目标检测 Abstract 摘要 Humans have a natural instinct to identify unknown object instances in their environ…

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…