CN116303494A - 基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法 - Google Patents
基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法 Download PDFInfo
- Publication number
- CN116303494A CN116303494A CN202310148040.XA CN202310148040A CN116303494A CN 116303494 A CN116303494 A CN 116303494A CN 202310148040 A CN202310148040 A CN 202310148040A CN 116303494 A CN116303494 A CN 116303494A
- Authority
- CN
- China
- Prior art keywords
- data
- task
- comparison
- distributed database
- analysis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000015654 memory Effects 0.000 claims abstract description 36
- 238000013075 data extraction Methods 0.000 claims abstract description 35
- 238000013515 script Methods 0.000 claims abstract description 31
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 4
- 238000012800 visualization Methods 0.000 claims abstract description 4
- 238000012545 processing Methods 0.000 claims description 26
- 238000003860 storage Methods 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004140 cleaning Methods 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 4
- 238000007726 management method Methods 0.000 description 13
- 230000007547 defect Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 101100129590 Schizosaccharomyces pombe (strain 972 / ATCC 24843) mcp5 gene Proteins 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***,其中,该***包括:源数据抽取模块,用于将多种格式类型的文本中的数据进行任务划分,异步解析,并多线程并发批量读取到服务器内存或写入到分布式数据库中;数据内容比对模块,用于针对数据内容或配置智能选择比对算法,并调度分布式数据库脚本比对或直接使用内存极速比对;运行管理模块,用于管理人员批量操作比对文件,控制比对项目,个性化展示分析结果。本发明还涉及一种相应的方法。采用了本发明的该***及其方法,满足了对大批量多形式海量数据源一致性分析的需求,还具有对比维度多元化、容量拓展自由化、比对过程可视化的特性。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及证券核心交易***数据分析技术领域,具体是指一种基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法。
背景技术
信息时代的全面到来给证券行业带来了海量数据,数据在各***之间的存储、传输、转换导致数据面临失真、错误乃至丢失的风险,因此及时对数据进行一致性分析至关重要,尤其是在证券核心交易对数据的一致性极致敏感的***。随着计算机应用技术的发展,传统的人工分析已逐渐被如数据库本身的差异化比对工具或者小规模单机计算机数据分析***所取代,但是这些工具或者单机型***适用场景十分有限,一方面面对日益繁杂和多样的数据来源***,无法处理格式多样的数据源文件,或者不能同时支持读取文件和数据库中的数据;另一方面随着数据量的增长,单机***的处理能力难以有效提升,数据库的性能也随着数据量的增加下降严重,完成数据一致性分析工作的时间无限延长,逐渐失去应用价值。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种具有分析维度多元化、容量拓展自由化、新增分析项目配置化的特性的基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法。
为了实现上述目的,本发明的基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法如下:
该基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***,其主要特点是,所述的***包括:
源数据抽取模块,用于将多种格式类型的文本中的数据进行任务划分,异步解析,并多线程并发批量读取到服务器内存或写入到分布式数据库中;
数据内容比对模块,与所述的源数据抽取模块相连接,用于针对数据内容或配置智能选择比对算法,并调度分布式数据库脚本比对或直接使用内存极速比对,实现对数据从端到端的一致性分析;
运行管理模块,与所述的源数据抽取模块以及数据内容比对模块相连接,用于管理人员批量操作比对文件,控制比对项目,同时支持自动追溯异常数据来源,个性化展示分析结果;
所述的分布式数据库与所述的源数据抽取模块、数据内容比对模块以及运行管理模块均相连接,且所述的分布式数据库采用国产分布式数据库,支持分布式应用下的批量入库和复杂查询业务,具有快速横向扩展的能力,当数据库存在瓶颈时,可增加数据库的部署节点。
较佳地,所述的源数据抽取模块具体为:
支持包括但不限于从TXT、XML、BIN、CSV的不同格式的文本中解析数据,以及支持包括但不限于从MYSQL、SQLSERVER数据库和国产分布式数据库读取数据。
较佳地,所述的数据内容比对模块使用内存极速比对,具体为:
所述的***为分布式负载均衡部署,存储介质为采用所述的分布式数据库情形下实现对亿级数据量从读取到分析完成,耗时在十秒以内。
较佳地,所述的数据内容比对模块具体为:
支持进行复制性的数据一致性分析、部分字段字典转换后的一致性分析以及横向数据与纵向数据的一致性分析;
其中在比对模式上,包括内存数据直接比对模式以及SQL脚本比对模式。
较佳地,当采用所述的内存数据直接比对模式时,首先分别对读取到内存中进行比对的两组文本按一定规则分割成字符串,计算字符串的MD5码,通过比对MD5码判断数据是否一致;
当采用所述的SQL脚本比对模式时,支持以符合标准SQL语法的脚本对字段进行等值判断或加减、乘除、聚合后符合业务逻辑的核对判断。
较佳地,所述的***以新增SQL脚本配置的方式增加比对项目,且所述的***为分布式***,支持多节点部署,当处理能力存在瓶颈时,根据需要和资源情况增加该***的部署节点数,对于每个节点的部署根据各节点自身的运行压力动态分配执行任务,以实现运行压力在不同硬件标准的机器资源上合理调度。
该利用上述***实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法,其主要特点是,所述的方法包括以下步骤:
(1)将文本中的数据或其他***数据库中的数据进行数据抽取处理,并将抽取后的数据读取到内存中;
(2)将读取到内存中的数据进行比对或者存储到分布式数据库中调用SQL脚本比对,实现对数据从端到端的一致性分析;
(3)将分析的结果存储到所述的分布式数据库中;
(4)将存储在分布式数据库中的分析结果通过运行管理模块向管理人员展示。
较佳地,所述的方法还包括:
将所述的步骤(1)、(2)和(3)拆分为若干个任务,并且拆分后的多个任务由部署在不同节点上的应用实例并发执行,同时每一个实例内部也并发执行多个任务,具体为:
将所述的步骤(1)根据文件类别或编号拆分,将所述的步骤(2)根据数据库分片键进行拆分。
较佳地,所述的步骤(1)进行数据抽取时具体进行以下处理:
所述的运行管理模块先调用所述的源数据抽取模块的任务拆分接口进行任务拆分及任务初始化,初始化的任务包含当前该任务的对应文件、数据库表信息以及字段信息,并且记录在数据库的任务执行状态表中;
初始化完成后,当前该任务节点向所有活跃的任务节点发送消息通知可以开始执行任务,各个节点接收到指令后,所有任务节点开始从任务表中抢占任务,当某一个任务与某一任务节点达成匹配关系后,则由该任务节点执行该任务;
各任务节点各自更新自身执行的任务状态,直到所有任务状态更新完成,则由最后完成的任务节点将任务表归档,待任务开始后,所述的运行管理模块将轮询每一个部署实例状态获取整体任务执行状态。
较佳地,所述的步骤(1)进行数据读取处理时,包括:读取文件、解析数据行和批量写入,具体为:
将从文件中读取的数据和解析后待写入的数据均存入各自的缓存队列,并由解析线程池中的线程和批量写入线程池中的线程分别进行批量解析和入库处理,其中,
对所述的文本逐行进行解析读取,对所述的数据采用SQL语句查询读取。
较佳地,当***进行任务拆分后,具体包括以下处理步骤:
(a)开始执行任务,首先判断当前实施例执行的任务数是否达到了的最大并发数,如果否,则进入步骤(b),否则,等待空闲实施例;
(b)从任务执行状态表中读取任务状态为未执行的任务,并判断是否获取到任务,如果获取到任务,则更新该任务的开始执行时间,如果任务之前为终止状态,则更新重试次数,并提交异步执行任务,如果任务执行成功,则进入步骤(d),否则直接返回步骤(a)进行重复处理;如果没有获取到任务,则进入步骤(c);
(c)判断是否还有任务在执行,如果是,则进入等待状态并返回步骤(a);否则,表明当前任务已全部执行完成,清理缓存,本实例的执行任务全部结束;
(d)通过获取任务配置、任务执行前回调、执行具体任务、执行任务完成后回调以及清理任务缓存,完成异步任务的成功执行,判断执行结果是否成功,如果成功,则直接更新任务执行状态表中对应任务状态和完成时间,并返回步骤(a)进行重复处理;若任务执行失败,则产生告警并记录到数据库中,同时更新任务执行状态表中对应任务状态和完成时间,并返回步骤(a)进行重复处理。
较佳地,所述的步骤(4)具体为:
以界面可视化的方式进行数据核对结果展示与操作,同时支持数据筛选、删除和标记,以及支持以文本的方式导出比对结果。
采用了本发明的该基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法,旨在解决传统数据一致性分析工具人工依赖性强、支持分析的文件格式类型少、处理的数据量小、分析时间长、新增分析项目开发难度大、分析过程及结果缺乏图形展示界面、面对数据量的增长难以拓展性能的缺点,提供了一种较佳的解决方案,能实现亿级数据量一致性极速分析,满足证券行业尤其是证券核心交易***面对海量数据严苛一致的要求,满足复杂文本场景、多数据源下高吞吐量、极速分析的需要,支持脚本配置式开发、开放式弹性部署、可视化操作,具有对比维度多元化、容量拓展自由化的特点。克服了传统分析工具或***面临海量数据性能显著下降、适用场景单一、容量受限、新增核对项目开发难度大、对比过程不清晰等缺点,具有较为突出的实用性。
附图说明
图1为本发明的基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***的整体框架结构示意图。
图2为本发明的实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法的时序图。
图3为本发明的实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法进行任务拆分后的流程图。
图4为本发明实现数据源快速抽取和写入到数据库的方法的原理图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
在详细说明根据本发明的实施例前,应该注意到的是,在下文中,术语“包括”、“包含”或任何其他变体旨在涵盖非排他性的包含,由此使得包括一系列要素的过程、方法、物品或者设备不仅包含这些要素,而且还包含没有明确列出的其他要素,或者为这种过程、方法、物品或者设备所固有的要素。
请参阅图1所示,该基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***,其中,所述的***包括:
源数据抽取模块,用于将多种格式类型的文本中的数据进行任务划分,异步解析,并多线程并发批量读取到服务器内存或写入到分布式数据库中;
数据内容比对模块,与所述的源数据抽取模块相连接,用于针对数据内容或配置智能选择比对算法,并调度分布式数据库脚本比对或直接使用内存极速比对,实现对数据从端到端的一致性分析;
运行管理模块,与所述的源数据抽取模块以及数据内容比对模块相连接,用于管理人员批量操作比对文件,控制比对项目,同时支持自动追溯异常数据来源,个性化展示分析结果;
在实际应用当中,所述的运行管理模块为一个可视化的人机交互终端,用于管理人员批量操作比对文件,控制比对项目,查看比对进度和浏览输出结果,同时针对核对过程中发现的数据不一致,通过任务记录、数据流结构和数据底层业务逻辑自动追溯异常数据来源,从而实现个性化地展示核对结果和智能化提示数据异常。
在本发明的一具体实施方式中,所述源数据抽取模块,不仅支持从文本中解析数据,还支持从其他***的MYSQL和SQLSERVER等数据库以及国产分布式数据库读取数据。针对来自于其他***数据库的数据,不直连该***数据库,二是采用数据库中间件应用读取数据,数据库中间件向上屏蔽数据库细节,向下兼容不同数据库类型,从而保证源数据抽取模块对所有其他***不同类型数据库的支持,同时保证了数据传输的安全性、读取过程的高并发性和数据跨***的一致性。
所述的分布式数据库与所述的源数据抽取模块、数据内容比对模块以及运行管理模块均相连接,且所述的分布式数据库采用国产分布式数据库,支持分布式应用下的批量入库和复杂查询业务,具有快速横向扩展的能力,当数据库存在瓶颈时,可增加数据库的部署节点。
作为本发明的优选实施方式,所述的源数据抽取模块具体为:
支持包括但不限于从TXT、XML、BIN、CSV的不同格式的文本中解析数据,以及支持包括但不限于从MYSQL、SQLSERVER数据库和国产分布式数据库读取数据。
作为本发明的优选实施方式,所述源数据抽取模块支持包括但不限于从TXT、XML、BIN、CSV等不同格式的文本中解析数据。针对不同类型文本,自动识别并采取不同读取策略,但是以同样的流程从文本中读取并写入到数据库或读取到内存中,均支持分片分区读写,区别于现有文件读取技术,每个文件的抽取配置项需要包含分组字段索引值,该索引值标记了该数据文件的分片键位置,通过该索引可以得到该条数据的分片值,在读取时同一分片值的数据会放入同一分组中,在***数据库时位于同一批次,最终存储在分布式数据库的同一分片节点上,从应用层面保证了高效的分布式写库能力。
作为本发明的优选实施方式,针对TXT格式文件,统一继承实现源数据抽取模块中的文件读取接口,在数据库中配置该文件字段含义并依次对应,采取文本字段与数据库配置表字段同一顺序,通过固定分隔符读取逐一映射到数据库表中字段,完成读取后,关闭文件句柄以及释放内存资源。在本发明的一个实施实例中,TXT文件的每一行对应数据库表中的一条数据,以\u0001为分隔符,若每一行拆分出m个数据,则该文件在配置表中的配置字段为m个,顺序与文件中字段顺序一致,同时分布式数据库中也存在包含上述m个字段的目标表,数据解析后,***到该目标表中。
作为本发明的优选实施方式,针对XML格式文件,统一继承实现源数据抽取模块中的文件读取接口,文件读取时,采用自定义解析方法整体转换成程序实体类对象,进行流式读取。然后通过配置表里的定义字段按顺序解析,反射获取具体对象中的值,组装成数据,往下传递入库。完成读取后,关闭文件句柄以及释放内存资源。在本发明的一个实施实例中,约定的xml格式文件如下,在读取过程中,根据表中配置的字段依次为field1,field2,field3,在一个row标签内则依次读取各字段的值作为文本的一条数据,读取完成后***到包含上述字段的目标表中。实例如下:
作为本发明的优选实施方式,针对BIN文件格式,统一继承实现源数据抽取模块中的文件读取接口。在开启文件读取的方法中,初始化文件句柄,开启异步读取文件。从缓存读取数据的同时同样读取配置表中一一对应的配置字段,通过字节方式进行解析二进制数据,对于该格式文件,需要提前约定文件中字段配置协议为FieldName(type:length),示例如下:
fieldName1(Int:4),fieldName2(Long:8),fieldName3(Short:2)
同时该类型文件开头有53个字节固定长度,用于存放文件信息。完成读取后,关闭文件句柄以及释放内存资源。
作为本发明的优选实施方式,所述源数据抽取模块还包含了对所读取文件在读取过程中异常破坏的检测,包括文件损坏、修改、删除等异常,从而避免了源头上的脏数据。
作为本发明的优选实施方式,所述的数据内容比对模块使用内存极速比对,具体为:
所述的***为分布式负载均衡部署,存储介质为采用所述的分布式数据库情形下实现对亿级数据量从读取到分析完成,耗时在十秒以内。
作为本发明的优选实施方式,所述的数据内容比对模块具体为:
支持进行复制性的数据一致性分析、部分字段字典转换后的一致性分析以及横向数据与纵向数据的一致性分析;
其中在比对模式上,包括内存数据直接比对模式以及SQL脚本比对模式。
作为本发明的优选实施方式,当采用所述的内存数据直接比对模式时,首先分别对读取到内存中进行比对的两组文本按一定规则分割成字符串,计算字符串的MD5码,通过比对MD5码判断数据是否一致;
当采用所述的SQL脚本比对模式时,支持以符合标准SQL语法的脚本对字段进行等值判断或加减、乘除、聚合后符合业务逻辑的核对判断。
在实际应用当中,所述数据内容比对模块,支持多维度的一致性分析,既包含复制性的数据一致性分析,也包含部分字段字典转换后的一致性分析,还包括横向数据与纵向数据的一致性分析。在比对模式上,包括对读取到内存中的数据直接比对和调用SQL脚本比对分布式数据库中的数据,或以上两种方式同时进行。对于部分来自于不同***的数据,需进行复杂的关系转换和字典转换,难以使用简单SQL语句完成比对的数据选择内存比对的模式。
作为本发明的优选实施方式,所述多种比对模式,采用内存数据直接比对模式时,首先分别对读取到内存中的进行比对的两组文本按一定规则分割成字符串,计算字符串的MD5码,通过比对MD5码判断数据是否一致。
作为本发明的优选实施方式,所述多种比对模式,采用SQL脚本比对模式时,支持以符合标准SQL语法的脚本对字段进行等值判断或加减、乘除、聚合后符合业务逻辑的核对判断。在本发明的一个实施实例中,文件A记录了某一客户当日交易金额的流水,文件B记录了该客户的当日交易总金额,为核对数据是否有误,采用SQL脚本比对模式,将文本数据分别读取到数据库table_A和table_B中,配置了如下比对SQL脚本,区别于传统数据库核对脚本,用于本发明的核对SQL脚本中指定了数据在分布式数据库中的执行分片,其中#branchId#在脚本执行时会被替换为该客户实际所在营业部,营业部为分布式数据库的分片键,这样用于核对的每条SQL脚本在执行时会被下推到各自对应的分布式数据库计算节点,使大部分数据分析可以就近访问,能充分利用分布式数据库强大的并发查询能力,极大提升SQL脚本核对速度。示例如下:
Select if(num1<=>num2,null,CONCAT(IFNULL(num1,"null"),":",IFNULL(num2,"null")))from
(select count(trade_amt)from table_A as num1 where cust_id=×××andbranch_id=#branchId#
,select total_tade_amt from bable_B as num2 where cust_id=×××andbranch_id=#branchId#))
作为本发明的优选实施方式,所述的***以新增SQL脚本配置的方式增加比对项目,且所述的***为分布式***,支持多节点部署,当处理能力存在瓶颈时,根据需要和资源情况增加该***的部署节点数,对于每个节点的部署根据各节点自身的运行压力动态分配执行任务,以实现运行压力在不同硬件标准的机器资源上合理调度。
在实际应用当中,所述***为分布式***,支持多节点部署,当处理能力存在瓶颈时,根据需要和资源情况增加该***的部署节点数。若需要读取m个文件,一共部署了n个节点,每个节点独立部署一套该核对***,称为一个部署实例,在读取文件时,将m个文件封装成m个独立的文件读取任务,开启文件读取任务后,实行任务抢占分配,若这n个部署实例性能相当,则同一时间每个部署实例最多约执行m/n个文件读取任务,这m/n个文件读取任务在每个部署实例内又并发执行,每个实例最多能同时抢占多少个任务或每个实例内部能同时并发执行多少个文件读取任务均可在数据库直接配置,根据实际性能瓶颈调优。
作为本发明的优选实施方式,所述***中用于数据存储的数据库为国产分布式数据库,支持分布式应用下的批量入库和复杂查询业务,依据客户数据与营业部的映射关系,建立数据库实例和数据的分片关系,使得本发明的数据存储***拥有快速横向扩展的能力,当核对***的性能瓶颈在数据库侧时,可增加数据库的部署节点。
作为本发明的优选实施方式,所述国产分布式数据库部署以节点、证券营业部为维度进行分库,通过配置维护节点、证券营业部、数据库实例之间的关系。每个节点包含多个数据库部署实例,每个实例包含其对应证券营业部全部客户数据,以及全部的交易配置数据等,而与客户数据无关的全局***参数则单独配置一个节点。执行时,源数据抽取模块或数据比对模块根据配置动态创建数据源,读写对应分布式数据库下的数据库实例。为保证各数据库节点数据的均衡性,每个节点应存储哪些证券营业部数据应经过统计后配置,例如某些证券营业部客户数据量大,则应与客户数据量小的证券营业部位于同一节点,最终保证每个节点存储的数据量总条数大致相等。
作为本发明的优选实施方式,所述***以新增SQL脚本配置的方式增加源数据抽取项目和比对项目。针对每个文件读取项目,该配置内容至少包含以下信息:文件名称、任务场景、文件资源路径、行分隔符、列分隔符、目标表名、字段映射、重复数据处理方式、重新加载数据清空方式、删除特定数据脚本、文件读取自定义组件、表写入自定义组件、资源匹配条件、字符集、分组字段索引值。针对每个比对项目,该配置内容至少包含以下信息:比对项目名称、任务场景、数据比对SQL语句、数据比对自定义组件。通过脚本配置增加比对项目,满足多样性的核对需要,管理人员或***运维人员只需定义上述配置项并通过SQL脚本写入到数据库中即可扩展形式多样、需求广泛的数据核对需求。
具体地,所述极速一致性分析,是指***为分布式负载均衡部署、存储介质为分布式数据库情形下实现。
请参阅图2所示,该利用上述***实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法,其中,所述的方法包括以下步骤:
(1)将文本中的数据或其他***数据库中的数据进行数据抽取处理,并将抽取后的数据读取到内存中;
(2)将读取到内存中的数据进行比对或者存储到分布式数据库中调用SQL脚本比对,实现对数据从端到端的一致性分析;
(3)将分析的结果存储到所述的分布式数据库中;
(4)将存储在分布式数据库中的分析结果通过运行管理模块向管理人员展示。
作为本发明的优选实施方式,所述的方法还包括:
将所述的步骤(1)、(2)和(3)拆分为若干个任务,并且拆分后的多个任务由部署在不同节点上的应用实例并发执行,同时每一个实例内部也并发执行多个任务,具体为:
将所述的步骤(1)根据文件类别或编号拆分,将所述的步骤(2)根据数据库分片键进行拆分。
作为本发明的优选实施方式,所述的步骤(1)进行数据抽取时具体进行以下处理:
所述的运行管理模块先调用所述的源数据抽取模块的任务拆分接口进行任务拆分及任务初始化,初始化的任务包含当前该任务的对应文件、数据库表信息以及字段信息,并且记录在数据库的任务执行状态表中;
初始化完成后,当前该任务节点向所有活跃的任务节点发送消息通知可以开始执行任务,各个节点接收到指令后,所有任务节点开始从任务表中抢占任务,当某一个任务与某一任务节点达成匹配关系后,则由该任务节点执行该任务;
各任务节点各自更新自身执行的任务状态,直到所有任务状态更新完成,则由最后完成的任务节点将任务表归档,待任务开始后,所述的运行管理模块将轮询每一个部署实例状态获取整体任务执行状态。
请参阅图4所示,作为本发明的优选实施方式,所述的步骤(1)进行数据读取处理时,包括:读取文件、解析数据行和批量写入,具体为:
将从文件中读取的数据和解析后待写入的数据均存入各自的缓存队列,并由解析线程池中的线程和批量写入线程池中的线程分别进行批量解析和入库处理,其中,
对所述的文本逐行进行解析读取,对所述的数据采用SQL语句查询读取。
请参阅图3所示,作为本发明的优选实施方式,当***进行任务拆分后,具体包括以下处理步骤:
(a)开始执行任务,首先判断当前实施例执行的任务数是否达到了的最大并发数,如果否,则进入步骤(b),否则,等待空闲实施例;
(b)从任务执行状态表中读取任务状态为未执行的任务,并判断是否获取到任务,如果获取到任务,则更新该任务的开始执行时间,如果任务之前为终止状态,则更新重试次数,并提交异步执行任务,如果任务执行成功,则进入步骤(d),否则直接返回步骤(a)进行重复处理;如果没有获取到任务,则进入步骤(c);
(c)判断是否还有任务在执行,如果是,则进入等待状态并返回步骤(a);否则,表明当前任务已全部执行完成,清理缓存,本实例的执行任务全部结束;
(d)通过获取任务配置、任务执行前回调、执行具体任务、执行任务完成后回调以及清理任务缓存,完成异步任务的成功执行,判断执行结果是否成功,如果成功,则直接更新任务执行状态表中对应任务状态和完成时间,并返回步骤(a)进行重复处理;若任务执行失败,则产生告警并记录到数据库中,同时更新任务执行状态表中对应任务状态和完成时间,并返回步骤(a)进行重复处理。
作为本发明的优选实施方式,所述的步骤(4)具体为:
以界面可视化的方式进行数据核对结果展示与操作,同时支持数据筛选、删除和标记,以及支持以文本的方式导出比对结果。
在实际应用当中,执行步骤(1)文件数据抽取时,运行管理模块先调用源数据抽取模块的任务拆分接口进行任务拆分及任务初始化,初始化的任务包含了该任务的详细信息,包括对应文件、数据库表信息、字段信息等,并且记录在数据库的任务执行状态表中,初始化完成后,该任务节点向所有活跃的任务节点发送消息通知可以开始执行任务,各节点接收到指令后,所有任务节点开始从任务表中抢占任务,当某一个任务与某一任务节点达成匹配关系后,则由该任务节点执行该任务。各任务节点各自更新自身执行的任务状态,直到所有任务状态更新完成,则由最后完成的任务节点将任务表归档,任务开始后,运行管理模块会轮询每一个部署实例状态获取整体任务执行状态。
图3示出了上述拆分后的任务的更加详细的执行流程,对于部署在某一个节点上的核对***实例,首先判断该实例中执行任务数是否达到了的最大并发数,若没有达到最大并发数,则从任务执行状态表中读取任务状态为未执行的任务,若不能获取到新的任务则说明表中任务已全部执行完成,清理缓存,本实例的执行任务全部结束,若能获取到新任务,则更新该任务的开始执行时间,如果任务之前为终止状态,则更新重试次数,并提交异步执行任务,对于拆分后的单个执行任务,若该任务执行成功,则更新任务执行状态表中对应任务状态和完成时间,若任务执行失败,则产生告警并记录到数据库中,然后重复上述过程。其中提到的最大并发数可在数据库表中配置,根据实例部署机器的处理能力灵活调节以达到性能最佳和机器资源使用率最大。
图4示出了步骤(1)实现数据源快速抽取和写入到数据库的方法原理图,也揭示了从文本数据到数据库的流程。读取过程分为3个主要步骤,分别是读取文件、解析数据行和批量写入。为实现高并发快速读取入库,从文件中读取的数据和解析后待写入的数据均存入各自的缓存队列,然后由解析线程池中的线程和批量写入线程池中线程分别进行批量解析和入库。
步骤(2)数据内容比对模块在执行数据比对任务时,采取调用SQL脚本比对模式时,有多种执行方式,多用该数据是否为某一证券营业部的某一客户数据为标准进行划分,这与分布式数据库进行节点划分的标准相同,也是为了发挥分布式数据库优势的合理选择。对于与证券营业部无关的参数类数据的比对,直接执行任务项里配置的SQL语句;对于客户类、资金类、订单类等与证券营业部及其客户相关的数据,基于分布式数据库,将配置的SQL语句按照证券营业部分片执行,即一个任务按照证券营业部分拆为数百个SQL语句并发执行,完成数据比对。除上述两种常用执行方式外,对于复杂计算类的比对,例如将一部分数据加减乘除后和某一条数据进行比对,则采用分布式数据库计算引擎专用节点执行比对脚本,将计算结果存入数据库结果记录表中。
所述步骤(4)核对结果展示与操作是界面可视化的,同时支持筛选、删除、标记等处理办法,还支持以文本的方式导出分析结果。在一个实施实例中,界面从上至下依次展示了所有需要比对的文件执行项,同时展示该文件的位置,是否就绪等状态,可勾选部分执行项或全选所有,点击执行后,每个文件独立展示自身比对进度,界面展示本次核对的所有文件不一致的字段或数据条数差异性,对于可以忽视的不一致可以在界面直接删除或屏蔽展示,对于核对后的重要差异性可单独标记,还可将不一致的结果全部或部分导出或归档,推送给数据源***相关人员处理。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成的,程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一实施例”、“一些实施例”、“示例”、“具体示例”、或“实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
采用了本发明的该基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法,旨在解决传统数据一致性分析工具人工依赖性强、支持分析的文件格式类型少、处理的数据量小、分析时间长、新增分析项目开发难度大、分析过程及结果缺乏图形展示界面、面对数据量的增长难以拓展性能的缺点,提供了一种较佳的解决方案,能实现亿级数据量一致性极速分析,满足证券行业尤其是证券核心交易***面对海量数据严苛一致的要求,满足复杂文本场景、多数据源下高吞吐量、极速分析的需要,支持脚本配置式开发、开放式弹性部署、可视化操作,具有对比维度多元化、容量拓展自由化的特点。克服了传统分析工具或***面临海量数据性能显著下降、适用场景单一、容量受限、新增核对项目开发难度大、对比过程不清晰等缺点,具有较为突出的实用性。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (12)
1.一种基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***,其特征在于,所述的***包括:
源数据抽取模块,用于将多种格式类型的文本中的数据进行任务划分,异步解析,并多线程并发批量读取到服务器内存或写入到分布式数据库中;
数据内容比对模块,与所述的源数据抽取模块相连接,用于针对数据内容或配置智能选择比对算法,并调度分布式数据库脚本比对或直接使用内存极速比对,实现对数据从端到端的一致性分析;
运行管理模块,与所述的源数据抽取模块以及数据内容比对模块相连接,用于管理人员批量操作比对文件,控制比对项目,同时支持自动追溯异常数据来源,个性化展示分析结果;
所述的分布式数据库与所述的源数据抽取模块、数据内容比对模块以及运行管理模块均相连接,且所述的分布式数据库采用国产分布式数据库,支持分布式应用下的批量入库和复杂查询业务,具有快速横向扩展的能力,当数据库存在瓶颈时,可增加数据库的部署节点。
2.根据权利要求1所述的基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***,其特征在于,所述的源数据抽取模块具体为:
支持包括但不限于从TXT、XML、BIN、CSV的不同格式的文本中解析数据,以及支持包括但不限于从MYSQL、SQLSERVER数据库和国产分布式数据库读取数据。
3.根据权利要求1所述的基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***,其特征在于,所述的数据内容比对模块使用内存极速比对,具体为:
所述的***为分布式负载均衡部署,存储介质为采用所述的分布式数据库情形下实现对亿级数据量从读取到分析完成,耗时在十秒以内。
4.根据权利要求1所述的基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***,其特征在于,所述的数据内容比对模块具体为:
支持进行复制性的数据一致性分析、部分字段字典转换后的一致性分析以及横向数据与纵向数据的一致性分析;
其中在比对模式上,包括内存数据直接比对模式以及SQL脚本比对模式。
5.根据权利要求4所述的基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***,其特征在于,
当采用所述的内存数据直接比对模式时,首先分别对读取到内存中进行比对的两组文本按一定规则分割成字符串,计算字符串的MD5码,通过比对MD5码判断数据是否一致;
当采用所述的SQL脚本比对模式时,支持以符合标准SQL语法的脚本对字段进行等值判断或加减、乘除、聚合后符合业务逻辑的核对判断。
6.根据权利要求1至5中任一项所述的基于分布式数据库实现对证券核心交易***的海量多源异构数据进行一致性分析的***,其特征在于,所述的***以新增SQL脚本配置的方式增加比对项目,且所述的***为分布式***,支持多节点部署,当处理能力存在瓶颈时,根据需要和资源情况增加该***的部署节点数,对于每个节点的部署根据各节点自身的运行压力动态分配执行任务,以实现运行压力在不同硬件标准的机器资源上合理调度。
7.一种利用权利要求1所述的***实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法,其特征在于,所述的方法包括以下步骤:
(1)将文本中的数据或其他***数据库中的数据进行数据抽取处理,并将抽取后的数据读取到内存中;
(2)将读取到内存中的数据进行比对或者存储到分布式数据库中调用SQL脚本比对,实现对数据从端到端的一致性分析;
(3)将分析的结果存储到所述的分布式数据库中;
(4)将存储在分布式数据库中的分析结果通过运行管理模块向管理人员展示。
8.根据权利要求7所述的实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法,其特征在于,所述的方法还包括:
将所述的步骤(1)、(2)和(3)拆分为若干个任务,并且拆分后的多个任务由部署在不同节点上的应用实例并发执行,同时每一个实例内部也并发执行多个任务,具体为:
将所述的步骤(1)根据文件类别或编号拆分,将所述的步骤(2)根据数据库分片键进行拆分。
9.根据权利要求8所述的实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法,其特征在于,所述的步骤(1)进行数据抽取时具体进行以下处理:
所述的运行管理模块先调用所述的源数据抽取模块的任务拆分接口进行任务拆分及任务初始化,初始化的任务包含当前该任务的对应文件、数据库表信息以及字段信息,并且记录在数据库的任务执行状态表中;
初始化完成后,当前该任务节点向所有活跃的任务节点发送消息通知可以开始执行任务,各个节点接收到指令后,所有任务节点开始从任务表中抢占任务,当某一个任务与某一任务节点达成匹配关系后,则由该任务节点执行该任务;
各任务节点各自更新自身执行的任务状态,直到所有任务状态更新完成,则由最后完成的任务节点将任务表归档,待任务开始后,所述的运行管理模块将轮询每一个部署实例状态获取整体任务执行状态。
10.根据权利要求9所述的实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法,其特征在于,所述的步骤(1)进行数据读取处理时,包括:读取文件、解析数据行和批量写入,具体为:
将从文件中读取的数据和解析后待写入的数据均存入各自的缓存队列,并由解析线程池中的线程和批量写入线程池中的线程分别进行批量解析和入库处理,其中,
对所述的文本逐行进行解析读取,对所述的数据采用SQL语句查询读取。
11.根据权利要求9所述的实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法,其特征在于,当***进行任务拆分后,具体包括以下处理步骤:
(a)开始执行任务,首先判断当前实施例执行的任务数是否达到了的最大并发数,如果否,则进入步骤(b),否则,等待空闲实施例;
(b)从任务执行状态表中读取任务状态为未执行的任务,并判断是否获取到任务,如果获取到任务,则更新该任务的开始执行时间,如果任务之前为终止状态,则更新重试次数,并提交异步执行任务,如果任务执行成功,则进入步骤(d),否则直接返回步骤(a)进行重复处理;如果没有获取到任务,则进入步骤(c);
(c)判断是否还有任务在执行,如果是,则进入等待状态并返回步骤(a);否则,表明当前任务已全部执行完成,清理缓存,本实例的执行任务全部结束;
(d)通过获取任务配置、任务执行前回调、执行具体任务、执行任务完成后回调以及清理任务缓存,完成异步任务的成功执行,判断执行结果是否成功,如果成功,则直接更新任务执行状态表中对应任务状态和完成时间,并返回步骤(a)进行重复处理;若任务执行失败,则产生告警并记录到数据库中,同时更新任务执行状态表中对应任务状态和完成时间,并返回步骤(a)进行重复处理。
12.根据权利要求11所述的实现基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的方法,其特征在于,所述的步骤(4)具体为:
以界面可视化的方式进行数据核对结果展示与操作,同时支持数据筛选、删除和标记,以及支持以文本的方式导出比对结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310148040.XA CN116303494A (zh) | 2023-02-22 | 2023-02-22 | 基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310148040.XA CN116303494A (zh) | 2023-02-22 | 2023-02-22 | 基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116303494A true CN116303494A (zh) | 2023-06-23 |
Family
ID=86814227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310148040.XA Pending CN116303494A (zh) | 2023-02-22 | 2023-02-22 | 基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303494A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093640A (zh) * | 2023-10-18 | 2023-11-21 | 上海柯林布瑞信息技术有限公司 | 基于池化技术的数据抽取方法及装置 |
-
2023
- 2023-02-22 CN CN202310148040.XA patent/CN116303494A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093640A (zh) * | 2023-10-18 | 2023-11-21 | 上海柯林布瑞信息技术有限公司 | 基于池化技术的数据抽取方法及装置 |
CN117093640B (zh) * | 2023-10-18 | 2024-01-23 | 上海柯林布瑞信息技术有限公司 | 基于池化技术的数据抽取方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9576037B2 (en) | Self-analyzing data processing job to determine data quality issues | |
US11693912B2 (en) | Adapting database queries for data virtualization over combined database stores | |
CN111125444A (zh) | 大数据任务调度管理方法、装置、设备及存储介质 | |
US20240045860A1 (en) | Data query method and system, heterogeneous acceleration platform, and storage medium | |
US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
CN113326247B (zh) | 云端数据的迁移方法、装置及电子设备 | |
CN103077192B (zh) | 一种数据处理方法及其*** | |
CN111143470A (zh) | 跨平台数据库数据同步比对方法及装置 | |
CN113485781A (zh) | 报表生成方法、装置、电子设备及计算机可读介质 | |
KR20150118963A (ko) | 큐 모니터링 및 시각화 | |
US11442930B2 (en) | Method, apparatus, device and storage medium for data aggregation | |
CN116303494A (zh) | 基于分布式数据库对证券核心交易***的海量多源异构数据进行一致性分析的***及其方法 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
US11354313B2 (en) | Transforming a user-defined table function to a derived table in a database management system | |
US20240037084A1 (en) | Method and apparatus for storing data | |
CN114238463A (zh) | 一种用于分布式指标计算的计算引擎控制方法和装置 | |
CN113641739B (zh) | 一种基于Spark的智能数据转换方法 | |
CN112258244B (zh) | 确定目标物品所属任务的方法、装置、设备及存储介质 | |
US20230177046A1 (en) | Fast table search for visualization of complex hierarchy data | |
CN113419964B (zh) | 一种测试案例生成方法、装置、计算机设备及存储介质 | |
CN110580170A (zh) | 软件性能风险的识别方法及装置 | |
CN106802922B (zh) | 一种基于对象的溯源存储***及方法 | |
US20240143581A1 (en) | Graphic visualization of complex hierarchy data | |
US11947905B1 (en) | Template builder for dynamically generated executables | |
CN116109112B (zh) | 基于聚合接口的业务数据处理方法、装置、介质和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |