著录项信息
专利名称 | 差异数据的处理方法和装置 |
申请号 | CN201210281317.8 | 申请日期 | 2012-08-08 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2013-01-02 | 公开/公告号 | CN102855288A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 北京奇虎科技有限公司;奇智软件(北京)有限公司 | 申请人地址 | 北京市西城区新街口外大街28号102号楼3层332号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 奇安信科技集团股份有限公司 | 当前权利人 | 奇安信科技集团股份有限公司 |
发明人 | 龙专;赵武;何振科 |
代理机构 | 北京鼎佳达知识产权代理事务所(普通合伙) | 代理人 | 王伟锋;刘铁生 |
摘要
本发明公开了一种差异数据的处理方法和装置,其中,该方法包括在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;根据多个差异信息集对第一数据集进行更新。本发明通过对第一数据集与第二数据集之间的差异进行分类,对多个差异信息集表示第一数据集与第二数据集之间一个类型的差异,并根据多个差异信息集对第一数据集进行更新,能够在数据量很大的情况下,快速的生成差异并完成数据的更新,提高数据更新的效率并且避免更新数据时占用大量的存储空间。
1.一种差异数据的处理方法,其特征在于,包括:
在需要将第一数据集更新为第二数据集的情况下,备份所述第一数据集与所述第二数据集,生成所述第一数据集和所述第二数据集相同数据到相同信息集,删除备份第一数据集中在所述相同信息集中的数据,删除备份第二数据集中在所述相同信息集中的数据,从删除相同数据后的备份第一数据集与备份第二数据集中生成差异数据,对所述第一数据集与所述第二数据集之间的差异进行分类;
将所述第一数据集与第二数据集之间存在差异的数据导入到多个差异信息集中,在导入数据的过程中,禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,根据导入的全部数据生成该数据的索引和/或外键,其中,每个差异信息集表示所述第一数据集与所述第二数据集之间一个类型的差异;
根据多个差异信息集对所述第一数据集进行更新。
2.根据权利要求1所述的处理方法,其特征在于,所述第一数据集与所述第二数据集之间的差异的分类包括以下类型之中的至少之一:
第一类型,表示所述第一数据集相比于所述第二数据集增加的数据;
第二类型,表示所述第一数据集相比于所述第二数据集缺少的数据;
第三类型,表示所述第一数据集相比于所述第二数据集需要变更的数据。
3.根据权利要求2所述的处理方法,其特征在于,通过多个差异信息集表示所述第一数据集与所述第二数据集之间的差异包括以下至少之一:
通过第一差异信息集表示所述第一类型的差异;
通过第二差异信息集表示所述第二类型的差异;
通过第三差异信息集表示所述第三类型的差异。
4.根据权利要求1所述的处理方法,其特征在于,进一步包括:
通过相同信息集表示所述多个数据集之间彼此相同的数据。
5.根据权利要求1所述的处理方法,其特征在于,所述第一数据集为存储在数据库中的网站信息,所述第二数据集为更新后的网站信息。
6.根据权利要求1所述的处理方法,其特征在于,所述第一数据集为云端存储的网站身份证业务中的铭牌数据,所述第二数据集为更新后的铭牌数据。
7.根据权利要求1所述的处理方法,其特征在于,通过列表的方式来存储每个差异信息集。
8.一种差异数据的处理装置,其特征在于,包括:
分类模块,用于在需要将第一数据集更新为第二数据集的情况下,对所述第一数据集与所述第二数据集之间的差异进行分类;
构建模块,用于构建多个差异信息集,并通过多个差异信息集表示所述第一数据集与所述第二数据集之间的差异,其中,每个差异信息集表示所述第一数据集与所述第二数据集之间一个类型的差异;
更新模块,用于根据多个差异信息集对所述第一数据集进行更新;
所述装置还用于,备份所述第一数据集与所述第二数据集,生成所述第一数据集和所述第二数据集相同数据到相同信息集,删除备份第一数据集中在所述相同信息集中的数据,删除备份第二数据集中在所述相同信息集中的数据,从删除相同数据后的备份第一数据集与备份第二数据集中生成差异数据;
导入模块,用于根据差异的类型,将所述第一数据集与第二数据集之间存在差异的数据导入到构建的所述多个差异信息集中,其中,在导入数据的过程中,所述导入模块禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,所述导入模块根据导入的全部数据生成该数据的索引和/或外键。
差异数据的处理方法和装置\n技术领域\n[0001] 本发明涉及计算机领域,具体地,涉及一种差异数据的处理方法和装置。\n背景技术\n[0002] 随着每个公司业务的增长和规模的增大,数据量都会呈现几何级的增长;而采用传统技术导入数据和比较差异可能需要数小时或者数天,而长时间的操作在线数据库对业务影响很大,不能满足业务发展需要。在数据量很大的情况下,很难进行数据的快速导入、生成差异或更新。\n[0003] 针对相关技术中无法快速生成差异数据并导入或更新数据的问题,目前尚未提出有效的解决方案。\n发明内容\n[0004] 针对相关技术中无法快速导入数据、生成差异或更新数据的问题,本发明提出一种差异数据的处理方法和装置,能够在数据量很大的情况下,快速的导入数据、生成差异、或更新数据。\n[0005] 本发明的技术方案是这样实现的:\n[0006] 根据本发明的一个方面,提供了一种差异数据的处理方法,该方法包括:\n[0007] 在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;\n[0008] 通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;\n[0009] 根据多个差异信息集对第一数据集进行更新。\n[0010] 其中,第一数据集与第二数据集之间的差异的分类包括以下类型之中 的至少之一:\n[0011] 第一类型,表示第一数据集相比于第二数据集增加的数据;\n[0012] 第二类型,表示第一数据集相比于第二数据集缺少的数据;\n[0013] 第三类型,表示第一数据集相比于第二数据集需要变更的数据。\n[0014] 并且,通过多个差异信息集表示第一数据集与第二数据集之间的差异包括以下至少之一:\n[0015] 通过第一差异信息集表示第一类型的差异;\n[0016] 通过第二差异信息集表示第二类型的差异;\n[0017] 通过第三差异信息集表示第三类型的差异。\n[0018] 该方法进一步包括:\n[0019] 通过相同信息集表示多个数据集之间彼此相同的数据。\n[0020] 此外,通过多个差异信息集表示第一数据集与第二数据集之间的差异进一步包括:\n[0021] 将第一数据集与第二数据集之间存在差异的数据导入到多个差异信息集中。\n[0022] 另外,在导入数据的过程中,禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,根据导入的全部数据生成该数据的索引和/或外键。\n[0023] 并且,第一数据集为存储在数据库中的网站信息,第二数据集为更新后的网站信息。\n[0024] 可选地,第一数据集可以为云端存储的网站身份证业务中的铭牌数据,第二数据集可以为更新后的铭牌数据。\n[0025] 而且,通过列表的方式来存储每个差异信息集。\n[0026] 根据本发明的另一方面,提供了一种差异数据的处理装置。\n[0027] 该装置包括:\n[0028] 分类模块,用于在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;\n[0029] 构建模块,用于构建多个差异信息集,并通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;\n[0030] 更新模块,用于根据多个差异信息集对第一数据集进行更新。\n[0031] 该装置可进一步包括:\n[0032] 导入模块,用于根据差异的类型,将第一数据集与第二数据集之间存在差异的数据导入到构建的多个差异信息集中,其中,在导入数据的过程中,导入模块禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,导入模块根据导入的全部数据生成该数据的索引和/或外键。\n[0033] 本发明在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类,通过多个差异信息集表示第一数据集与第二数据集之间一个类型的差异,并根据多个差异信息集对第一数据集进行更新,能够在数据量很大的情况下,快速的生成差异并完成数据的更新,提高数据更新的效率并且避免更新数据时占用大量的存储空间。\n附图说明\n[0034] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0035] 图1是根据本发明实施例的差异数据的处理方法流程图;\n[0036] 图2是根据本发明实施例的差异数据的处理装置的框图。\n具体实施方式\n[0037] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。\n[0038] 根据本发明的实施例,提供了一种差异数据的处理方法。\n[0039] 如图1所示,根据本发明实施例的差异数据的处理方法包括:\n[0040] 步骤S101,在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;\n[0041] 步骤S103,通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;\n[0042] 步骤S105,根据多个差异信息集对第一数据集进行更新。\n[0043] 其中,第一数据集与第二数据集之间的差异的分类包括以下类型之中的至少之一:\n[0044] 第一类型,表示第一数据集相比于第二数据集增加的数据;\n[0045] 第二类型,表示第一数据集相比于第二数据集缺少的数据;\n[0046] 第三类型,表示第一数据集相比于第二数据集需要变更的数据。\n[0047] 并且,通过多个差异信息集表示第一数据集与第二数据集之间的差异包括以下至少之一:\n[0048] 通过第一差异信息集表示第一类型的差异;\n[0049] 通过第二差异信息集表示第二类型的差异;\n[0050] 通过第三差异信息集表示第三类型的差异。\n[0051] 该方法进一步包括:\n[0052] 通过相同信息集表示多个数据集之间彼此相同的数据。\n[0053] 此外,通过多个差异信息集表示第一数据集与第二数据集之间的差异进一步包括:\n[0054] 将第一数据集与第二数据集之间存在差异的数据导入到多个差异信息集中。\n[0055] 另外,在导入数据的过程中,禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,根据导入的全部数据生成该数据的索引和/或外键。因此,由于在导入数据的过程中不生成数据的索引和/或外键,并在导入之后一并生成,能够避免因为生成索引和/或外键而中断数据的导入,有效提高数据导入的速率。\n[0056] 并且,第一数据集为存储在数据库中的网站信息,第二数据集为更新后的网站信息。\n[0057] 而且,通过列表的方式来存储每个差异信息集。\n[0058] 例如,在实际应用中,本发明快速导入、生成和更新数据的具体过程 如下:\n[0059] (1)快速导入数据到数据库的步骤:\n[0060] a1)替换文件中的表名为临时表名,例如,原来的表名称为tb_a,则该处将原表名替换为tb_a_realtime;\n[0061] b1)在导入数据语句前禁用表的索引/外键等约束;\n[0062] c1)在导入数据语句结束后开启表的索引/外键等约束;\n[0063] d1)将文件格式转换为与操作系统相同的格式,字符集为数据库中指定的字符集,以防止出现乱码;\n[0064] e1)使用批量工具/命令oracle的sql loader、mysql的mysqlimport、mysql的命令(`which mysql`-h${db_host}-u${db_user}-p${db_pwd}${db_name}<$file_name)等导入数据。\n[0065] 通过以上步骤即可以实现快速导入数据,比普通方法(直接执行SQL、非批量等)快至少10倍。\n[0066] (2)快速生成差异数据的步骤:\n[0067] a2)新建保存中间结果的表若干个(备份在线表、相同内容表、比较中间表等),全部用中间表进行操作可以避免对现网业务产生影响;\n[0068] b2)备份在线表和新表数据;\n[0069] c2)生成在线表和新表相同数据到相同内容表;\n[0070] d2)删除备份在线表里面在相同内容表里面的数据;\n[0071] e2)删除备份新表里面在相同内容表里面的数据;\n[0072] f2)从删除相同记录后的小记录集备份在线表和新表中生成差异数据;\n[0073] g2)上述步骤b2和c2可以并行进行,d和e可以并行进行;并且使用了小表进行比较,因此极大加快了处理速度。\n[0074] (3)快速更新数据的步骤:\n[0075] a3)备份完整在线表数据,在出现错误的时候可恢复数据;\n[0076] b3)新建保存中间结果的表若干个(备份在线表、备份新表、完全一致内容表),全部用中间表进行操作可以避免对现网业务产生影响;\n[0077] c3)生成备份在线表数据;\n[0078] d3)生成备份新表数据;\n[0079] e3)从备份在线表和备份新表中获取完全一致内容表;\n[0080] f3)删除备份在线表中在完全一致内容表中记录;\n[0081] g3)删除备份新表中在完全一致内容表中记录;\n[0082] h3)根据差异表中在线表需要删除的数据,删除在线表中的数据,并从备份在线表中将这部分数据删除;\n[0083] i3)从差异表中获取在线表需要增加的数据插入到在线表中,并从备份新表中将这部分数据删除;\n[0084] j3)将备份新表中更新单条内容数据生成到表A,更新多条内容数据生成到表B;\n[0085] k3)从表A中顺序更新数据到在线表;\n[0086] l3)从表B中顺序更新数据到在线表;\n[0087] m3)数据更新完成后,比较在线表和新表数据,确保数据无误;\n[0088] n3)上述步骤c3和d3可以并行进行,f3和g3可以并行进行,i3和j3可以并行进行,并且使用了小表进行更新,因此极大加快了处理速度,并且更新采用的是单条处理方式,不会对现网业务有影响;\n[0089] 具体地,本发明的上述方案可以应用与多种场景,例如,对于网站身份证(webid)业务,可以利用其中的网站域名和域名类型数据,上传到云端,实现地址栏铭牌显示用,铭牌打开后的详情就是这个数据库里面的数据;如果有最新的数据,则可以根据该最新的数据与已有数据之间的差异生成差异数据(对应于上述的差异信息集),将差异数据(删除/增加/修改)上传到云端;再根据差异数据更新现网网络内容服务商(ICP)数据。此时,第一数据集可以为云端存储的网站身份证业务中的铭牌数据,第二数据集可以为更新后的铭牌数据。因此,采用本发明的技术方案,数据的更新过程并不会影响到网站的正常业务,并且能够有效提高更新的效率。此外,由于借助于中间表(差异信息集),可以避免保存大量的相同数据(即,可以不存储相同数据集),减少存储空间的占用。\n[0090] 通过以上过程,可以快速的完成数据的处理时间,例如:\n[0091] 对于十万级的数据,导入数据、比较差异、更新数据可以在10分钟内完成;\n[0092] 对于百万级的数据,导入数据、比较差异、更新数据可以在1个小时内完成;\n[0093] 对于千万级的数据,导入数据、比较差异、更新数据可以在3个小时内完成。\n[0094] 因此,如上几个数量级的数据处理时间,比传统技术快很多倍。\n[0095] 根据本发明的实施例,还提供了一种差异数据的处理装置。\n[0096] 如图2所示,根据本发明实施例的差异数据的处理装置包括:\n[0097] 分类模块1,在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类;\n[0098] 构建模块2,用于构建多个差异信息集,并通过多个差异信息集表示第一数据集与第二数据集之间的差异,其中,每个差异信息集表示第一数据集与第二数据集之间一个类型的差异;\n[0099] 更新模块3,用于根据多个差异信息集对第一数据集进行更新。\n[0100] 此外,该装置可进一步包括:\n[0101] 导入模块(未示出),用于根据差异的类型,将第一数据集与第二数据集之间存在差异的数据导入到构建的多个差异信息集中,其中,在导入数据的过程中,导入模块禁止根据导入的数据生成索引和/或外键;并且,在导入数据之后,导入模块根据导入的全部数据生成该数据的索引和/或外键。\n[0102] 综上所述,借助于本发明的上述技术方案,在需要将第一数据集更新为第二数据集的情况下,对第一数据集与第二数据集之间的差异进行分类,通过多个差异信息集表示第一数据集与第二数据集之间一个类型的差异,并根据多个差异信息集对第一数据集进行更新,能够在数据量很大的情况下,快速的生成差异并完成数据的更新,提高数据更新的效率并且避免更新数据时占用大量的存储空间。本发明的技术方案能够在数据量很大的情况下,快速导入数据、生成差异或更新数据,这种做法能够保证快速导入的是最新的数据,快速比较最新数据和现在的数据并且生成差异数据,然后再根据差异数据更新现在的数据,因此,通过上述方案,可以快速的处理数据,并且处理过程对现网业务没有影响。\n[0103] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2019-07-30
专利权人的姓名或者名称、地址的变更
专利权人由北京奇安信科技有限公司变更为奇安信科技集团股份有限公司
地址由北京市朝阳区酒仙桥路甲10号3号楼15层17层1701-26变更为北京市西城区新街口外大街28号102号楼3层332号
- 2017-11-03
- 2016-12-21
专利申请权的转移
登记生效日: 2016.11.28
申请人由北京奇虎科技有限公司变更为北京奇安信科技有限公司
地址由100088 北京市西城区新街口外大街28号D座112室(德胜园区)变更为100088 北京市朝阳区酒仙桥路甲10号3号楼15层17层1701-26
申请人由奇智软件(北京)有限公司变更为空
- 2013-02-20
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201210281317.8
申请日: 2012.08.08
- 2013-01-02
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-04-27
|
2010-12-22
| | |
2
| |
2005-03-30
|
2003-09-28
| | |
3
| |
2009-12-23
|
2007-12-14
| | |
4
| |
2012-06-27
|
2012-01-13
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |