【巨杉案例】:大数据司法查询平台

2023-10-08 13:20

本文主要是介绍【巨杉案例】:大数据司法查询平台,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、前言

公检法机关因审理经济纠纷案件或经济犯罪案件需要向银行查询企业事业单位、机关、团体的银行存款或者查阅与案件有关的会计凭证、账册、报表等档案资料,银行应当积极配合。在查询或者查阅时,人民法院应当向银行出具正式公函,由银行行长(主任)指定具体的业务部门负责提供有关的情况和资料并派专人接待。查阅人对需要的资料可以抄录、复制或照相,但不能借走。人民法院对银行提供的资料应当保守秘密。

人民检察院侦查机关在办理职务犯罪案件时,尤其是贪污贿赂案件,到商业银行查询犯罪嫌疑人的账户相关交易流水和凭证是一个重要的获取线索和证据的途径,这也是商业银行的一项法定义务。然而在实际操作过程中,侦查机关到商业银行开展查询工作时却因为历史数据查询上的困难,导致查询工作效率低下。

对于历史数据而言,超过三至五年的数据,银行会采用离线存储的方式将数据归档至磁带库或光盘库。当侦查机关向银行提出司法查询请求时,银行工作人员需要将带库中的离线数据导出成在线数据,以供查询使用。带库数据的导出操作是非常耗时,耗力的过程,故导致司法查询进展缓慢。

2、面临的挑战

因为司法查询需要查看单位或个人银行账户的所有交易流水,所以银行需要提供所有历史数据用以查询。针对此类需求,银行均要安排相关系统工作人员导出离线数据以供查询使用。在此需求环境下,银行急需一种有效的解决方案将银行工作人员从繁重的导数作业中解放出来。

司法查询的数据是银行存储了几十年的历史数据,且会涉及多个业务系统,如核心系统、信用卡系统及网银系统等。故其数据有以下特点:数据量庞大、业务系统众多及新旧系统更替等。针对以上特点,解决方案需要解决以下几点需求:

离线数据在线化:整个解决方案的重点即在于消除司法查询中的离线数据导出工作,而最效有效的解决之道则在于把离线的数据进行在线化。离线数据在线化后,司法查询则只用将在线数据查询出来给到相应检查部门。因为司法查询不像核心交易查询如此频繁,所以也不可以使用大中型乃至小型机作为数据在线化的硬件存储平台。

各业务系统数据统一管理:因为司法查询涉及众多业务系统,所以进行司法查询时,需要到各业务系统平台进行数据查询。这种查询方式带来了极大的人力消耗成本。离线数据在线化需要将各业务系统数据进行统一管理,后续的司法查询只用在一个平台即可查询所有相关数据。

新旧系统数据整合银行的各系统在整个历史中进行了多次的升级改造,这就导致了新旧系统之间数据存储设计上存在着极大的差异。为了能提供高效、便捷的司法查询,新旧系统之间数据的整合也是必不可少。

提供高效的数据查询离线数据进行在线化的同时,也要保证数据查询的高效性。只有两者均达到,司法查询才能真正摆脱低效率查询的境地。

3、解决方案

司法查询平台由下到上可分为数据采集层、数据存储加工层和数据应用层。数据存储加工层是司法查询平台的核心,主要基于SequoiaDB分布式数据库和Spark内存分析框架构成。基于此架构,司法查询的离线数据实现在线化及实时查询。

 

3.1数据采集层

数据采集层的主要作用是为数据存储加工层提供司法查询所需的各业务系统数据。ODS取数平台通过将新旧核心、新旧信用卡及网银等业务系统准备的历史数据采集回来,将采集的数据统一格式,再通过SFTP、FTP和CD等网络传输方式提供给数据存储加工平台。


3.2数据存储加工层

数据存储加工层主要工作是完成司法查询数据的统一存储和加工处理。数据采集层传输至数据存储加工层的数据主要分为存量数据和增量数据。根据此两类数据,SequoiaDB+Spark构建的存储加工层完成数据的规划、入库以及加工处理。

存量数据存储存量数据是指截止某时间点已经落盘存储的数据,主要作为各业务系统的初始化数据进行存储入库。因为司法查询的历史数据所存储的量比较庞大,所以存量数据在入库前会根据系统类别、数据类别(流水与非流水)及数据量等维度进行数据规划。SequoiaDB数据库的Domain可根据系统类别完成数据规划,如新旧核心使用Domain1,新旧信用卡使用Domain2SequoiaDB的数据水平切分机制和时间序模型可根据数据类别及数据量等维度完成数据有序高效存储,如流水数据可根据客户交易日期采用时间序模型进行数据存储。数据规划完成后,操作员使用SequoiaDB Import工具将各系统数据导入SequoiaDB数据库。

数据模型去范式化由于新旧系统的更替及旧系统设计的历史性,同一套系统的新旧系统数据表结构存在极大的差异,且旧系统数据在存储大量历史数据的情况下也不利用数据的查询。众所周知,历史数据查询的难度在于在数据量表的多表JOIN查询。为了实现新旧系统数据统一和高效快速的查询,存储加工层需要根据司法查询需求对存量数据进行加工处理。数据加工通过Spark分析框架将存储于SequoiaDB中的数据根据新旧系统结构的统一规划完成数据加工处理,如将所有数据打平成流水表及非流水表。

增量数据同步增量数据指存量数据截止日期以后每日变更的数据,如新核心每天增加的客户及每天的交易流水数据等。SequoiaDB数据库存储的数据需要与在线交易系统(如新核心、新信用卡)保持T-2数据的一致。

3.3数据应用层

离线数据完成在线化之后,数据的应用并不局限于司法查询(即公检法查询),也可以用于历史数据定制查询和管理员查询等诸多用途。司法查询因为其低频率的查询使得在线数据在绝大部分时间里均未被使用。在不影响司法查询的前提下,在线存储数据的价值应该被发挥出来,如银行网点对历史数据的查询和银行管理员查询等。数据应用层使用SequoiaDB API、SequoiaDB SQL和SparkSQL等方式从数据存储加工层获取数据,并将获取的数据在WEB前端页面进行数据展示。

4、项目成果

离线数据低成本在线存储SequoiaDB数据库采用分布式架构,只需要普通X86 PC Server即可完成海量数据的高效存储。由于司法查询使用的业务数据存在离线化、海量化、分散性及查询低频性等特点,所以廉价的在线存储架构使离线数据实现在线化成为可能。


业务系统数据统一平台管理司法查询涉及多个业务系统,所以对多个业务系统数据的规划存储和统一管理则显得非常重要。SequoiaDB的Domain功能及元数据信息的有效管理很好的实现了多系统数据的统一存储及管理。


历史数据的实时查询:司法查询的数据存储在SequoiaDB分布式数据库之后,历史数据可以进行实时查询。SequoiaDB分布式存储+多索引机制达成一个司法查询请求任务秒级返回的结果。








产品特性
解决方案与案例 
数据库下载 
技术文档 

微信客服:
sequoiadb111



%$(LAXO}X%1H2{JOLG640GP.jpg



这篇关于【巨杉案例】:大数据司法查询平台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/165567

相关文章

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优