HTAP 数据库在国有大行反洗钱场景的应用

导读

在金融领域,随着数字化服务的深入和监管要求的提高,反洗钱工作变得尤为关键。洗钱活动不仅威胁金融安全,也对社会秩序构成挑战。本文深入探讨了国产 HTAP 分布式数据库 TiDB 在某国有大行反洗钱系统中的应用实践。

依托 TiDB 构建的新一代反洗钱系统每日处理上亿笔增量数据和千万笔实时查询,管理着百 TB 级数据,架构上实现了高并发数据访问和多技术栈融合,提升了业务连续性和数据处理效率;有效地确保了金融交易的透明度和监管合规性,同时显著提升了客户体验。

引言

谈及“洗钱”,很多人认为它只出现在影视作品中,然而,洗钱活动可能就潜藏在我们的日常生活中,通过艺术品交易、跨境投资、赌博、证券交易等多种渠道进行。“反洗钱”是指为了预防通过各种方式掩饰、隐瞒各类犯罪所得及其收益的来源和性质的洗钱活动,依照反洗钱相关法规制定采取相关措施的行为。

业务挑战

银行经营模式正在发生重大的转变,金融服务呈现线上化、数字化、智能化等特点。在监管力度加大的背景下,监管部门对金融机构的反洗钱工作提出了更加严格的要求,包括严格核实客户身份、详细记录和妥善保存客户及交易信息、主动监测并及时报告可疑交易、以及定期进行风险评估和采取相应措施等,给反洗钱工作带来了巨大的挑战。

  • 监管范围与数据存储跨度不断扩展

监管要求金融机构在反洗钱工作中,需根据客户特性或账户属性,合理评定洗钱和恐怖融资风险等级,并据此执行相应的控制措施。同时,金融机构必须确保历史交易记录的完整性与准确性,例如部分跨境汇款业务记录,至少需保存五年。

  • 上报时效性和数据准确性要求不断提升

监管机构对交易数据的上报时限提出更高要求,如 5 至 10 个工作日内完成报送(部分场景要求 T+1 日数据报送)。金融机构需采用高效的数据处理方式以满足时效性要求,并实现复杂的识别与监测规则,进行大量量化指标的计算。

  • 监管规则变更频繁

面对不断创新的业务模式,反洗钱系统需采用规则引擎来配置灵活的监测模型,对数据进行筛选、分析,并生成反洗钱报告。系统设计需确保在监管规则变更时,能够迅速适应,避免因技术限制如“分片键”阻碍业务规则的及时更新。

某国有大行原有的反洗钱业务系统基于多个数据技术栈和异构数据库构建,存在高开发维护成本、OLTP 与 OLAP 混合处理能力的不足、大规模弹性存储和高可用性缺失,以及数据时效性差等问题。为了解决这些问题,行方重新构建了一套服务全球业务的反洗钱系统,基于国产 HTAP 分布式数据库 TiDB,创新性地融合了流式计算与批量处理,支持高并发数据访问和在线交互式多维查询,实现了多技术栈的融合,并确保了业务连续性。

新一代反洗钱业务的构建

业务架构

反洗钱系统****事中系统:主要面向客户发起交易的实时监控,即通过接口方式接收上游联机系统的交易请求,登记并实时进行规则集匹配(如累计交易中涉及客户送检交易和历史交易的金额、笔数),若匹配则生成案例信息,最终将处理结果实时返回调用方。该系统属于关键业务系统(数据 5 副本),并搭建灾备集群。反洗钱事中业务包括联机和批量业务,按业务维度包括客户尽调、交易尽调等模块。

**客户尽调:**涉及的数据表包括客户信息表 6 亿、客户评级历史表百亿(存量 6 年)、案例表(规模 10 亿)。日间交易约 70 万笔,以客户维度插入或更新客户信息表。批量转联机模式以联机接口形式处理,瞬时并发会较高,主要是基于客户号维度的操作,包括客户信息表的 insert、update 操作,以及案例表作为驱动表与其它多张表的关联。批量计算功能基于交易记录、合并后的客户信息表、以及其它表通过关联的方式计算结果集,计算维度多,结果集会放大,预期当日内完成。

**交易尽调:**涉及的数据表包括:以交易表、案例表、拦截信息表、行为类报文表为主(其中数据规模在亿级,行为类表数据量更大)。业务功能包括对柜员提供拦截信息表的写入和更新类操作;对柜员提供灵活的数据查询,涉及多表关联,包括表单形式的分页查询、以及轻度 AP 类聚合查询为主。

反洗钱业务系统架构

图 1:反洗钱业务系统架构示意图

数据架构

如上图所示,反洗钱国内事中部分按业务领域垂直拆分为联机交易、批量分析两部分,分别对应独立的 TiDB 分布式数据库集群,每套集群包含了 TiKV 行存和 TiFlash 列存两种存储引擎。

  • AMLT 集群:主集群五副本配置,对应联机交易部分,即客户尽调、交易尽调、公共服务等模块,以客户维度联机、内部前端场景为主。主要应对客户开户、维护场景的尽调,以及跨境汇款类交易的尽调。批量行为以 T-1 日客户信息、交易信息合并入主表为主。

  • AMLA 集群:主集群三副本配置。对应批量分析部分,即 SS、公共服务模块,以内外部名单加工批处理为主的数据消费类系统,加工结果表用于内部业务人员的在线灵活查询。因涉及内外部黑名单,故系统重要程度也较高,必须确保业务连续性。

  • 外围系统:包括了近百个上游联机交易类系统,通过 API 接口方式将符合反洗钱门槛的交易进行送检和筛查。

数据库集群部署

行方在 A 城市跨机房部署 TiDB 主集群,在 B 城市部署 TiDB 灾备集群,主集群采用同城双机房 3+2 模式部署。

  • 联机采用双活模式,应用侧双机房都会有实际的业务读写流量,相关表可采用双机房均匀分布 leader 的方式。

  • 重点关注的是批量作业,应用侧数据迁移、日常数据加载、批量处理、数据导出,优先将纯跑批涉及的表绑定单边 leader,保证应用、TiDB leader 副本亲和性访问,TiFlash 副本也是同理,可有效降低跨机房网络流量。

  • 对于联机、批量都会使用的表,若使用 TiKV 且不涉及复杂 join、子查询等场景可维持现状,也可根据实际业务情况按需开启就近读功能。

分布式架构图

图 2:TiDB 分布式数据库集群部署架构图

应用成效

新一代反洗钱业务系统对接了全行近百个上下游系统,存储了百 TB 级数据,在支撑日均上亿笔增量数据、千万笔 T+0 实时查询的基础上,实现了超长跨度查询、以及更完整准确的交易全景视图,大幅提升了移动互联时代全天候、多样化、高时效的综合数据服务能力和客户体验。

  • 高并发能力大幅提升了业务查询分析效率

得益于 TiDB 的高并发、高吞吐特性,确保了预期目标的顺利实现,同时系统展现出良好的读写性能和稳定性,没有出现延迟或故障问题。

  • 可弹性水平扩展提升了数据库计算、存储能力

TiDB 的原生分布式架构支持按需灵活扩展计算能力,并且集群的扩展过程对应用程序完全透明,简化了运维管理,有效解决了单机 Oracle 容量告警的难题。

  • Spark 高速数据库读写引擎,大幅提升了批处理计算效率

Spark 组件提供索引支持,多种计算下推使 Spark 能够高效的读取 TiKV 中的数据,可大幅提升批处理业务的性能,Spark 还提供了海量数据的更新功能并保证更新事务的原子性。

  • 高效的数据写入实现数据快速导入

支持上游 Hive 数仓推送文件载入,在 Spark 批处理并行直写 TiKV 的技术加持下,数据导性能得到了大幅提升。

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

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

相关文章

springboot大学校园二手书交易APP-计算机毕业设计源码25753

摘 要 在数字化与移动互联网迅猛发展的今天,人们对于图书的需求与消费方式也在悄然改变。为了满足广大读者对图书的热爱与追求,我们倾力打造了一款基于Android平台的图书交易APP。这款APP不仅汇聚了海量的图书资源,提供了便捷的交易平台&…

usbserver工程师手记(三)手工开通 OTP功能

1、设定密钥,用户自行选择一个密钥,以下以密钥为 EAZAYOKNGETBOPC5 为例说明 2、usb server 配置otp 密钥,目前还没有UI 界面开通,后续版本会支持从管理界面开通 curl -X POST -H Content-Type: application/json -H Accept: app…

【深度学习入门篇 ②】Pytorch完成线性回归!

🍊嗨,大家好,我是小森( ﹡ˆoˆ﹡ )! 易编橙终身成长社群创始团队嘉宾,橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官、CSDN人工智能领域优质创作者 。 易编橙:一个帮助编程小…

数据结构复习计划之复杂度分析(时间、空间)

第二节:算法 时间复杂度和空间复杂度 算法(Algorithm):是对特定问题求解方法(步骤)的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。 算法可以有三种表示形式: 伪代码 自然语言 流程图 算法的五…

FFmpeg 实现从麦克风获取流并通过RTMP推流

使用FFmpeg库(版本号为:4.4.2-0ubuntu0.22.04.1)实现从麦克风获取流并通过RTMP推流。 RTMP服务器使用的是SRS,我这边是跑在Ubuntu上的,最好是关闭掉系统防火墙,不然连接服务器好像会出问题,拉流…

SpringBoot开发实用篇(三)

一:任务 1:SpringBoot整合Quartz 导入SpringBoot整合quartz的坐标定义具体要执行的任务,继承QuartzJobBean定义工作明细和触发器,并绑定对应关系 2:SpringBoot整合task 开启定时任务功能设置定时执行的任务&#x…

怎么样的主食冻干算好冻干?品质卓越、安全可靠的主食冻干分享

当前主食冻干市场产品质量参差不齐。一些品牌过于追求营养数据的堆砌和利润的增长,却忽视了猫咪健康饮食的基本原则,导致市场上出现了以肉粉冒充鲜肉、修改产品日期等不诚信行为。更令人担忧的是,部分产品未经过严格的第三方质量检测便上市销…

记录文字视差背景学习

效果图 文字背景会随鼠标上下移动变成红色或透明 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…

【linux】服务器卸载cuda

【linux】服务器卸载cuda 文章目录 【linux】服务器卸载cuda1、查找已安装的 CUDA 包&#xff1a;2、卸载 CUDA&#xff1a;3、删除残留文件4、更新系统的包索引&#xff1a;5、检查是否卸载干净&#xff1a; 1、查找已安装的 CUDA 包&#xff1a; dpkg -l | grep cuda2、卸载…

CSS3实现彩色变形爱心动画【附源码】

随着前端技术的发展&#xff0c;CSS3 为我们提供了丰富的动画效果&#xff0c;使得网页设计更加生动和有趣。今天&#xff0c;我们将探讨如何使用 CSS3 实现一个彩色变形爱心加载动画特效。这种动画不仅美观&#xff0c;而且可以应用于各种网页元素&#xff0c;比如加载指示器或…

基于深度学习LightWeight的人体姿态之行为识别系统源码

一. LightWeight概述 light weight openpose是openpose的简化版本&#xff0c;使用了openpose的大体流程。 Light weight openpose和openpose的区别是&#xff1a; a 前者使用的是Mobilenet V1&#xff08;到conv5_5&#xff09;&#xff0c;后者使用的是Vgg19&#xff08;前10…

Django QuerySet对象,exclude()方法

模型参考上一章内容&#xff1a; Django QuerySet对象&#xff0c;filter()方法-CSDN博客 exclude()方法&#xff0c;用于排除符合条件的数据。 1&#xff0c;添加视图函数 Test/app11/views.py from django.shortcuts import render from .models import Postdef index(re…

从0开始的STM32HAL库学习4

对射式红外传感器计数复现 配置工程 我们直接复制oled的工程&#xff0c;但是要重命名。 将PB14设置为中断引脚 自定义命名为sensorcount 设置为上升沿触发 打开中断 配置NVCI 都为默认就可以了 修改代码 修改stm32f1xx_it.c 文件 找到中断函数并修改 void EXTI15_10_I…

pytorch实现水果2分类(蓝莓,苹果)

1.数据集的路径&#xff0c;结构 dataset.py 目的&#xff1a; 输入&#xff1a;没有输入&#xff0c;路径是写死了的。 输出&#xff1a;返回的是一个对象&#xff0c;里面有self.data。self.data是一个列表&#xff0c;里面是&#xff08;图片路径.jpg&#xff0c;标签&…

Docker安装遇到问题:curl: (7) Failed to connect to download.docker.com port 443: 拒绝连接

问题描述 首先&#xff0c;完全按照Docker官方文档进行安装&#xff1a; Install Docker Engine on Ubuntu | Docker Docs 在第1步&#xff1a;Set up Dockers apt repository&#xff0c;执行如下指令&#xff1a; sudo curl -fsSL https://download.docker.com/linux/ubu…

MybatisPlus 使用教程

MyBatisPlus使用教程 文章目录 MyBatisPlus使用教程1、使用方式1.1 引入依赖1.2 构建mapper接口 2、常用注解2.1 TableName2.2 TableId2.3 TableField MyBatisPlus顾名思义便是对MyBatis的加强版&#xff0c;但两者本身并不冲突(只做增强不做改变)&#xff1a; 引入它并不会对原…

[数据集][目标检测]护目镜检测数据集VOC+YOLO格式888张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;888 标注数量(xml文件个数)&#xff1a;888 标注数量(txt文件个数)&#xff1a;888 标注类别…

C语言基本概念

C语言是什么&#xff1f; 1.人与人之间 自然语言 2.人与计算机之间 计算机语言 例如C、Java、Go、Python 在计算机语言中 1.解释型语言&#xff1a;Python 2.编译型语言&#xff1a;C/C 编译和链接 C语言源代码都是文本文件.c&#xff0c;必须通过编译器的编译和链接器的…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十八章 Linux编写第一个自己的命令

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

基于Python的哔哩哔哩数据分析系统设计实现过程,技术使用flask、MySQL、echarts,前端使用Layui

背景和意义 随着互联网和数字媒体行业的快速发展&#xff0c;视频网站作为重要的内容传播平台之一&#xff0c;用户量和内容丰富度呈现爆发式增长。本研究旨在设计并实现一种基于Python的哔哩哔哩数据分析系统&#xff0c;采用Flask框架、MySQL数据库以及echarts数据可视化技术…