差异数据的处理方法和装置的制作方法

文档序号:6374655阅读:167来源:国知局
专利名称:差异数据的处理方法和装置的制作方法
技术领域
本发明涉及计算机领域,具体地,涉及一种差异数据的处理方法和装置。
背景技术
随着每个公司业务的增长和规模的增大,数据量都会呈现几何级的增长;而采用传统技术导入数据和比较差异可能需要数小时或者数天,而长时间的操作在线数据库对业务影响很大,不能满足业务发展需要。在数据量很大的情况下,很难进行数据的快速导入、生成差异或更新。针对相关技术中无法快速生成差异数据并导入或更新数据的问题,目前尚未提出有效的解决方案。

发明内容
针对相关技术中无法快速导入数据、生成差异或更新数据的问题,本发明提出一种差异数据的处理方法和装置,能够在数据量很大的情况下,快速的导入数据、生成差异、或更新数据。本发明的技术方案是这样实现的根据本发明的一个方面,提供了一种差异数据的处理方法,该方法包括在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;根据多个差异信息集对第一数据集进行更新。其中,第一数据集与第二数据集之间的差异的分类包括以下类型之中的至少之第一类型,表示第一数据集相比于第二数据集增加的数据;第二类型,表示第一数据集相比于第二数据集缺少的数据;第三类型,表示第一数据集相比于第二数据集需要变更的数据。并且,通过多个差异信息集表示第一数据集与第二数据集之间的差异包括以下至少之一通过第一差异信息集表示第一类型的差异;通过第二差异信息集表示第二类型的差异;通过第二差异/[目息集表不第二类型的差异。该方法进一步包括通过相同信息集表示多个数据集之间彼此相同的数据。此外,通过多个差异信息集表示第一数据集与第二数据集之间的差异进一步包括
将第一数据集与第二数据集之间存在差异的数据导入到多个差异信息集中。另外,在导入数据的过程中,禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,根据导入的全部数据生成该数据的索引和/或外键。并且,第一数据集为存储在数据库中的网站信息,第二数据集为更新后的网站信肩、O可选地,第一数据集可以为云端存储的网站身份证业务中的铭牌数据,第二数据集可以为更新后的铭牌数据。而且,通过列表的方式来存储每 个差异信息集。根据本发明的另一方面,提供了一种差异数据的处理装置。该装置包括分类模块,用于在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;构建模块,用于构建多个差异信息集,并通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;更新模块,用于根据多个差异信息集对第一数据集进行更新。该装置可进一步包括导入模块,用于根据差异的类型,将第一数据集与第二数据集之间存在差异的数据导入到构建的多个差异信息集中,其中,在导入数据的过程中,导入模块禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,导入模块根据导入的全部数据生成该数据的索引和/或外键。本发明在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类,通过多个差异信息集表示第一数据集与第二数据集之间一个类型的差异,并根据多个差异信息集对第一数据集进行更新,能够在数据量很大的情况下,快速的生成差异并完成数据的更新,提高数据更新的效率并且避免更新数据时占用大量的存储空间。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是根据本发明实施例的差异数据的处理方法流程图;图2是根据本发明实施例的差异数据的处理装置的框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。根据本发明的实施例,提供了一种差异数据的处理方法。如图I所示,根据本发明实施例的差异数据的处理方法包括步骤S101,在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;步骤S103,通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;步骤S105,根据多个差异信息集对第一数据集进行更新。其中,第一数据集与第二数据集之间的差异的分类包括以下类型之中的至少之第一类型,表示第一数据集相比于第二数据集增加的数据;第二类型,表示第一数据集相比于第二数据集缺少的数据;第三类型,表示第一数据集相比于第二数据集需要变更的数据。并且,通过多个差异信息集表示第一数据集与第二数据集之间的差异包括以下至少之一通过第一差异信息集表示第一类型的差异;通过第二差异信息集表示第二类型的差异;通过第二差异/[目息集表不第二类型的差异。该方法进一步包括通过相同信息集表示多个数据集之间彼此相同的数据。此外,通过多个差异信息集表示第一数据集与第二数据集之间的差异进一步包括将第一数据集与第二数据集之间存在差异的数据导入到多个差异信息集中。另外,在导入数据的过程中,禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,根据导入的全部数据生成该数据的索引和/或外键。因此,由于在导入数据的过程中不生成数据的索引和/或外键,并在导入之后一并生成,能够避免因为生成索引和/或外键而中断数据的导入,有效提高数据导入的速率。。并且,第一数据集为存储在数据库中的网站信息,第二数据集为更新后的网站信肩、O而且,通过列表的方式来存储每个差异信息集。例如,在实际应用中,本发明快速导入、生成和更新数据的具体过程如下(I)快速导入数据到数据库的步骤al)替换文件中的表名为临时表名,例如,原来的表名称为tb_a,则该处将原表名替换为 tb_a_realtime ;bl)在导入数据语句前禁用表的索引/外键等约束;Cl)在导入数据语句结束后开启表的索引/外键等约束;dl)将文件格式转换为与操作系统相同的格式,字符集为数据库中指定的字符集,以防止出现乱码;el)使用批量工具 / 命令 oracle 的 sql loader、mysql 的 mysqlimport、mysql 的命令('which mysql' -h$ {db_host} -u$ {db_user} -p$ {db_pwd} $ {db_name} < $file_name)等导入数据。通过以上步骤即可以实现快速导入数据,比普通方法(直接执行SQL、非批量等)快至少10倍。(2)快速生成差异数据的步骤a2)新建保存中间结果的表若干个(备份在线表、相同内容表、比较中间表等),全部用中间表进行操作可以避免对现网业务产生影响;b2)备份在线表和新表数据;c2)生成在线表和新表相同数据到相同内容表;d2)删除备份在线表里面在相同内容表里面的数据;e2)删除备份新表里面在相同内容表里面的数据;f2)从删除相同记录后的小记录集备份在线表和新表中生成差异数据;g2)上述步骤b2和c2可以并行进行,d和e可以并行进行;并且使用了小表进行比较,因此极大加快了处理速度。(3)快速更新数据的步骤a3)备份完整在线表数据,在出现错误的时候可恢复数据;b3)新建保存中间结果的表若干个(备份在线表、备份新表、完全一致内容表),全部用中间表进行操作可以避免对现网业务产生影响;c3)生成备份在线表数据;d3)生成备份新表数据;e3)从备份在线表和备份新表中获取完全一致内容表;f3)删除备份在线表中在完全一致内容表中记录;g3)删除备份新表中在完全一致内容表中记录;h3)根据差异表中在线表需要删除的数据,删除在线表中的数据,并从备份在线表中将这部分数据删除; 3)从差异表中获取在线表需要增加的数据插入到在线表中,并从备份新表中将这部分数据删除;J3)将备份新表中更新单条内容数据生成到表A,更新多条内容数据生成到表B ;k3)从表A中顺序更新数据到在线表;13)从表B中顺序更新数据到在线表;m3)数据更新完成后,比较在线表和新表数据,确保数据无误;n3)上述步骤c3和d3可以并行进行,f3和g3可以并行进行,i3和j3可以并行进行,并且使用了小表进行更新,因此极大加快了处理速度,并且更新采用的是单条处理方式,不会对现网业务有影响;具体地,本发明的上述方案可以应用与多种场景,例如,对于网站身份证(webid)业务,可以利用其中的网站域名和域名类型数据,上传到云端,实现地址栏铭牌显示用,铭牌打开后的详情就是这个数据库里面的数据;如果有最新的数据,则可以根据该最新的数据与已有数据之间的差异生成差异数据(对应于上述的差异信息集),将差异数据(删除/增加/修改)上传到云端;再根据差异数据更新现网网络内容服务商(ICP)数据。此时,第一数据集可以为云端存储的网站身份证业务中的铭牌数据,第二数据集可以为更新后的铭牌数据。因此,采用本发明的技术方案,数据的更新过程并不会影响到网站的正常业务,并且能够有效提高更新的效率。此外,由于借助于中间表(差异信息集),可以避免保存大量的相同数据(即,可以不存储相同数据集),减少存储空间的占用。通过以上过程,可以快速的完成数据的处理时间,例如对于十万级的数据,导入数据、比较差异、更新数据可以在10分钟内完成;对于百万级的数据,导入数据、比较差异、更新数据可以在I个小时内完成;对于千万级的数据,导入 数据、比较差异、更新数据可以在3个小时内完成。因此,如上几个数量级的数据处理时间,比传统技术快很多倍。根据本发明的实施例,还提供了一种差异数据的处理装置。如图2所示,根据本发明实施例的差异数据的处理装置包括分类模块1,在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;构建模块2,用于构建多个差异信息集,并通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;更新模块3,用于根据多个差异信息集对第一数据集进行更新。此外,该装置可进一步包括导入模块(未示出),用于根据差异的类型,将第一数据集与第二数据集之间存在差异的数据导入到构建的多个差异信息集中,其中,在导入数据的过程中,导入模块禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,导入模块根据导入的全部数据生成该数据的索引和/或外键。综上所述,借助于本发明的上述技术方案,在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类,通过多个差异信息集表示第一数据集与第二数据集之间一个类型的差异,并根据多个差异信息集对第一数据集进行更新,能够在数据量很大的情况下,快速的生成差异并完成数据的更新,提高数据更新的效率并且避免更新数据时占用大量的存储空间。本发明的技术方案能够在数据量很大的情况下,快速导入数据、生成差异或更新数据,这种做法能够保证快速导入的是最新的数据,快速比较最新数据和现在的数据并且生成差异数据,然后再根据差异数据更新现在的数据,因此,通过上述方案,可以快速的处理数据,并且处理过程对现网业务没有影响。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种差异数据的处理方法,其特征在于,包括 在需要将第一数据集更新为第二数据集的情况下,对所述第一数据集与所述第二数据集之间的差异进行分类; 通过多个差异信息集表示所述第一数据集与所述第二数据集之间的差异,其中,每个差异信息集表示所述第一数据集与所述第二数据集之间一个类型的差异; 根据多个差异信息集对所述第一数据集进行更新。
2.根据权利要求I所述的处理方法,其特征在于,所述第一数据集与所述第二数据集之间的差异的分类包括以下类型之中的至少之一 第一类型,表示所述第一数据集相比于所述第二数据集增加的数据; 第二类型,表示所述第一数据集相比于所述第二数据集缺少的数据; 第三类型,表示所述第一数据集相比于所述第二数据集需要变更的数据。
3.根据权利要求I所述的处理方法,其特征在于,通过多个差异信息集表示所述第一数据集与所述第二数据集之间的差异包括以下至少之一 通过第一差异信息集表示所述第一类型的差异; 通过第二差异信息集表示所述第二类型的差异; 通过第三差异信息集表示所述第三类型的差异。
4.根据权利要求I所述的处理方法,其特征在于,进一步包括 通过相同信息集表示所述多个数据集之间彼此相同的数据。
5.根据权利要求I所述的处理方法,其特征在于,通过多个差异信息集表示所述第一数据集与所述第二数据集之间的差异进一步包括 将所述第一数据集与第二数据集之间存在差异的数据导入到所述多个差异信息集中。
6.根据权利要求5所述的处理方法,其特征在于,在导入数据的过程中,禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,根据导入的全部数据生成该数据的索引和/或外键。
7.根据权利要求I所述的处理方法,其特征在于,所述第一数据集为存储在数据库中的网站信息,所述第二数据集为更新后的网站信息。
8.根据权利要求I所述的处理方法,其特征在于,所述第一数据集为云端存储的网站身份证业务中的铭牌数据,所述第二数据集为更新后的铭牌数据。
9.根据权利要求I所述的处理方法,其特征在于,通过列表的方式来存储每个差异信息集。
10.一种差异数据的处理装置,其特征在于,包括 分类模块,用于在需要将第一数据集更新为第二数据集的情况下,对所述第一数据集与所述第二数据集之间的差异进行分类; 构建模块,用于构建多个差异信息集,并通过多个差异信息集表示所述第一数据集与所述第二数据集之间的差异,其中,每个差异信息集表示所述第一数据集与所述第二数据集之间一个类型的差异; 更新模块,用于根据多个差异信息集对所述第一数据集进行更新。
11.根据权利要求10所述的处理装置,其特征在于,进一步包括 导入模块,用于根据差异的类型,将所述第一数据集与第二数据集之间存在差异的数据 导入到构建的所述多个差异信息集中,其中,在导入数据的过程中,所述导入模块禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,所述导入模块根据导入的全部数据生成该数据的索引和/或外键。
全文摘要
本发明公开了一种差异数据的处理方法和装置,其中,该方法包括在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;根据多个差异信息集对第一数据集进行更新。本发明通过对第一数据集与第二数据集之间的差异进行分类,对多个差异信息集表示第一数据集与第二数据集之间一个类型的差异,并根据多个差异信息集对第一数据集进行更新,能够在数据量很大的情况下,快速的生成差异并完成数据的更新,提高数据更新的效率并且避免更新数据时占用大量的存储空间。
文档编号G06F17/30GK102855288SQ20121028131
公开日2013年1月2日 申请日期2012年8月8日 优先权日2012年8月8日
发明者龙专, 赵武, 何振科 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1