CN103500226A - 一种去除敏感数据敏感性的方法及装置 - Google Patents
一种去除敏感数据敏感性的方法及装置 Download PDFInfo
- Publication number
- CN103500226A CN103500226A CN201310503798.7A CN201310503798A CN103500226A CN 103500226 A CN103500226 A CN 103500226A CN 201310503798 A CN201310503798 A CN 201310503798A CN 103500226 A CN103500226 A CN 103500226A
- Authority
- CN
- China
- Prior art keywords
- data
- data record
- bar
- record
- sensitive
- 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.)
- Granted
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种去除敏感数据敏感性的方法,用于提高去除敏感数据敏感性的效率并减少所需额外的存储开销,该方法包括:从M条数据记录中选取其中N条数据记录,记录N条数据记录的数据位置,其中,N、M为大于0的整数,N小于M;将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中;将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。本发明还公开了一种去除敏感数据敏感性的装置。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种去除敏感数据敏感性的方法及装置。
背景技术
随着信息化进程的发展,在一些行业的数据库中经常存放着大量具有敏感性的原数据,例如姓名、地址、电话、身份证号、金额等等,这些数据如果泄露会对企业或个人造成恶劣影响。同时,对数据进行测试是测试数据库工作的基础,由于数据库中存储着大量敏感数据,因此在构造测试环境时,需要对这些数据进行“脱敏”处理,以使测试环境中的数据丧失敏感性,避免在数据测试过程中对敏感数据的泄露。
在现有技术中,去除敏感数据敏感性可以采用混淆处理的方式,即将所有敏感数据打乱重新存储在原有位置。具体的,现有技术中通常将数据库中的全部包含敏感数据的记录装载到外部存储器中,如数据量为N,第一次从N个记录随机选出一个记录,与第N个记录的数据交换,然后再从N-1个记录中随机选出一个记录,与第N-1个记录的数据交换,循环执行上述步骤N次,完成敏感数据混淆,处理后再将全部记录装载回数据库中对应位置。但是,现有技术的方法使用了记录数量多一倍的额外外存开销,当记录数量巨大时,额外存储开销大,且访问速度慢,同时数据库与外存间多了两次全量磁盘存取,效率较低。
发明内容
有鉴于此,本发明的主要目的是提供一种去除敏感数据敏感性的方法及装置,以解决现有技术中去除敏感数据敏感性时额外存储开销大且效率较低的问题。
为解决上述问题,本发明提供的技术方案如下:
一种去除敏感数据敏感性的方法,所述方法包括:
从M条数据记录中选取其中N条数据记录,记录所述N条数据记录的数据位置,其中,N、M为大于0的整数,N小于M;
将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中;
将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;
用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。
相应的,所述从M条数据记录中选取其中N条数据记录,包括:
随机选取M条数据记录中的N条数据记录。
相应的,所述记录所述N条数据记录的数据位置,包括:
当所述M条数据记录存储在数据库时,将所述N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;
当所述M条数据记录存储在数据库导出文件时,将所述N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。
相应的,所述将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换,包括:
当所述M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;
当所述M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如果否,则将该入口值对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。
相应的,所述从M条数据记录中选取其中N条数据记录,包括:
顺序选取M条数据记录中第1条至第N条数据记录。
一种去除敏感数据敏感性的装置,所述装置包括:
选取单元,用于从M条数据记录中选取其中N条数据记录,其中,N、M为大于0的整数,N小于M;
记录单元,用于记录所述N条数据记录的数据位置;
存储单元,用于将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中;
第一交换单元,用于将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;
第二交换单元,用于用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。
相应的,所述选取单元具体用于:
随机选取M条数据记录中的N条数据记录。
相应的,所述记录单元具体用于:
当所述M条数据记录存储在数据库时,将所述N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;
当所述M条数据记录存储在数据库导出文件时,将所述N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。
相应的,所述第一交换单元具体用于:
当所述M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;
当所述M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在所述线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如果否,则将该入口值对应的数据记录所包含的敏感数据与所述线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。
相应的,所述选取单元具体用于:
顺序选取M条数据记录中第1条至第N条数据记录。
由此可见,本发明具有如下有益效果:
本发明实施例将M条数据记录中的N条数据记录存储在设置的线性内存缓存中,与数据库或数据库导出文件中的其余数据记录进行随机交换,实现敏感数据敏感性去除,处理速度较快,同时由于内存缓存数据量远小于全量数据量,因此相比现有技术两次全量磁盘存取的效率有较大提高,且额外空间开销为线性内存缓存大小,不需要外部存储器存储开销,额外存储开销较小。
附图说明
图1为本发明去除敏感数据敏感性的方法实施例一的流程图;
图2为本发明去除敏感数据敏感性的方法实施例二的流程图;
图3为本发明去除敏感数据敏感性的方法实施例三的流程图;
图4为本发明去除敏感数据敏感性的方法实施例四的流程图;
图5为本发明去除敏感数据敏感性的方法实施例五的流程图;
图6为本发明去除敏感数据敏感性的装置实施例的示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
本发明去除敏感数据敏感性的方法及装置,是针对现有技术中去除敏感数据敏感性时额外存储开销大且效率较低的问题,提出设全部数据记录总数为M,线性缓存大小为N条数据记录的长度,其中N、M为大于0的整数,M远大于N,则从M条数据记录中选取其中N条数据记录,将选取的N条数据记录所包含的敏感数据存储在线性内存缓存,随机选取线性内存缓存中存储的某条数据记录与原数据记录中未存储在线性内存缓存中的某条数据记录进行交换,最后再将交换后的线性内存缓存中的N条数据记录放回原来位置,完成敏感数据混淆的过程。由于线性内存缓存中的数据记录数量远小于原数据记录总数,因此磁盘存取的效率有较大提高,且数据交换速度较快,同时额外存储开销较小。
基于上述思想,参见图1所示,本发明去除敏感数据敏感性的方法实施例一包括以下步骤:
步骤101:从M条数据记录中选取其中N条数据记录,记录N条数据记录的数据位置,其中,N、M为大于0的整数,N小于M。
设原数据总量为M条数据记录,M条数据记录可以保存在数据库中,也可以保存在数据库导出文件中。
在本发明的一些实施例中,从M条数据记录中选取其中N条数据记录的具体实现可以包括:
顺序选取M条数据记录中第1条至第N条数据记录。
当顺序选取M条数据记录中第1条至第N条数据记录时,记录N条数据记录的数据位置,则可以通过直接记录N的数值对前N条数据记录进行标记。
在本发明的一些实施例中,在本发明的一些实施例中,从M条数据记录中选取其中N条数据记录的具体实现也可以包括:
随机选取M条数据记录中的N条数据记录。
例如,当M条数据记录存储在数据库时,可以使用数据库提供的随机访问机制查询获取N条数据记录;当M条数据记录存储在数据库导出文件中时,可以随机产生N个入口值,每一个入口值对应一个数据记录。
当随机选取M条数据记录中的N条数据记录时,在本发明的一些实施例中,记录N条数据记录的数据位置的具体实现可以包括:
当M条数据记录存储在数据库时,将N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;
当M条数据记录存储在数据库导出文件时,将N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。
也就是说,当随机选取M条数据记录中的N条数据记录需要线性标记缓存对N条数据记录的数据位置进行保存,线性标记缓存的大小可以保存N条数据记录的主键信息或入口值。
步骤102:将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中。
将选取的N条数据记录中每一条数据记录所包含敏感数据存储在线性内存缓存中的一个存储单元中,一条数据记录中可以有多个敏感数据,在实际应用中可以以“|”进行分割,例如一个线性内存缓存存储单元存储内容为“敏感数据1|敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行去除敏感性。
线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据。
步骤103:将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。
当顺序选取M条数据记录中的N条数据记录时,M条数据记录中第1条至第N条数据记录存储在线性缓存中,即M条数据记录中从第N+1条数据记录开始为未被选取的数据记录,当访问第N+1条数据记录时,随机生成小于等于N的一个自然数P,将线性内存缓存中第P条数据记录所包含的敏感数据与原数据第N+1条数据记录所包含的敏感数据进行交换,以此类推,直到M条数据记录中每一条未被选取的数据记录所包含的敏感数据均与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。
当随机选取M条数据记录中的N条数据记录时,在本发明的一些实施例中,将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换,包括:
当M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;
当M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如果否,则将该入口值对应的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。
步骤104:用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。
当顺序选取M条数据记录中的N条数据记录时,则可以将交换后线性内存缓存中的N条数据记录顺序放回原有第1条至第N条数据记录位置。
当随机选取M条数据记录中的N条数据记录时,根据线性标记缓存所记录的数据位置将交换后线性内存缓存中的N条数据记录顺序放回原来位置。
这样,本发明实施例将M条数据记录中的N条数据记录存储在设置的线性内存缓存中,与数据库或数据库导出文件中的其余数据记录进行随机交换,实现敏感数据敏感性去除,处理速度较快,同时由于内存缓存数据量远小于全量数据量,因此相比现有技术两次全量磁盘存取的效率有较大提高,且额外空间开销为线性内存缓存大小,不需要外部存储器存储开销,额外存储开销较小。
本发明去除敏感数据敏感性的方法实施例二,针对顺序选取N条数据记录的情况,这种情况下只需要一个线性内存缓存,该线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据,缓存数据结构可以采用数组结构。在实际应用中具体又可以分为原数据存储在数据库中以及原数据存储在数据库导出文件中两种情况,去除敏感数据敏感性的方法实施例二针对原数据存储在数据库中进行说明,参见图2所示,方法实施例二可以包括以下步骤:
步骤201:用游标逐条访问原数据(即M条数据记录)中每条数据记录,用计数器C表示当前访问数据记录顺序号。
步骤202:如果C小于等于N,将当前数据记录所包含的敏感数据存储在线性内存缓存中。
如果一条数据记录有多个敏感数据时,可以以“|”分割,例如一个线性内存缓存存储单元存储内容为“敏感数据1|敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行混淆去除敏感性。
步骤203:如果C大于N,随机生成一个小于等于N的自然数P。将当前数据记录中所包含的敏感信息取出,如一条记录有多个敏感数据,则以“|”符号拼接起来,将该敏感数据与线性内存缓存中位置为第P条数据记录所包含的敏感信息进行交换,即更新当前数据记录所包含的敏感数据。
步骤204:重新用游标逐条访问原数据中前N条数据记录,从1开始记录遍历顺序号C,C每次循环加1。
步骤205:从线性内存缓存中C位置数据记录中取出敏感数据,即获取了混淆后的敏感数据,利用数据库更新语句用线性内存缓存中C位置数据记录所包含的敏感数据替换数据库中游标位置当前数据记录所包含的敏感数据。
本发明去除敏感数据敏感性的方法实施例三,针对顺序选取N条数据记录的情况,这种情况下只需要一个线性内存缓存,该线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据,缓存数据结构可以采用数组结构。在实际应用中具体又可以分为原数据存储在数据库中以及原数据存储在数据库导出文件中两种情况,去除敏感数据敏感性的方法实施例三针对原数据存储在数据库导出文件中进行说明,参见图3所示,方法实施例三可以包括以下步骤:
步骤301:顺序访问导出文件中的每条记录(一行为一条数据记录),用计数器C表示当前访问数据记录顺序号。
步骤302:如果C小于等于N,将当前数据访问记录所包含的敏感数据存储在线性内存缓存中。
如果一条数据记录有多个敏感数据时,可以以“|”分割,例如一个线性内存缓存存储单元存储内容为“敏感数据1|敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行混淆去除敏感性。
步骤303:如果C大于N,随机生成一个小于等于N的自然数P。将当前数据记录中所包含的敏感信息取出,如一条记录有多个敏感数据信息,则以“|”符号拼接起来,将该敏感数据与线性内存缓存中位置为第P条数据记录所包含的敏感信息进行交换,即更新当前数据记录所包含的敏感数据。
步骤304:重新从数据文件头顺序访问原数据中前N条数据记录(一行为一条记录),从1开始记录遍历顺序号C,C每次循环加1。
步骤305:从线性内存缓存中C位置数据记录中取出敏感数据,即获取了混淆后的敏感数据,将当前文件指针所指向的数据记录所包含的敏感信息替换为从线性内存缓存中获取的混淆后的敏感数据。
本发明去除敏感数据敏感性的方法实施例四,针对随机选取N条数据记录的情况,这种情况下需要一个线性内存缓存以及一个线性标记缓存,该线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据,该线性标记缓存的大小可以保存N条数据记录的主键信息或入口值,缓存数据结构可以采用数组结构。在实际应用中具体又可以分为原数据存储在数据库中以及原数据存储在数据库导出文件中两种情况,去除敏感数据敏感性的方法实施例三针对原数据存储在数据库中进行说明,参见图4所示,方法实施例四可以包括以下步骤:
步骤401:使用数据库提供的随机访问机制查询获取N个数据记录。
通用数据库一般都提供随机访问机制,如MYSQL语言可用语句select*from tablename order by rand()limit N;SQLSERVER语言可用语句select topN*from tablename order by NEWID();ORACLE语言可用语句SELECT*FROM tablename SAMPLE(100*N/M)等。
步骤402:将获取的N个数据记录所包含的敏感数据信息存储在线性内存缓存中。
如果一条数据记录有多个敏感数据时,可以以“|”分割,例如一个线性内存缓存存储单元存储内容为“敏感数据1|敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行混淆去除敏感性。
步骤403:将获取的数据记录的主键信息存储在线性标记缓存中。
如果主键信息是由几个列组成的组合键,可以以“|”分割,例如一个线性标记缓存存储单元存储内容为“主键列值1|主键列值2”,表示一条数据记录由两个主键列值为唯一标记。在线性标记缓存中可以按记录值从小到大排序。
步骤404:用游标逐条访问原数据(即M条数据记录)中每条数据记录,获取该数据记录的主键信息,如有多个列组成组合主键,则将键值用“|”符号拼接起来。
步骤405:用拼接好的主键信息二分查找线性标记缓存,判断该主键信息是否存储在线性标记缓存中,如果是,返回步骤404获取下一条数据记录的主键信息,如果否,进入步骤406。
步骤406:随机生成一个小于等于N的自然数P。将当前数据记录中所包含的敏感信息取出,如一条记录有多个敏感数据信息,则以“|”符号拼接起来,将该敏感信息与线性内存缓存中位置为第P条数据记录所包含的敏感信息进行交换,即更新原数据当前数据记录所包含的敏感数据。
步骤407:遍历线性标记缓存,从1开始记录遍历顺序号C,C每次循环加1。
步骤408:将当前线性标记缓存记录的键值信息以“|”符号切分开,获取主键信息,从线性内存缓存中第C条数据记录位置取出敏感数据,即获取混淆后的敏感数据,与主键信息一起组成更新语句,用线性内存缓存中C位置数据记录所包含的敏感数据替换数据库中主键信息对应位置的数据记录所包含的敏感数据。
本发明去除敏感数据敏感性的方法实施例五,针对随机选取N条数据记录的情况,这种情况下需要一个线性内存缓存以及一个线性标记缓存,该线性内存缓存的大小可以保存N条数据记录的所包含的敏感数据,该线性标记缓存的大小可以保存N条数据记录的主键信息或入口值,缓存数据结构可以采用数组结构。在实际应用中具体又可以分为原数据存储在数据库中以及原数据存储在数据库导出文件中两种情况,去除敏感数据敏感性的方法实施例三针对原数据存储在数据库导出文件中进行说明,参见图5所示,方法实施例五可以包括以下步骤:
步骤501:随机生成N个数据记录入口值。
具体的,可以按照以下方法随机生成N个数据记录入口值,将1至记录总数M的自然数分为N段,每段有自然数M/N取整个,在每个段的自然数中随机选取一个自然数,共N个自然数组成N个数据记录入口值。
步骤502:将N个数据记录入口值存储在线性标记缓存中。线性标记缓存中可以按记录值从小到大排序。
步骤503:根据N个数据记录入口值计算N个数据记录入口值偏移值:偏移值=数据记录入口值*一条数据记录占用字节数。通过文件随机访问N个数据记录入口值偏移值,取出对应N个数据记录入口值对应的敏感数据存储在线性内存缓存中。
如果一条数据记录有多个敏感数据时,可以以“|”分割,例如一个线性内存缓存存储单元存储内容为“敏感数据1|敏感数据2|敏感数据3”,表示一条数据记录有三个敏感数据需要进行混淆去除敏感性。
步骤504:顺序访问文件的每条数据记录(一行为一条数据记录),用计数器C表示当前访问数据记录顺序号,即每条数据记录的入口值。
步骤505:用当前数据记录的入口值C二分查找线性标记缓存,判断该入口值是否存储在线性标记缓存中,如果是,返回步骤504获取下一条数据记录的入口值,如果否,进入步骤506。
步骤506:随机生成一个小于等于N的自然数P。将当前数据记录中所包含的敏感信息取出,如一条记录有多个敏感数据信息,则以“|”符号拼接起来,将该敏感信息与线性内存缓存中位置为第P条数据记录所包含的敏感信息进行交换,即更新原数据当前数据记录所包含的敏感数据。
步骤507:遍历线性标记缓存,从1开始记录遍历顺序号C,C每次循环加1。
步骤508:根据当前线性标记缓存保存的数据记录入口值,计算N个数据记录入口偏移值:偏移值=数据记录入口值*一条数据记录占用字节数。从线性内存缓存中第C条数据记录位置取出敏感数据,即获取混淆后的敏感数据,通过文件随机访问该数据记录入口偏移值,将对应该条数据记录所包含的敏感信息替换为从线性内存缓存中获取的混淆后的敏感数据。
本发明上述去除敏感数据敏感性的方法实施例,保持原数据的分布特征和逻辑特征。分布特性是指数据在重复度及覆盖面上表现出来的特点,在去除敏感数据敏感性的同时,需要保留原数据的分布特性。逻辑特性是指数据所表现出来的特定含义,例如敏感数据是地址数据,去除敏感性之后需要仍然具备地址数据的特点,即为保持了敏感数据的逻辑特性。本发明实施例通过对敏感数据进行混淆从而去除敏感性,对原数据的分布特征和逻辑特征并没有影响。
本发明去除敏感数据敏感性的方法实施例二以及实施例三,针对顺序选取N条数据记录的情况,额外存储开销为1倍线性内存缓存数据量的内存开销,额外存储开销较小,在选取N条数据记录及将交换后的线性内存缓存中数据记录放回原有位置时仅增加的2倍线性内存缓存数据量的磁盘存取开销,且为顺序访问开销,由于线性内存缓存容量远小于全量数据量,故效率相较现有技术有很大提高。结果分散度达也可以达到次优的全量数据均匀分散。
本发明去除敏感数据敏感性的方法实施例四以及实施例五,针对随机选取N条数据记录的情况,额外存储开销为1倍线性内存缓存数据量及1倍线性标记缓存数据量,额外存储开销不大,仅增加的2倍线性内存缓存数据量的磁盘存取开销,由于线性内存缓存容量远小于全量数据量,故效率相较现有技术有很大提高。处理结果分散度达到在全量数据中的均匀分散。
考虑到对于超大的原有数据存储在数据库导出文件中的情况,在选取N条数据记录及将交换后的线性内存缓存中数据记录放回原有位置时增加的2倍线性内存缓存数据量的磁盘存取开销为随机访问开销,对于超大文件,访问效率相较于实施例二或三的顺序访问来说低一些。因此,可以根据经验值选择顺序选取N条数据记录或者随机选取N条数据记录的任一种情况。例如,当需处理原数据存储在数据库导出文件,且文件数据大于50GB的情况,使用顺序选取N条数据记录及后续处理过程,否则可以使用随机选取N条数据记录及后续处理过程。另外,线性内存缓存及线性标记缓存大小可以为全量数据量的1/500,且不小于100000,不大于1000000。
参见图6所示,本发明去除敏感数据敏感性的装置实施例可以包括:
选取单元601,用于从M条数据记录中选取其中N条数据记录,其中,N、M为大于0的整数,N小于M。
设原数据总量为M条数据记录,M条数据记录可以保存在数据库中,也可以保存在数据库导出文件中。
在本发明的一些实施例中,选取单元可以具体用于:顺序选取M条数据记录中第1条至第N条数据记录;或者,选取单元具体用于:随机选取M条数据记录中的N条数据记录。
记录单元602,用于记录N条数据记录的数据位置。
当随机选取M条数据记录中的N条数据记录时,在本发明的一些实施例中,记录单元可以具体用于:
当M条数据记录存储在数据库时,将N条数据记录中每一条数据记录的主键信息存储在线性标记缓存中;
当M条数据记录存储在数据库导出文件时,将N条数据记录中每一条数据记录的入口值存储在线性标记缓存中。
存储单元603,用于将选取的N条数据记录所包含的敏感数据存储在设置的线性内存缓存中。
第一交换单元604,用于将M条数据记录中每一条未被选取的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。
在本发明的一些实施例中,第一交换单元可以具体用于:
当M条数据记录存储在数据库时,顺序获取M条数据记录中每一条数据记录的主键信息,判断该主键信息是否存储在线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的主键信息,如果否,则将该主键信息对应的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换;
当M条数据记录存储在数据库导出文件时,顺序获取M条数据记录中每一条数据记录的入口值,判断该入口值是否存储在线性标记缓存中,如果是,则获取M条数据记录中下一条数据记录的入口值,如果否,则将该入口值对应的数据记录所包含的敏感数据与线性内存缓存中随机一条数据记录所包含的敏感数据进行交换。
第二交换单元605,用于用交换后线性内存缓存中的N条数据记录所包含的敏感数据替换记录的数据位置上原有的N条数据记录所包含的敏感数据。
这样,本发明实施例将M条数据记录中的N条数据记录存储在设置的线性内存缓存中,与数据库或数据库导出文件中的其余数据记录进行随机交换,实现敏感数据敏感性去除,处理速度较快,同时由于内存缓存数据量远小于全量数据量,因此相比现有技术两次全量磁盘存取的效率有较大提高,且额外空间开销为线性内存缓存大小,不需要外部存储器存储开销,额外存储开销较小。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种去除敏感数据敏感性的方法,其特征在于,所述方法包括:
从M条数据记录中选取其中N条数据记录,记录所述N条数据记录的数据位置,其中,N、M为大于0的整数,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条数据记录中第1条至第N条数据记录。
6.一种去除敏感数据敏感性的装置,其特征在于,所述装置包括:
选取单元,用于从M条数据记录中选取其中N条数据记录,其中,N、M为大于0的整数,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条数据记录中第1条至第N条数据记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310503798.7A CN103500226B (zh) | 2013-10-23 | 2013-10-23 | 一种去除敏感数据敏感性的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310503798.7A CN103500226B (zh) | 2013-10-23 | 2013-10-23 | 一种去除敏感数据敏感性的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103500226A true CN103500226A (zh) | 2014-01-08 |
CN103500226B CN103500226B (zh) | 2016-05-25 |
Family
ID=49865437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310503798.7A Active CN103500226B (zh) | 2013-10-23 | 2013-10-23 | 一种去除敏感数据敏感性的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103500226B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243063A (zh) * | 2014-06-18 | 2016-01-13 | 北京新媒传信科技有限公司 | 信息推荐的方法和装置 |
CN106203170A (zh) * | 2016-07-19 | 2016-12-07 | 北京同余科技有限公司 | 基于角色的数据库动态脱敏服务方法和系统 |
CN106228084A (zh) * | 2016-07-19 | 2016-12-14 | 北京同余科技有限公司 | 基于角色的敏感字段动态调整的数据保护方法和系统 |
CN108390857A (zh) * | 2018-01-12 | 2018-08-10 | 刘喆 | 一种高敏感网络向低敏感网络导出文件的方法和装置 |
CN108809913A (zh) * | 2017-05-04 | 2018-11-13 | 中国移动通信集团重庆有限公司 | 数据脱敏的方法、装置和设备 |
CN112257108A (zh) * | 2020-10-23 | 2021-01-22 | 天津新开心生活科技有限公司 | 数据脱敏方法及装置、介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021488A1 (en) * | 2003-07-21 | 2005-01-27 | Rakesh Agrawal | Mining association rules over privacy preserving data |
CN101561854A (zh) * | 2009-05-22 | 2009-10-21 | 江苏大学 | 一种序列模式挖掘隐私数据保护方法 |
CN102880834A (zh) * | 2012-09-03 | 2013-01-16 | 西安交通大学 | 一种保持数据数字特征的隐私信息保护方法 |
-
2013
- 2013-10-23 CN CN201310503798.7A patent/CN103500226B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050021488A1 (en) * | 2003-07-21 | 2005-01-27 | Rakesh Agrawal | Mining association rules over privacy preserving data |
CN101561854A (zh) * | 2009-05-22 | 2009-10-21 | 江苏大学 | 一种序列模式挖掘隐私数据保护方法 |
CN102880834A (zh) * | 2012-09-03 | 2013-01-16 | 西安交通大学 | 一种保持数据数字特征的隐私信息保护方法 |
Non-Patent Citations (1)
Title |
---|
TORE DALENIUS,STEVEN P.REISS: "Data-swapping:A technique for disclosure control", 《JOURNAL OF STATISTICAL PLANNING AND INFERENCE》, 31 December 1982 (1982-12-31), pages 73 - 85 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243063A (zh) * | 2014-06-18 | 2016-01-13 | 北京新媒传信科技有限公司 | 信息推荐的方法和装置 |
CN105243063B (zh) * | 2014-06-18 | 2019-11-15 | 北京新媒传信科技有限公司 | 信息推荐的方法和装置 |
CN106203170A (zh) * | 2016-07-19 | 2016-12-07 | 北京同余科技有限公司 | 基于角色的数据库动态脱敏服务方法和系统 |
CN106228084A (zh) * | 2016-07-19 | 2016-12-14 | 北京同余科技有限公司 | 基于角色的敏感字段动态调整的数据保护方法和系统 |
CN108809913A (zh) * | 2017-05-04 | 2018-11-13 | 中国移动通信集团重庆有限公司 | 数据脱敏的方法、装置和设备 |
CN108390857A (zh) * | 2018-01-12 | 2018-08-10 | 刘喆 | 一种高敏感网络向低敏感网络导出文件的方法和装置 |
CN108390857B (zh) * | 2018-01-12 | 2020-12-04 | 刘喆 | 一种高敏感网络向低敏感网络导出文件的方法和装置 |
CN112257108A (zh) * | 2020-10-23 | 2021-01-22 | 天津新开心生活科技有限公司 | 数据脱敏方法及装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103500226B (zh) | 2016-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103500226A (zh) | 一种去除敏感数据敏感性的方法及装置 | |
CN104246764B (zh) | 利用非均匀散列函数在非均匀访问存储器中放置记录的方法和装置 | |
CN105408857B (zh) | 数据仓库系统、生成关系数据库的多列索引的方法和系统 | |
CN103577440B (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
CN101533408B (zh) | 一种海量数据的处理方法及处理装置 | |
CN104238962B (zh) | 向缓存中写入数据的方法及装置 | |
CN104516912B (zh) | 一种动态的数据存储方法及装置 | |
CN107526743A (zh) | 用于压缩文件系统元数据的方法和设备 | |
CN101763415B (zh) | 一种数据库的b树索引的生成方法及装置 | |
CN108021702A (zh) | 基于LSM-tree的分级存储方法、装置、OLAP数据库系统及介质 | |
CN106445416A (zh) | 一种数据记录的存储、查询和检索的方法及装置 | |
DE112011105774T5 (de) | Verschiebbarer Speicher, der In-Memory-Datenstrukturen unterstützt | |
CN110399333A (zh) | 删除快照的方法、设备和计算机程序产品 | |
US9454550B2 (en) | Database method for B+ tree based on PRAM | |
CN106844288A (zh) | 一种随机字符串生成方法及装置 | |
CN107070897A (zh) | 入侵检测系统中基于多属性哈希去重的网络日志存储方法 | |
CN109325011A (zh) | 基于区块链的数据存储、处理、分享方法及系统 | |
CN104408128B (zh) | 一种基于b+树异步更新索引的读优化方法 | |
CN107609011A (zh) | 一种数据库记录的维护方法和装置 | |
CN105408893B (zh) | 一种数据处理和写入方法及相关装置 | |
CN107729330A (zh) | 获取数据集的方法和装置 | |
CN106897174B (zh) | 一种针对mysql数据库的碎片恢复方法 | |
CN104216833B (zh) | 一种确定物理地址的方法及装置 | |
CN107894875A (zh) | 一种rtu数据存储方法 | |
CN107590077A (zh) | 一种Spark负载访存行为追踪方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |