CN101719143A - 并行处理比对式增量数据抽取方法 - Google Patents
并行处理比对式增量数据抽取方法 Download PDFInfo
- Publication number
- CN101719143A CN101719143A CN200910228904A CN200910228904A CN101719143A CN 101719143 A CN101719143 A CN 101719143A CN 200910228904 A CN200910228904 A CN 200910228904A CN 200910228904 A CN200910228904 A CN 200910228904A CN 101719143 A CN101719143 A CN 101719143A
- Authority
- CN
- China
- Prior art keywords
- data
- delta
- parallel processing
- redaction
- legacy
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种并行处理比对式增量数据抽取方法,在本发明涉及的系统中,核心设计理念有如下四点:(1)采用数据摘要技术进行变化数据捕获;(2)采用多线程技术和功能单元组件化,实现并行处理;(3)大数据量的排序算法;(4)数据缓存技术。本发明方法在处理大数量的情况下,可以大大提高系统的吞吐能力;数据处理准确,省时高效,节约资源,应用范围广。
Description
技术领域
本发明涉及一种数据处理方法,特别涉及一种并行处理比对式增量数据抽取方法。
背景技术
在当前的数据集成或应用集成项目中,特别是涉及到电子政务的数据集成项目,数据采集是整个项目成败的前提因素,而其中增量数据的提取技术是实现数据采集的关键所在;但目前,数据采集面临的主要问题是,系统往往是专业部门内部应用或第三方开发的应用软件,特别是政府部门条块分割,从安全或管理模式上讲,这些系统是不可能让其它系统接入其内部,只能通过导文件的方式、借助中间数据库方式或采用人工录入的办法提供数据;这种数据提供方式带来的问题是重复提供的数据量大,目标系统处理复杂度大,同时造成目标系统负荷过重,效率低下,而且人工处理容易出现差错。为了解决上述问题也有其它软件生产商采用比对方式获取增量数据,但是由于系统采用的算法简单或系统架构不合理,没有充分考虑大数据量的情况,对于大数据量的处理很难胜任。
因此,提供一种设计合理、效果显著的并行处理比对式增量数据抽取方法,是本领域科技人员急需研究解决的课题之一。
发明内容
本发明的目的在于克服上述不足之处,提供一种设计合理、准确高效的并行处理比对式增量数据抽取方法。
为实现上述目的本发明所采用的技术方案是:一种并行处理比对式增量数据抽取方法,其特征在于:实施方法对应以下步骤开始:
(1-1)参与比对的新版本数据,(1-2)参与比对的原有数据;
(2-1)数据逐行载入,(2-2)原有数据根据MD5排序;
(3-1)新版本数据的MD5数据摘要生成;
(4-1)新版本数据根据MD5数值进行排序,(4-2)新老版本数据比较MD5值;
(5-1)只在原有数据源中存在(称为变化数据A),(5-2)只在新数据源中存在(称为变化数据B);
(6-1)A种情况,数据可能被删除/修改,(6-2)B种情况,可能是新增/修改;
(7-1)A,B变化数据按主键值排序,比较记录主键值;
(8-1)只在新数据源中存在,变化数据为新增,(8-2)都存在,变化数据为修改,(8-3)只在原有数据源中存在,变化数据位删除;
(9-1)输出新增数据,(9-2)输出修改数据,(9-3)输出删除数据;
结束。
本发明的有益效果是:本发明方法在处理大数量的情况下,可以大大提高系统的吞吐能力;数据处理准确,省时高效,节约资源。和其他增量获取放法比较。首先,这种方式和采用数据库触发器获取增量数据的方法比较,触发器的方式对原系统的侵入性高,并造成数据库的负荷增加,而这种方式比较的数据和原系统分离,不会对原系统造成负荷增加;其次,和采用数据库日志方式获取增量数据方式比较,日志方式是需要数据库必需支持事物日志,而且数据库的日志格式一般不对外公开,技术通用性不好;最后,和一般的采用比对方式获得增量数据的方式来讲,我们系统的采用了管道平行处理机制和外部排序的算法,适用性和承载能力的伸缩性比较好。
附图说明
图1是本发明实施步骤流程图;
图2是本发明的架构原理图;
图3是核心部件外部接口说明。
图2中:
并行处理系统方框中的圆角框格代表一个运行状态的组件线程;
箭头指示代表一个组件1和组件2连接数据缓存,他可以是内存,外部文件或MQ的消息队列。
具体实施方式
以下结合附图和较佳实施例,对依据本发明提供的具体实施方式、特征详述如下:
如图1-图3所示,在本发明涉及的系统中,核心设计理念有如下四点
(1)采用数据摘要技术进行变化数据捕获;
(2)采用多线程技术和功能单元组件化,实现并行处理;
(3)大数据量的排序算法;
(4)数据缓存技术。
MD5的全称是message-digest algorithm 5(信息-摘要算法),是一种公开的密码的算法,它可以对任何文件或信息产生一个唯一的MD5验证码,每个文件或信息的MD5码就如同每个人的指纹一样,都是不同的,这样,一旦这个文件/信息内容被损坏或者被修改的话,那么这个文件的MD5码就会发生变化,通过对文件或信息MD5的验证,可以得知获得的文件或信息是否被修改。
记录主键,数据记录由多个字段组成,数据记录中能唯一标示该该记录的字段值称之为“主键”。
在如图1中提及的“新版本数据”一般是数据的产生端提供的数据文件,保存数据记录,文件可以是,dbf文件、csv文件、xsl文件、分割符文件或其它结构化文件、还可以是数据库;“旧版本数据”可以空或上一次比对果并附带有MD5值,在本发明设计的产品中是由专门的数据库存储,通常称之为“比对参照库”。
首先,负责读取“新版本数据”的载入组件,解析文件或连接数据库按记录结构读取记录,产生MD5数据摘要并按MD5值进行排序;同时,数据库载入组件负责“旧版本数据”按照记录的MD5的值进行排序后的顺序进行载入。
其次,新旧版本数据MD5排序后的结果,进行MD5比较,如果数据记录的MD5值只在新版本数据中存在,说明该数据记录肯定是一个变化的记录,它有两种情况:第一种情况是新增加的数据记录、第二种情况是修改的数据记录;如果MD5值只在旧版本数据中存在,说明该数据记录肯定是变化数据,他可能是在新版本数据中该记录数据可能被删除或修改。通过上述的比较形成了两个数据记录集合:一是只在旧版本数据中存在的数据集(称为“A”集合)、另外一个是只在新版本数据中存在的数据集(称为“B”集合)。
最后,为了确定这个俩个变化数据记录集哪些是修改,哪些是删除,哪些是新增。我们把这两个数据集合中的数据记录的主键值分别进行排序后,进行主键值的比较。在比较结果中,若出现,主键值只在“A”集合中存在,说明该数据记录在新版本数据中被“删除”;若出现,主键值只在“B”集合中存在,说明该数据记录在新版本数据中是“新增”记录;若出现,主键值在“A”和“B”中都存在,说明该记录在新版本数据中是“修改”。
总之,通过两次的排序和比较,最终获得了新版本相对于旧版本数据的变化数据即增量数据。
框架及算法具体说明:
如图1所示,一种并行处理比对式增量数据抽取方法,其特征在于:
实施方法对应以下步骤开始:
(1-1)参与比对的新版本数据,(1-2)参与比对的原有数据;
(2-1)数据逐行载入,(2-2)原有数据根据MD5排序;
(3-1)新版本数据的MD5数据摘要生成;
(4-1)新版本数据根据MD5数值进行排序,(4-2)新老版本数据比较MD5值;
(5-1)只在原有数据源中存在(称为变化数据A),(5-2)只在新数据源中存在(称为变化数据B);
(6-1)A种情况,数据可能被删除/修改,(6-2)B种情况,可能是新增/修改;
(7-1)A,B变化数据按主键值排序,比较记录主键值;
(8-1)只在新数据源中存在,变化数据为新增,(8-2)都存在,变化数据为修改,(8-3)只在原有数据源中存在,变化数据位删除;
(9-1)输出新增数据,(9-2)输出修改数据,(9-3)输出删除数据;
结束。
本发明系统整体调用框架采用的是“并行处理”机制。所谓“并行处理”就是每个功能组件,都是以一个独立线程运行,在系统中每个独立的功能都是平行运行的,特别是在多处理器多用户操作系统上,可以大大提高系统运行的效率从而充分利用资源。运行关系上,每个组件线程是上一个组件线程的消费者和下一个组件线程的生产者,他们之间通过数据缓存(这种缓存的实现可以是内存、文件或MQ消息队列)作为连接;如图2所示,其中的组件间的连线。这样的框架,被处理数据就成为流经系统的数据流,在处理大数量的情况下,可以大大提高系统的吞吐能力。
首先,并行处理系统的主线程启动后会加载全部功能组件并调度该组件线程启动运行,主线程还会建立功能组件间的数据缓存。
其次,在本例中功能组件1运行后,会从外部获取数据并处理,并将处理的结果放入数据缓存中。
最后,如图2中的功能组件2运行后,他会从和如图2中的功能组件1间的数据缓存通道中获取要处理的数据。组件2会把数据处理结束后会放入其和后续组件间的数据缓存通道。
核心处理组件及算法
这个系统有两个核心处理算法组件,一个为数据交集,另一个为排序算法。交集功能组件作用主要完成计算两个数据流的包含和不包含关系,如图3所示。
说明:“数据流A”、“数据流B”是按照交集比较的字段值进行排序后的数据集合结果。
由于在输入交集组件前两个数据集合都是经过排序处理的,因此,计算交集的算法比较简单,就是按顺序比较键值即可完成。
对于排序功能组件,它采用的排序算法要考虑应对大量级的排序问题。在现实中,系统运行的内存资源有限,不可能将大量数据加载到内存中进行排序,因此系统的排序算法就要解决外部排序的问题。我们系统排序功能主要利用临时文件和内存,采用分段排序的算法解决大数量级排序问题。举例说明如下:
待排序数据为:1,5,3,2,7,4,6,11,9;
分段排序,分成3段,每段数据原始数据为:
第一段:1,5,3;
第二段:2,7,4;
第三段:6,11,9;
(1)、把每段数据载入内存。在内存中,按照一般的排序算法进行排序,如,冒泡排序算法。排序后,把排序结果分别写入文件tape1,tape2,tape3,内容如下:
Tape1:1,3,5;
Tape2:2,4,7;
Tape3:6,9,11;
(2)、从每段中读取第一个最小的值,分别如下:
Tape1-Lowest=1;
Tape2-Lowest=2;
Tape3-Lowest=6;
这三个值进行比较,计算出三个值得最小值,结果为tape1的1,再把该值写入文件Tape,在从Tape1文件中读取最小值,结果如下,其它段最小值不变。
Tape1-Lowest=3;
Tape2-Lowest=2;
Tape3-Lowest=6;
这三个值进行比较,计算出三个值得最小值,结果为tape2的2,把该值写入文件Tape,在从Tape2文件中读取最小值,结果如下,其它段最小值不变;
Tape1-Lowest=3;
Tape2-Lowest=4;
Tape3-Lowest=6;
(3)、按(2)得做法,重复,直到全部分段读取完成,最终会在文件Tape中会形成如下排好序的结果:
Tape:
1,2,3,4,5,6,7,9,11。
测试效果:
在测试中,采用一台计算机,配置如下:1GB、内存,CPU 1个,1GMHz,硬盘80G;测试数据源,Oracle数据库,数据量为150万条记录,每条记录最大为2k,比对参考库采用mySQL数据库。JDK采用1.5版本,操作系统为WindowXP。
首次比对,比对参考数据库为空,全部比对完成,并生成增量数据,耗时为25分钟,内存消耗250M左右。
第二次比对,修改原数据一条记录,比对参考数据为上次比对版本数据,全部比对完成并生成增量数据20耗时分钟,内存消耗200M左右。
通过上述测试可以得出,如果采用一般方式比较即逐条,逐个字段的比较,需要将全部数据加载内容,消耗大量内存,同时全部数据比对完并生成增量数据,在上述环境下,至少在40分钟以上,数据量越大所需时间和资源都是线性增长的;本发明方法省时高效,节约资源。
应用实例及效果:
(1)天津市市中心行政审批二级联动系统,在该系统中需要采用该发明从区县的行政审批系统中抽取行政审批事项和办件增量数据。目前安装该发明的12区县,每天抽取的增量数据为两万多条,目前行政审批二级联动系统的数据已800万。
(2)北京东城区行政服务中心,外网部署的网上审批和内网的行政审批系统的数据交换系统都采用该发明,数据交换量每年4个G到6个左右。
上述参照实施例对该并行处理比对式增量数据抽取方法进行的详细描述,是说明性的而不是限定性的;因此在不脱离本发明总体构思下的变化和修改,应属本发明的保护范围之内。
Claims (1)
1.一种并行处理比对式增量数据抽取方法,其特征在于:
实施方法对应以下步骤开始:
(1-1)参与比对的新版本数据, (1-2)参与比对的原有数据;
(2-1)数据逐行载入, (2-2)原有数据根据MD5排序;
(3-1)新版本数据的MD5数据摘要生成;
(4-1)新版本数据根据MD5数值进行排序, (4-2)新老版本数据比较MD5值;
(5-1)只在原有数据源中存在(称为变化数据A),(5-2)只在新数据源中存在(称为变化数据B);
(6-1)A种情况,数据可能被删除/修改, (6-2)B种情况,可能是新增/修改;
(7-1)A,B变化数据按主键值排序,比较记录主键值;
(8-1)只在新数据源中存在,变化数据为新增, (8-2)都存在,变化数据为修改,(8-3)只在原有数据源中存在,变化数据位删除;
(9-1)输出新增数据, (9-2)输出修改数据, (9-3)输出删除数据;
结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910228904A CN101719143A (zh) | 2009-12-01 | 2009-12-01 | 并行处理比对式增量数据抽取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910228904A CN101719143A (zh) | 2009-12-01 | 2009-12-01 | 并行处理比对式增量数据抽取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101719143A true CN101719143A (zh) | 2010-06-02 |
Family
ID=42433717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910228904A Pending CN101719143A (zh) | 2009-12-01 | 2009-12-01 | 并行处理比对式增量数据抽取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101719143A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101982820A (zh) * | 2010-11-22 | 2011-03-02 | 北京航空航天大学 | 一种大数据量的曲线显示查询方法 |
CN102279733A (zh) * | 2010-06-10 | 2011-12-14 | 深圳市腾讯计算机系统有限公司 | 一种开源平台及其实现数据处理的方法 |
CN103049543A (zh) * | 2012-12-26 | 2013-04-17 | 福建天晴数码有限公司 | 多分支配置文件的更新方法及更新工具 |
CN103049533A (zh) * | 2012-12-23 | 2013-04-17 | 北京人大金仓信息技术股份有限公司 | 一种快速向数据库加载数据的方法 |
CN103092840A (zh) * | 2011-10-28 | 2013-05-08 | 上海邮电设计咨询研究院有限公司 | 多源自增海量数据文件实时采集方法 |
CN103345383A (zh) * | 2013-06-28 | 2013-10-09 | 北京航天金盾科技有限公司 | 一种多线程数据比对方法和装置 |
CN104077338A (zh) * | 2013-06-25 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法及装置 |
CN104679794A (zh) * | 2013-12-03 | 2015-06-03 | 中兴通讯股份有限公司 | 数据差异分析方法及装置 |
CN104731792A (zh) * | 2013-12-19 | 2015-06-24 | 中国银联股份有限公司 | 数据库一致性校验方法及系统、定位数据库差异的方法及系统 |
CN107707328A (zh) * | 2016-08-08 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 摘要信息传输方法和装置 |
CN108062399A (zh) * | 2017-12-21 | 2018-05-22 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN109101603A (zh) * | 2018-08-01 | 2018-12-28 | 上海达梦数据库有限公司 | 一种数据比对方法、装置、设备及存储介质 |
CN109446205A (zh) * | 2017-08-28 | 2019-03-08 | 中国电信股份有限公司 | 判断数据状态的装置和方法以及数据更新的装置和方法 |
CN111694853A (zh) * | 2020-06-02 | 2020-09-22 | 北京北大软件工程股份有限公司 | 基于世系的数据增量采集方法、装置、存储介质和电子设备 |
-
2009
- 2009-12-01 CN CN200910228904A patent/CN101719143A/zh active Pending
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279733A (zh) * | 2010-06-10 | 2011-12-14 | 深圳市腾讯计算机系统有限公司 | 一种开源平台及其实现数据处理的方法 |
CN102279733B (zh) * | 2010-06-10 | 2016-04-13 | 深圳市腾讯计算机系统有限公司 | 一种开源平台及其实现数据处理的方法 |
CN101982820B (zh) * | 2010-11-22 | 2011-12-07 | 北京航空航天大学 | 一种大数据量的曲线显示查询方法 |
CN101982820A (zh) * | 2010-11-22 | 2011-03-02 | 北京航空航天大学 | 一种大数据量的曲线显示查询方法 |
CN103092840A (zh) * | 2011-10-28 | 2013-05-08 | 上海邮电设计咨询研究院有限公司 | 多源自增海量数据文件实时采集方法 |
CN103092840B (zh) * | 2011-10-28 | 2015-09-16 | 上海邮电设计咨询研究院有限公司 | 多源自增海量数据文件实时采集方法 |
CN103049533A (zh) * | 2012-12-23 | 2013-04-17 | 北京人大金仓信息技术股份有限公司 | 一种快速向数据库加载数据的方法 |
CN103049543A (zh) * | 2012-12-26 | 2013-04-17 | 福建天晴数码有限公司 | 多分支配置文件的更新方法及更新工具 |
CN104077338B (zh) * | 2013-06-25 | 2016-02-17 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法及装置 |
CN104077338A (zh) * | 2013-06-25 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法及装置 |
US10268715B2 (en) | 2013-06-25 | 2019-04-23 | Tencent Technology (Shenzhen) Company Limited | Systems and methods for data processing |
CN103345383A (zh) * | 2013-06-28 | 2013-10-09 | 北京航天金盾科技有限公司 | 一种多线程数据比对方法和装置 |
CN103345383B (zh) * | 2013-06-28 | 2016-02-10 | 北京航天金盾科技有限公司 | 一种多线程数据比对方法和装置 |
CN104679794A (zh) * | 2013-12-03 | 2015-06-03 | 中兴通讯股份有限公司 | 数据差异分析方法及装置 |
CN104731792A (zh) * | 2013-12-19 | 2015-06-24 | 中国银联股份有限公司 | 数据库一致性校验方法及系统、定位数据库差异的方法及系统 |
CN104731792B (zh) * | 2013-12-19 | 2018-09-21 | 中国银联股份有限公司 | 数据库一致性校验方法及系统、定位数据库差异的方法及系统 |
CN107707328A (zh) * | 2016-08-08 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 摘要信息传输方法和装置 |
CN107707328B (zh) * | 2016-08-08 | 2020-11-24 | 北京京东尚科信息技术有限公司 | 摘要信息传输方法和装置 |
CN109446205A (zh) * | 2017-08-28 | 2019-03-08 | 中国电信股份有限公司 | 判断数据状态的装置和方法以及数据更新的装置和方法 |
CN108062399A (zh) * | 2017-12-21 | 2018-05-22 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN109101603A (zh) * | 2018-08-01 | 2018-12-28 | 上海达梦数据库有限公司 | 一种数据比对方法、装置、设备及存储介质 |
CN109101603B (zh) * | 2018-08-01 | 2021-06-04 | 上海达梦数据库有限公司 | 一种数据比对方法、装置、设备及存储介质 |
CN111694853A (zh) * | 2020-06-02 | 2020-09-22 | 北京北大软件工程股份有限公司 | 基于世系的数据增量采集方法、装置、存储介质和电子设备 |
CN111694853B (zh) * | 2020-06-02 | 2023-12-08 | 北京北大软件工程股份有限公司 | 基于世系的数据增量采集方法、装置、存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101719143A (zh) | 并行处理比对式增量数据抽取方法 | |
US11681733B2 (en) | Massive scale heterogeneous data ingestion and user resolution | |
WO2020233330A1 (zh) | 批量测试方法、装置及计算机可读存储介质 | |
CN101719149B (zh) | 数据同步方法及装置 | |
CN110647579A (zh) | 数据同步方法及装置、计算机设备与可读介质 | |
CN105144080A (zh) | 用于元数据管理的系统 | |
TW201140350A (en) | High throughput, reliable replication of transformed data in information systems | |
US20100251227A1 (en) | Binary resource format and compiler | |
CN106326398A (zh) | 数据一致性对比的方法及装置 | |
US8131728B2 (en) | Processing large sized relationship-specifying markup language documents | |
US20170168869A1 (en) | Non-transitory computer-readable storage medium, control device, and control method | |
JP4928480B2 (ja) | ジョブ処理システムおよびジョブ管理方法 | |
Raman et al. | BoDS: A benchmark on data sortedness | |
CN102446206A (zh) | 一种三维数据的跨平台交换装置和方法 | |
Liu et al. | Transforming data into decision making: A spotlight review of construction digital twin | |
CN114860690A (zh) | 数据迁移方法、装置、设备及存储介质 | |
CN116089417A (zh) | 信息获取方法、装置、存储介质及计算机设备 | |
CN113434397B (zh) | 任务系统的测试方法、装置、电子设备及存储介质 | |
CN115599778A (zh) | 一种数据文件的处理方法、装置、电子设备和存储介质 | |
CN112214983B (zh) | 一种数据记录查重方法及系统 | |
EP2144175B1 (en) | Method for performing a bulk load into a database | |
CN112036692B (zh) | 一种人员在机构间流动情况的分析方法及分析系统 | |
CN116795858A (zh) | 链路调用检索方法、装置、设备、介质及产品 | |
CN111897845B (zh) | 一种基于流程实现海量信用信息处理方法及系统 | |
CN107357528A (zh) | 一种基于flash的文件系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100602 |