一种去除敏感数据敏感性的方法及装置制造方法

文档序号:6516405阅读:226来源:国知局
一种去除敏感数据敏感性的方法及装置制造方法【专利摘要】本发明公开了一种去除敏感数据敏感性的方法,用于提高去除敏感数据敏感性的效率并减少所需额外的存储开销,该方法包括:从M条数据记录中选取其中N条数据记录,记录N条数据记录的数据位置,其中,N、M为大于0的整数,N小于M;将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中;将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。本发明还公开了一种去除敏感数据敏感性的装置。【专利说明】一种去除敏感数据敏感性的方法及装置【
技术领域
】[0001]本发明涉及数据处理【
技术领域
】,具体涉及一种去除敏感数据敏感性的方法及装置。【
背景技术
】[0002]随着信息化进程的发展,在一些行业的数据库中经常存放着大量具有敏感性的原数据,例如姓名、地址、电话、身份证号、金额等等,这些数据如果泄露会对企业或个人造成恶劣影响。同时,对数据进行测试是测试数据库工作的基础,由于数据库中存储着大量敏感数据,因此在构造测试环境时,需要对这些数据进行“脱敏”处理,以使测试环境中的数据丧失敏感性,避免在数据测试过程中对敏感数据的泄露。[0003]在现有技术中,去除敏感数据敏感性可以采用混淆处理的方式,即将所有敏感数据打乱重新存储在原有位置。具体的,现有技术中通常将数据库中的全部包含敏感数据的记录装载到外部存储器中,如数据量为N,第一次从N个记录随机选出一个记录,与第N个记录的数据交换,然后再从N-1个记录中随机选出一个记录,与第N-1个记录的数据交换,循环执行上述步骤N次,完成敏感数据混淆,处理后再将全部记录装载回数据库中对应位置。但是,现有技术的方法使用了记录数量多一倍的额外外存开销,当记录数量巨大时,额外存储开销大,且访问速度慢,同时数据库与外存间多了两次全量磁盘存取,效率较低。【
发明内容】[0004]有鉴于此,本发明的主要目的是提供一种去除敏感数据敏感性的方法及装置,以解决现有技术中去除敏感数据敏感性时额外存储开销大且效率较低的问题。[0005]为解决上述问题,本发明提供的技术方案如下:[0006]一种去除敏感数据敏感性的方法,所述方法包括:[0007]从M条数据记录中选取其中N条数据记录,记录所述N条数据记录的数据位置,其中,N、M为大于O的整数,N小于M;[0008]将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中;[0009]将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;[0010]用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。[0011]相应的,所述从M条数据记录中选取其中N条数据记录,包括:[0012]随机选取M条数据记录中的N条数据记录。[0013]相应的,所述记录所述N条数据记录的数据位置,包括:[0014]当所述M条数据记录存储在数据库时,将所述N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;[0015]当所述M条数据记录存储在数据库导出文件时,将所述N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。[0016]相应的,所述将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换,包括:[0017]当所述M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;[0018]当所述M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如果否,则将该入口值对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。[0019]相应的,所述从M条数据记录中选取其中N条数据记录,包括:[0020]顺序选取M条数据记录中第I条至第N条数据记录。[0021]一种去除敏感数据敏感性的装置,所述装置包括:[0022]选取单元,用于从M条数据记录中选取其中N条数据记录,其中,N、M为大于O的整数,N小于M;[0023]记录单元,用于记录所述N条数据记录的数据位置;[0024]存储单元,用于将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中;[0025]第一交换单元,用于将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;[0026]第二交换单元,用于用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。[0027]相应的,所述选取单元具体用于:[0028]随机选取M条数据记录中的N条数据记录。[0029]相应的,所述记录单元具体用于:[0030]当所述M条数据记录存储在数据库时,将所述N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;[0031]当所述M条数据记录存储在数据库导出文件时,将所述N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。[0032]相应的,所述第一交换单元具体用于:[0033]当所述M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;[0034]当所述M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如果否,则将该入口值对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。[0035]相应的,所述选取单元具体用于:[0036]顺序选取M条数据记录中第I条至第N条数据记录。[0037]由此可见,本发明具有如下有益效果:[0038]本发明实施例将M条数据记录中的N条数据记录存储在设置的线性内存缓存中,与数据库或数据库导出文件中的其余数据记录进行随机交换,实现敏感数据敏感性去除,处理速度较快,同时由于内存缓存数据量远小于全量数据量,因此相比现有技术两次全量磁盘存取的效率有较大提高,且额外空间开销为线性内存缓存大小,不需要外部存储器存储开销,额外存储开销较小。【专利附图】【附图说明】[0039]图1为本发明去除敏感数据敏感性的方法实施例一的流程图;[0040]图2为本发明去除敏感数据敏感性的方法实施例二的流程图;[0041]图3为本发明去除敏感数据敏感性的方法实施例三的流程图;[0042]图4为本发明去除敏感数据敏感性的方法实施例四的流程图;[0043]图5为本发明去除敏感数据敏感性的方法实施例五的流程图;[0044]图6为本发明去除敏感数据敏感性的装置实施例的示意图。【具体实施方式】[0045]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明实施例作进一步详细的说明。[0046]本发明去除敏感数据敏感性的方法及装置,是针对现有技术中去除敏感数据敏感性时额外存储开销大且效率较低的问题,提出设全部数据记录总数为M,线性缓存大小为N条数据记录的长度,其中N、M为大于O的整数,M远大于N,则从M条数据记录中选取其中N条数据记录,将选取的N条数据记录所包含的敏感数据存储在线性内存缓存,随机选取线性内存缓存中存储的某条数据记录与原数据记录中未存储在线性内存缓存中的某条数据记录进行交换,最后再将交换后的线性内存缓存中的N条数据记录放回原来位置,完成敏感数据混淆的过程。由于线性内存缓存中的数据记录数量远小于原数据记录总数,因此磁盘存取的效率有较大提高,且数据交换速度较快,同时额外存储开销较小。[0047]基于上述思想,参见图1所示,本发明去除敏感数据敏感性的方法实施例一包括以下步骤:[0048]步骤101:从M条数据记录中选取其中N条数据记录,记录N条数据记录的数据位置,其中,N、M为大于O的整数,N小于M。[0049]设原数据总量为M条数据记录,M条数据记录可以保存在数据库中,也可以保存在数据库导出文件中。[0050]在本发明的一些实施例中,从M条数据记录中选取其中N条数据记录的具体实现可以包括:[0051]顺序选取M条数据记录中第I条至第N条数据记录。[0052]当顺序选取M条数据记录中第I条至第N条数据记录时,记录N条数据记录的数据位置,则可以通过直接记录N的数值对前N条数据记录进行标记。[0053]在本发明的一些实施例中,在本发明的一些实施例中,从M条数据记录中选取其中N条数据记录的具体实现也可以包括:[0054]随机选取M条数据记录中的N条数据记录。[0055]例如,当M条数据记录存储在数据库时,可以使用数据库提供的随机访问机制查询获取N条数据记录;当M条数据记录存储在数据库导出文件中时,可以随机产生N个入口值,每一个入口值对应一个数据记录。[0056]当随机选取M条数据记录中的N条数据记录时,在本发明的一些实施例中,记录N条数据记录的数据位置的具体实现可以包括:[0057]当M条数据记录存储在数据库时,将N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;[0058]当M条数据记录存储在数据库导出文件时,将N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。[0059]也就是说,当随机选取M条数据记录中的N条数据记录需要线性标记缓存对N条数据记录的数据位置进行保存,线性标记缓存的大小可以保存N条数据记录的主键信息或入口值。[0060]步骤102:将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中。[0061]将选取的N条数据记录中每一条数据记录所包含敏感数据存储在线性内存缓存中的一个存储单元中,一条数据记录中可以有多个敏感数据,在实际应用中可以以“I”进行分割,例如一个线性内存缓存存储单元存储内容为“敏感数据11敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行去除敏感性。[0062]线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据。[0063]步骤103:将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。[0064]当顺序选取M条数据记录中的N条数据记录时,M条数据记录中第I条至第N条数据记录存储在线性缓存中,即M条数据记录中从第N+1条数据记录开始为未被选取的数据记录,当访问第N+1条数据记录时,随机生成小于等于N的一个自然数P,将线性内存缓存中第P条数据记录所包含的敏感数据与原数据第N+1条数据记录所包含的敏感数据进行交换,以此类推,直到M条数据记录中每一条未被选取的数据记录所包含的敏感数据均与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。[0065]当随机选取M条数据记录中的N条数据记录时,在本发明的一些实施例中,将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换,包括:[0066]当M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;[0067]当M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如果否,则将该入口值对应的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。[0068]步骤104:用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。[0069]当顺序选取M条数据记录中的N条数据记录时,则可以将交换后线性内存缓存中的N条数据记录顺序放回原有第I条至第N条数据记录位置。[0070]当随机选取M条数据记录中的N条数据记录时,根据线性标记缓存所记录的数据位置将交换后线性内存缓存中的N条数据记录顺序放回原来位置。[0071]这样,本发明实施例将M条数据记录中的N条数据记录存储在设置的线性内存缓存中,与数据库或数据库导出文件中的其余数据记录进行随机交换,实现敏感数据敏感性去除,处理速度较快,同时由于内存缓存数据量远小于全量数据量,因此相比现有技术两次全量磁盘存取的效率有较大提高,且额外空间开销为线性内存缓存大小,不需要外部存储器存储开销,额外存储开销较小。[0072]本发明去除敏感数据敏感性的方法实施例二,针对顺序选取N条数据记录的情况,这种情况下只需要一个线性内存缓存,该线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据,缓存数据结构可以采用数组结构。在实际应用中具体又可以分为原数据存储在数据库中以及原数据存储在数据库导出文件中两种情况,去除敏感数据敏感性的方法实施例二针对原数据存储在数据库中进行说明,参见图2所示,方法实施例二可以包括以下步骤:[0073]步骤201:用游标逐条访问原数据(即M条数据记录)中每条数据记录,用计数器C表示当前访问数据记录顺序号。[0074]步骤202:如果C小于等于N,将当前数据记录所包含的敏感数据存储在线性内存缓存中。[0075]如果一条数据记录有多个敏感数据时,可以以“I”分割,例如一个线性内存缓存存储单元存储内容为“敏感数据1|敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行混淆去除敏感性。[0076]步骤203:如果C大于N,随机生成一个小于等于N的自然数P。将当前数据记录中所包含的敏感信息取出,如一条记录有多个敏感数据,则以“I”符号拼接起来,将该敏感数据与线性内存缓存中位置为第P条数据记录所包含的敏感信息进行交换,即更新当前数据记录所包含的敏感数据。[0077]步骤204:重新用游标逐条访问原数据中前N条数据记录,从I开始记录遍历顺序号C,C每次循环加I。[0078]步骤205:从线性内存缓存中C位置数据记录中取出敏感数据,即获取了混淆后的敏感数据,利用数据库更新语句用线性内存缓存中C位置数据记录所包含的敏感数据替换数据库中游标位置当前数据记录所包含的敏感数据。[0079]本发明去除敏感数据敏感性的方法实施例三,针对顺序选取N条数据记录的情况,这种情况下只需要一个线性内存缓存,该线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据,缓存数据结构可以采用数组结构。在实际应用中具体又可以分为原数据存储在数据库中以及原数据存储在数据库导出文件中两种情况,去除敏感数据敏感性的方法实施例三针对原数据存储在数据库导出文件中进行说明,参见图3所示,方法实施例三可以包括以下步骤:[0080]步骤301:顺序访问导出文件中的每条记录(一行为一条数据记录),用计数器C表示当前访问数据记录顺序号。[0081]步骤302:如果C小于等于N,将当前数据访问记录所包含的敏感数据存储在线性内存缓存中。[0082]如果一条数据记录有多个敏感数据时,可以以“I”分割,例如一个线性内存缓存存储单元存储内容为“敏感数据1|敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行混淆去除敏感性。[0083]步骤303:如果C大于N,随机生成一个小于等于N的自然数P。将当前数据记录中所包含的敏感信息取出,如一条记录有多个敏感数据信息,则以“I”符号拼接起来,将该敏感数据与线性内存缓存中位置为第P条数据记录所包含的敏感信息进行交换,即更新当前数据记录所包含的敏感数据。[0084]步骤304:重新从数据文件头顺序访问原数据中前N条数据记录(一行为一条记录),从I开始记录遍历顺序号c,C每次循环加I。[0085]步骤305:从线性内存缓存中C位置数据记录中取出敏感数据,即获取了混淆后的敏感数据,将当前文件指针所指向的数据记录所包含的敏感信息替换为从线性内存缓存中获取的混淆后的敏感数据。[0086]本发明去除敏感数据敏感性的方法实施例四,针对随机选取N条数据记录的情况,这种情况下需要一个线性内存缓存以及一个线性标记缓存,该线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据,该线性标记缓存的大小可以保存N条数据记录的主键信息或入口值,缓存数据结构可以采用数组结构。在实际应用中具体又可以分为原数据存储在数据库中以及原数据存储在数据库导出文件中两种情况,去除敏感数据敏感性的方法实施例三针对原数据存储在数据库中进行说明,参见图4所示,方法实施例四可以包括以下步骤:[0087]步骤401:使用数据库提供的随机访问机制查询获取N个数据记录。[0088]通用数据库一般都提供随机访问机制,如MYSQL语言可用语句select*fromtablenameorderbyrand()limitN;SQLSERVER语言可用语句selecttopN*fromtablenameorderbyNEffID();ORACLE语言可用语句SELECT*FR0MtablenameSAMPLE(100*N/M)等。[0089]步骤402:将获取的N个数据记录所包含的敏感数据信息存储在线性内存缓存中。[0090]如果一条数据记录有多个敏感数据时,可以以“I”分割,例如一个线性内存缓存存储单元存储内容为“敏感数据1|敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行混淆去除敏感性。[0091]步骤403:将获取的数据记录的主键信息存储在线性标记缓存中。[0092]如果主键信息是由几个列组成的组合键,可以以“I”分割,例如一个线性标记缓存存储单元存储内容为“主键列值11主键列值2”,表示一条数据记录由两个主键列值为唯一标记。在线性标记缓存中可以按记录值从小到大排序。[0093]步骤404:用游标逐条访问原数据(即M条数据记录)中每条数据记录,获取该数据记录的主键信息,如有多个列组成组合主键,则将键值用“I”符号拼接起来。[0094]步骤405:用拼接好的主键信息二分查找线性标记缓存,判断该主键信息是否存储在线性标记缓存中,如果是,返回步骤404获取下一条数据记录的主键信息,如果否,进入步骤406。[0095]步骤406:随机生成一个小于等于N的自然数P。将当前数据记录中所包含的敏感信息取出,如一条记录有多个敏感数据信息,则以“I”符号拼接起来,将该敏感信息与线性内存缓存中位置为第P条数据记录所包含的敏感信息进行交换,即更新原数据当前数据记录所包含的敏感数据。[0096]步骤407:遍历线性标记缓存,从I开始记录遍历顺序号C,C每次循环加I。[0097]步骤408:将当前线性标记缓存记录的键值信息以“I”符号切分开,获取主键信息,从线性内存缓存中第C条数据记录位置取出敏感数据,即获取混淆后的敏感数据,与主键信息一起组成更新语句,用线性内存缓存中C位置数据记录所包含的敏感数据替换数据库中主键信息对应位置的数据记录所包含的敏感数据。[0098]本发明去除敏感数据敏感性的方法实施例五,针对随机选取N条数据记录的情况,这种情况下需要一个线性内存缓存以及一个线性标记缓存,该线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据,该线性标记缓存的大小可以保存N条数据记录的主键信息或入口值,缓存数据结构可以采用数组结构。在实际应用中具体又可以分为原数据存储在数据库中以及原数据存储在数据库导出文件中两种情况,去除敏感数据敏感性的方法实施例三针对原数据存储在数据库导出文件中进行说明,参见图5所示,方法实施例五可以包括以下步骤:[0099]步骤501:随机生成N个数据记录入口值。[0100]具体的,可以按照以下方法随机生成N个数据记录入口值,将I至记录总数M的自然数分为N段,每段有自然数M/N取整个,在每个段的自然数中随机选取一个自然数,共N个自然数组成N个数据记录入口值。[0101]步骤502:将N个数据记录入口值存储在线性标记缓存中。线性标记缓存中可以按记录值从小到大排序。[0102]步骤503:根据N个数据记录入口值计算N个数据记录入口值偏移值:偏移值=数据记录入口值*一条数据记录占用字节数。通过文件随机访问N个数据记录入口值偏移值,取出对应N个数据记录入口值对应的敏感数据存储在线性内存缓存中。[0103]如果一条数据记录有多个敏感数据时,可以以“I”分割,例如一个线性内存缓存存储单元存储内容为“敏感数据1|敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行混淆去除敏感性。[0104]步骤504:顺序访问文件的每条数据记录(一行为一条数据记录),用计数器C表示当前访问数据记录顺序号,即每条数据记录的入口值。[0105]步骤505:用当前数据记录的入口值C二分查找线性标记缓存,判断该入口值是否存储在线性标记缓存中,如果是,返回步骤504获取下一条数据记录的入口值,如果否,进入步骤506。[0106]步骤506:随机生成一个小于等于N的自然数P。将当前数据记录中所包含的敏感信息取出,如一条记录有多个敏感数据信息,则以“I”符号拼接起来,将该敏感信息与线性内存缓存中位置为第P条数据记录所包含的敏感信息进行交换,即更新原数据当前数据记录所包含的敏感数据。[0107]步骤507:遍历线性标记缓存,从I开始记录遍历顺序号C,C每次循环加I。[0108]步骤508:根据当前线性标记缓存保存的数据记录入口值,计算N个数据记录入口偏移值:偏移值=数据记录入口值*一条数据记录占用字节数。从线性内存缓存中第C条数据记录位置取出敏感数据,即获取混淆后的敏感数据,通过文件随机访问该数据记录入口偏移值,将对应该条数据记录所包含的敏感信息替换为从线性内存缓存中获取的混淆后的敏感数据。[0109]本发明上述去除敏感数据敏感性的方法实施例,保持原数据的分布特征和逻辑特征。分布特性是指数据在重复度及覆盖面上表现出来的特点,在去除敏感数据敏感性的同时,需要保留原数据的分布特性。逻辑特性是指数据所表现出来的特定含义,例如敏感数据是地址数据,去除敏感性之后需要仍然具备地址数据的特点,即为保持了敏感数据的逻辑特性。本发明实施例通过对敏感数据进行混淆从而去除敏感性,对原数据的分布特征和逻辑特征并没有影响。[0110]本发明去除敏感数据敏感性的方法实施例二以及实施例三,针对顺序选取N条数据记录的情况,额外存储开销为I倍线性内存缓存数据量的内存开销,额外存储开销较小,在选取N条数据记录及将交换后的线性内存缓存中数据记录放回原有位置时仅增加的2倍线性内存缓存数据量的磁盘存取开销,且为顺序访问开销,由于线性内存缓存容量远小于全量数据量,故效率相较现有技术有很大提高。结果分散度达也可以达到次优的全量数据均勻分散。[0111]本发明去除敏感数据敏感性的方法实施例四以及实施例五,针对随机选取N条数据记录的情况,额外存储开销为I倍线性内存缓存数据量及I倍线性标记缓存数据量,额外存储开销不大,仅增加的2倍线性内存缓存数据量的磁盘存取开销,由于线性内存缓存容量远小于全量数据量,故效率相较现有技术有很大提高。处理结果分散度达到在全量数据中的均匀分散。[0112]考虑到对于超大的原有数据存储在数据库导出文件中的情况,在选取N条数据记录及将交换后的线性内存缓存中数据记录放回原有位置时增加的2倍线性内存缓存数据量的磁盘存取开销为随机访问开销,对于超大文件,访问效率相较于实施例二或三的顺序访问来说低一些。因此,可以根据经验值选择顺序选取N条数据记录或者随机选取N条数据记录的任一种情况。例如,当需处理原数据存储在数据库导出文件,且文件数据大于50GB的情况,使用顺序选取N条数据记录及后续处理过程,否则可以使用随机选取N条数据记录及后续处理过程。另外,线性内存缓存及线性标记缓存大小可以为全量数据量的1/500,且不小于100000,不大于1000000。[0113]参见图6所示,本发明去除敏感数据敏感性的装置实施例可以包括:[0114]选取单元601,用于从M条数据记录中选取其中N条数据记录,其中,N、M为大于O的整数,N小于M。[0115]设原数据总量为M条数据记录,M条数据记录可以保存在数据库中,也可以保存在数据库导出文件中。[0116]在本发明的一些实施例中,选取单元可以具体用于:顺序选取M条数据记录中第I条至第N条数据记录;或者,选取单元具体用于:随机选取M条数据记录中的N条数据记录。[0117]记录单元602,用于记录N条数据记录的数据位置。[0118]当随机选取M条数据记录中的N条数据记录时,在本发明的一些实施例中,记录单元可以具体用于:[0119]当M条数据记录存储在数据库时,将N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;[0120]当M条数据记录存储在数据库导出文件时,将N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。[0121]存储单元603,用于将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中。[0122]第一交换单元604,用于将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。[0123]在本发明的一些实施例中,第一交换单元可以具体用于:[0124]当M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;[0125]当M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如`果否,则将该入口值对应的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。[0126]第二交换单元605,用于用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。[0127]这样,本发明实施例将M条数据记录中的N条数据记录存储在设置的线性内存缓存中,与数据库或数据库导出文件中的其余数据记录进行随机交换,实现敏感数据敏感性去除,处理速度较快,同时由于内存缓存数据量远小于全量数据量,因此相比现有技术两次全量磁盘存取的效率有较大提高,且额外空间开销为线性内存缓存大小,不需要外部存储器存储开销,额外存储开销较小。[0128]需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。[0129]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。[0130]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【
技术领域
】内所公知的任意其它形式的存储介质中。[0131]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。【权利要求】1.一种去除敏感数据敏感性的方法,其特征在于,所述方法包括:从M条数据记录中选取其中N条数据记录,记录所述N条数据记录的数据位置,其中,N、M为大于O的整数,N小于M;将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中;将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。2.根据权利要求1所述的方法,其特征在于,所述从M条数据记录中选取其中N条数据记录,包括:随机选取M条数据记录中的N条数据记录。3.根据权利要求2所述的方法,其特征在于,所述记录所述N条数据记录的数据位置,包括:当所述M条数据记录存储在数据库时,将所述N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;当所述M条数据记录存储在数据库导出文件时,将所述N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。4.根据权利要求3所述的方法,其特征在于,所述将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换,包括:当所述M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;当所述M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如果否,则将该入口值对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。5.根据权利要求1所述的方法,其特征在于,所述从M条数据记录中选取其中N条数据记录,包括:顺序选取M条数据记录中第I条至第N条数据记录。6.一种去除敏感数据敏感性的装置,其特征在于,所述装置包括:选取单元,用于从M条数据记录中选取其中N条数据记录,其中,N、M为大于O的整数,N小于M;记录单元,用于记录所述N条数据记录的数据位置;存储单元,用于将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中;第一交换单元,用于将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;第二交换单元,用于用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。7.根据权利要求6所述的装置,其特征在于,所述选取单元具体用于:随机选取M条数据记录中的N条数据记录。8.根据权利要求7所述的装置,其特征在于,所述记录单元具体用于:当所述M条数据记录存储在数据库时,将所述N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;当所述M条数据记录存储在数据库导出文件时,将所述N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。9.根据权利要求8所述的装置,其特征在于,所述第一交换单元具体用于:当所述M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;当所述M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如果否,则将该入口值对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数`据记录所包含的敏感数据进行交换。10.根据权利要求6所述的装置,其特征在于,所述选取单元具体用于:顺序选取M条数据记录中第I条至第N条数据记录。【文档编号】G06F17/30GK103500226SQ201310503798【公开日】2014年1月8日申请日期:2013年10月23日优先权日:2013年10月23日【发明者】周期律,焦伟,蔡仕志,张旭春,于进,孟毅颖,涂晓军,王智忠,牛晔,严晨光,郭丽,周晓聪申请人:中国农业银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1