CN107679104B - 大表流式并行高速数据比对方法 - Google Patents
大表流式并行高速数据比对方法 Download PDFInfo
- Publication number
- CN107679104B CN107679104B CN201710819917.8A CN201710819917A CN107679104B CN 107679104 B CN107679104 B CN 107679104B CN 201710819917 A CN201710819917 A CN 201710819917A CN 107679104 B CN107679104 B CN 107679104B
- Authority
- CN
- China
- Prior art keywords
- comparison
- data
- channels
- database table
- main
- 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.)
- Active
Links
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种大表流式并行高速数据比对方法,包括如下步骤:(1‑1)比对应用程序通过数据库链接配置待比对的主数据库表信息和备数据库表的信息,如果主数据库表信息和备数据库表信息结构不一致,返回无法比对;(1‑2)比较主数据库表信息和备数据库表的索引字段,获取最小值min和最大值max,用于比对开始与结束标记;并设置并行比对通道数N,N动态生成,用于并行处理;(1‑3)将主备数据库表的记录按索引字段递增排序,并将排序结果按并行比对通道数N进行分块,且各个通道分别流式读取数据,存于缓存中;(1‑4)在各个通道中并行处理数据比对,记录比对结果。本发明具有提高了数据比对速度的特点。
Description
技术领域
本发明涉及数据库技术领域,尤其是涉及一种能够充分利用硬件资源进行数据比对,提高了数据比对速度的大表流式并行高速数据比对方法。
背景技术
现有技术中的数据库表比对方案主要有:
将主备数据库表数据导成表格文件,再运用比较工具进行比对,该方法简单明了,但是对于海量数据无法进行比对。
利用算法技术进行比对,将主备端数据导入内存,并采用各种查找算法进行比对;该方法的优点是比对速度快,缺点是依赖于算法,并没有利用现有软硬件资源,实用性不强。
将主备端数据导入到第三方数据库,执行SQL脚本,然后对执行结果进行差异分析。该方法采用逻辑运算,程序简单,缺点是实时性差,操作复杂,并依赖于第三方数据库,价格昂贵。
基于多表的数据库并行比对;这种并行方式不能对单张大表提供性能优化支持。
发明内容
本发明的发明目的是为了克服现有技术中的数据库表比对方法实用性不强,实时性差,操作复杂,价格昂贵的不足,提供了一种能够充分利用硬件资源进行数据比对,提高了数据比对速度的大表流式并行高速数据比对方法。
为了实现上述目的,本发明采用以下技术方案:
一种大表流式并行高速数据比对方法,包括如下步骤:
(1-1)比对应用程序通过数据库链接配置待比对的主数据库表信息和备数据库表的信息,如果主数据库表信息和备数据库表信息结构不一致,返回无法比对;
(1-2)比较主数据库表信息和备数据库表的索引字段,获取最小值min和最大值max,用于比对开始与结束标记;并设置并行比对通道数N,N动态生成,用于并行处理;
(1-3)将主备数据库表的记录按索引字段递增排序,并将排序结果按并行比对通道数N进行分块,且各个通道分别流式读取数据,存于缓存中;
(1-4)在各个通道中并行处理数据比对,记录比对结果。
本发明克服现有数据比对方法的实用性不强,实时性差,操作复杂,价格昂贵,操作复杂的不足,能够在充分利用硬件资源进行数据比对的同时提高数据比对速度,实用性强,实时性好,操作简单,价格便宜,操作简单。
作为优选,所述主数据库表信息和备数据库表的信息均包括参与比对的主备数据库对应的表名称,字段名称及对应字段类型。
作为优选,并行比对通道数N根据实际数据比对的速度动态确定,取每秒比对表记录行数最多时的比对通道个数。
作为优选,1≤N≤5。
作为优选,并行处理将比对数据分多个通道同时比较,每个通道是独立的个体,平行独立线程运行,各个通道之间通过缓存进行联系;在并行处理过程中,当一个通道或多个通道已经比对完成,将其它未完成比对的通道数据块拆分给多个通道,保持同时比对的通道数为N,缓解通道压力,保证比对速度。
作为优选,流式读取数据为将数据库表记录按索引字段递增进行排序并分块,并设置每个通道待比对数据块一次读取的大小,采取多次读取的方法,流式取出,存于缓存中。
因此,本发明具有如下有益效果:能够在充分利用硬件资源进行数据比对的同时提高数据比对速度,实用性强,实时性好,操作简单,价格便宜,操作简单。
附图说明
图1为本发明的一种并行处理比对装置图;
图2为本发明的一种并行处理比对流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
如图1所示的实施例是一种大表流式并行高速数据比对方法,主要包括:数据预处理,多通道数据读取模块,多通道并行处理,记录比对异常结果等模块。
包括如下步骤:
A、比对应用程序通过数据库链接配置待比对的主备数据库表信息,要求表结构一致,否则返回无法比对;
B、比较主备数据库表索引字段,获取最小值min和最大值max,用于比对开始与结束标记;并设置并行比对通道数N,该数值大小动态生成,用于并行处理;
C、将主备数据库表记录按索引字段递增排序,并将排序结果按并行通道数N进行分块,且各个通道分别流式读取数据,存于缓存中;
D、在各个通道中并行处理数据比对,记录比对结果。
下面根据上述步骤进行具体描述。
如图2所示,首先配置主备数据表信息,将主备数据库的表名称,表字段名称,表字段类型等信息配置完成,并判断主备表的表结构是否相同,字段类型是否能够比对,不满足,将不能比对。
在满足比对条件的主备表中,读取索引字段的最小值,最大值,作为比对的开始行与结束行的标志。
确定比对通道数N,取每秒比对表记录行数最多时的比对通道数N,比对通道数取值范围1≤N≤5,用于并行处理数据比对,合理利用资源,提高比对速度。
然后,分别将主备表的数据按索引字段进行递增排序,并将排序后的数据按比对通道数N进行分块,且每个通道每次读取数据的大小为max,流式取出,存于缓存中,等待比对通道的读取。当缓存中的数据被比对通道读取用于数据比对后,即可继续从数据库表中读取数据,存于缓存中,等待比对,直到块数据被读取完。
各个通道数据比对过程中,逐行读取缓存中的数据块,进行比对。同时,判断各个通道是否都完成比对,未完成通道可将剩余数据拆分成多个通道,保持在并行处理数据比对的通道数为N,直到所有通道完成数据比对,结束。
在比对过程中数据发生不一致时,将记录具体不一致情况在异常表中,数据不一致包括:数据只在主表中存在(删除),数据只在备表中存在(增加),主备表中都存在(更新)三种情况。
下面举例说明:假设有两张100万行的大表,主表A的表结构为a integer primarykey,b varchar,c number(10);备表B的表结构为a integer primary key,b varchar,cnumber(10);
1)首先根据上述步骤中所述的判断表A,B的表结构是否一样,该例中表结构一致。
2)通过sq1脚本查询表A,B的索引字段为:a integer,并获取两表索引字段的最小值作为比对开始标记:startFlag=amin,索引字段的最大值作为比对结束标记:endFlag=amax(如果主备表有多个索引字段,取第一索引字段)。
3)下面确定并行比对通道个数N(1≤N≤5),分别将N取值为N=1,N=2,N=3,N=4,N=5,根据开始标记startFlag递增排序每次取出表A,B中的5000行记录,将该5000行记录根据比对通道数拆分成N数据块,并进行比对,且计算N取不同值时每秒比对多少行记录。最后,将N取值为每秒比对行数最多的通道数。
4)然后将剩下的待比对数据按照索引递增排序拆分成N个数据块,分别通过N个比对通道数进行比对,每个通道每次读取记录行数可以设置为max=5000行,分多次流式取出,存于缓存中,依次等待比对。在比对的过程中,判断各个通道是否都完成比对,未完成通道可将剩余数据拆分成多个通道,保持在并行处理数据比对的通道数为N,直到所有通道完成100万行数据比对,结束。
具体比对过程如下:首先从缓存中读取一行记录,将主备表改行的索引字段内容进行比较,如果大小相同,则继续比较其他字段;如果大小不相同,则将不一致情况记录到异常表中,然后继续比较下一行记录。比较结果有如下几种情况:该行记录只在主表中存在,则将异常表中的sourceCount字段加1;该行记录只在备表中存在,则将异常表中的targetCount字段加1;该行记录只在主备表中都存在,但存在字段内容不相同,则将异常表中的diffCount字段加1;该行记录只在主备表中都存在,但存在字段内容相同,则将异常表中的sameCount字段加1。
应理解,本实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
Claims (2)
1.一种大表流式并行高速数据比对方法,其特征是,包括如下步骤:
(1-1)比对应用程序通过数据库链接配置待比对的主数据库表信息和备数据库表的信息,如果主数据库表信息和备数据库表信息结构不一致,返回无法比对;
(1-2)比较主数据库表信息和备数据库表的索引字段,获取最小值min和最大值max,用于比对开始与结束标记;并设置并行比对通道数N,N动态生成,用于并行处理:
设定主数据库表A的表结构为a integer primary key,b varchar,c number(10);备数据库表B的表结构为a integer primary key,b varchar,c number(10);
分别将N取值为N=1,N=2, N=3,N=4,N=5,根据开始标记startFlag递增排序每次取出表A,B中的5000行记录,将该5000行记录根据比对通道数拆分成N数据块,并进行比对,且计算N取不同值时每秒比对多少行记录;最后,将N取值为每秒比对行数最多的通道数;
(1-3)将主备数据库表的记录按索引字段递增排序,并将排序结果按并行比对通道数N进行分块,且各个通道分别流式读取数据,存于缓存中:
将剩下的待比对数据按照索引递增排序拆分成N个数据块,分别通过N个比对通道数进行比对,每个通道每次读取记录行数设置为max=5000行,分多次流式取出,存于缓存中,依次等待比对;在比对的过程中,判断各个通道是否都完成比对,未完成的通道将剩余数据拆分成多个通道,保持在并行处理数据比对的通道数为N,直到所有通道完成100万行数据比对,结束;
(1-4)在各个通道中并行处理数据比对,记录比对结果:
从缓存中读取一行记录,将主备表改行的索引字段内容进行比较,如果大小相同,则继续比较其他字段;如果大小不相同,则将不一致情况记录到异常表中,然后继续比较下一行记录;
比较结果有如下几种情况:该行记录只在主表中存在,则将异常表中的sourceCount字段加1;该行记录只在备表中存在,则将异常表中的targetCount字段加1;该行记录只在主备表中都存在,但存在字段内容不相同,则将异常表中的diffCount字段加1;该行记录只在主备表中都存在,但存在字段内容相同,则将异常表中的sameCount字段加1。
2.根据权利要求1所述的大表流式并行高速数据比对方法,其特征是,所述主数据库表信息和备数据库表的信息均包括参与比对的主备数据库对应的表名称,字段名称及对应字段类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710819917.8A CN107679104B (zh) | 2017-09-12 | 2017-09-12 | 大表流式并行高速数据比对方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710819917.8A CN107679104B (zh) | 2017-09-12 | 2017-09-12 | 大表流式并行高速数据比对方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107679104A CN107679104A (zh) | 2018-02-09 |
CN107679104B true CN107679104B (zh) | 2020-11-24 |
Family
ID=61135783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710819917.8A Active CN107679104B (zh) | 2017-09-12 | 2017-09-12 | 大表流式并行高速数据比对方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107679104B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287182B (zh) * | 2019-05-05 | 2021-09-14 | 浙江吉利控股集团有限公司 | 一种大数据的数据对比方法、装置、设备及终端 |
CN111352937A (zh) * | 2020-02-14 | 2020-06-30 | 山东省科学院海洋仪器仪表研究所 | 一种海洋生态环境监测并行数据检索方法 |
CN112052260B (zh) * | 2020-09-29 | 2024-01-26 | 武汉理工大学 | 一种基于多进程数据流的海量虚实数据比对方法 |
CN115237927B (zh) * | 2022-09-20 | 2022-11-29 | 神州医疗科技股份有限公司 | 基于缓存和数据处理规则实现数据表更新的方法和系统 |
CN116150179A (zh) * | 2023-04-14 | 2023-05-23 | 天津南大通用数据技术股份有限公司 | 一种数据库间的数据一致性比对方法及装置 |
CN117131058A (zh) * | 2023-10-23 | 2023-11-28 | 天津神舟通用数据技术有限公司 | 一种基于数据分片的并行对比数据库表数据的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702162A (zh) * | 2009-11-19 | 2010-05-05 | 福建鑫诺通讯技术有限公司 | 嵌入式系统的数据管理模块 |
CN102184190A (zh) * | 2011-04-19 | 2011-09-14 | 北京神州数码思特奇信息技术股份有限公司 | 数据比对方法 |
CN102375886A (zh) * | 2011-10-21 | 2012-03-14 | 北京锐安科技有限公司 | 一种多通道高速数据比对方法 |
CN102890720A (zh) * | 2012-10-16 | 2013-01-23 | 南京通达海信息技术有限公司 | 数据库检查维护方法 |
US8738632B2 (en) * | 2008-06-17 | 2014-05-27 | International Business Machines Corporation | Encoded matrix index |
CN106599300A (zh) * | 2016-12-28 | 2017-04-26 | 中国建设银行股份有限公司 | 一种分布式系统数据库结构对比方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484220B2 (en) * | 2007-03-06 | 2013-07-09 | Mcafee, Inc. | Clustered index with differentiated subfields |
US10417611B2 (en) * | 2010-05-18 | 2019-09-17 | Salesforce.Com, Inc. | Methods and systems for providing multiple column custom indexes in a multi-tenant database environment |
US20140201192A1 (en) * | 2013-01-15 | 2014-07-17 | Syscom Computer Engineering Co. | Automatic data index establishment method |
-
2017
- 2017-09-12 CN CN201710819917.8A patent/CN107679104B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8738632B2 (en) * | 2008-06-17 | 2014-05-27 | International Business Machines Corporation | Encoded matrix index |
CN101702162A (zh) * | 2009-11-19 | 2010-05-05 | 福建鑫诺通讯技术有限公司 | 嵌入式系统的数据管理模块 |
CN102184190A (zh) * | 2011-04-19 | 2011-09-14 | 北京神州数码思特奇信息技术股份有限公司 | 数据比对方法 |
CN102375886A (zh) * | 2011-10-21 | 2012-03-14 | 北京锐安科技有限公司 | 一种多通道高速数据比对方法 |
CN102890720A (zh) * | 2012-10-16 | 2013-01-23 | 南京通达海信息技术有限公司 | 数据库检查维护方法 |
CN106599300A (zh) * | 2016-12-28 | 2017-04-26 | 中国建设银行股份有限公司 | 一种分布式系统数据库结构对比方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107679104A (zh) | 2018-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107679104B (zh) | 大表流式并行高速数据比对方法 | |
US11392582B2 (en) | Automatic partitioning | |
US6732110B2 (en) | Estimation of column cardinality in a partitioned relational database | |
US9195701B2 (en) | System and method for flexible distributed massively parallel processing (MPP) database | |
WO2015106711A1 (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
US8713068B2 (en) | Media identification system with fingerprint database balanced according to search loads | |
US10452676B2 (en) | Managing database with counting bloom filters | |
CN106599052B (zh) | 一种基于Apache Kylin的数据查询系统及其方法 | |
WO2021031687A1 (zh) | 数据库分库分表的分页查询方法、装置和计算机设备 | |
US8352470B2 (en) | Adaptive aggregation: improving the performance of grouping and duplicate elimination by avoiding unnecessary disk access | |
WO2014021978A4 (en) | Aggregating data in a mediation system | |
KR20220107118A (ko) | 제품 결함의 원인을 분석하는 시스템 및 방법, 컴퓨터 판독가능 매체 | |
JP6418431B2 (ja) | 効率的な1対1結合のための方法 | |
US20220005546A1 (en) | Non-redundant gene set clustering method and system, and electronic device | |
CN107169003B (zh) | 一种数据关联方法及装置 | |
CN110543478B (zh) | 公共层宽表建设方法、装置及服务器 | |
WO2021232645A1 (zh) | 一种提升聚合查询效率的聚合索引结构及聚合索引方法 | |
CN110597857B (zh) | 一种基于共享样本的在线聚集方法 | |
CN112199376A (zh) | 一种基于聚类分析的标准知识库管理方法及系统 | |
CN111198847A (zh) | 一种适用于大数据集的数据并行处理方法、装置及系统 | |
CN104794129A (zh) | 一种基于查询日志的数据处理方法和系统 | |
US9047342B2 (en) | Method for accelerating queries containing local range conditions using subtraction of cumulative bitmaps | |
CN115421965A (zh) | 一致性校验方法、装置、电子设备及存储介质 | |
CN104750846A (zh) | 一种子串查找方法及装置 | |
US11816245B2 (en) | Method for analysis on interim result data of de-identification procedure, apparatus for the same, computer program for the same, and recording medium storing computer program thereof |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310000 Rooms 103-27, Building 19, No. 1399, Liangmu Road, Cangqian Street, Yuhang District, Hangzhou, Zhejiang Patentee after: Hangzhou Meichuang Technology Co.,Ltd. Address before: 12 / F, building 7, Tianxing International Center, 508 Fengtan Road, Gongshu District, Hangzhou City, Zhejiang Province 310011 Patentee before: HANGZHOU MEICHUANG TECHNOLOGY CO.,LTD. |
|
CP03 | Change of name, title or address |