数据集的乱序处理方法和装置制造方法及图纸

技术编号:14746752 阅读:65 留言:0更新日期:2017-03-01 23:16
本申请提供一种数据集的乱序处理方法,包括:在一定的取值范围内为初始数据集中的每条记录生成一个随机数;将每条记录根据其随机数划分到子数据集中;每个子数据集对应于不同的数值区间,所有子数据集对应的数值区间之和为随机数的取值范围;在每个子数据集中按照随机数对所有记录进行排序,根据对应的数值区间的顺序将子数据集合成为乱序数据集。通过本申请的技术方案,利用有限的硬件资源即可高效的实现大数据集的全局乱序,达到更好的乱序效果。

【技术实现步骤摘要】

本申请涉及数据处理
,尤其涉及一种数据集的乱序处理方法和装置
技术介绍
在自动题库、对称式密码设计、网络信息安全模拟检测等系统中,都需要对大型数据集进行乱序处理。乱序处理是对数据集中的记录进行重新排列,并且使得重新排列后的顺序与原先的顺序尽可能不相关联。在对数据集进行重新排列时,需要将涉及到记录读入内存后再按照预定的算法确定其新的顺序。由于任何计算设备的硬件资源都有存在限制,当数据集的规模增大到一定程度时,对整个数据集重新排序所需要的时间往往无法满足实际应用的需求。现有技术中,将大规模的数据集拆分成若干个小文件,每个文件中包括部分记录,针对每个文件中的记录采用乱序算法重新排列顺序。这样,实际上只实现了数据集的局部乱序而不是全局乱序,乱序后的数据集仍旧有特征可循。例如,一个包括100万条顺序排列的密码的数据集,每个文件中包括100个连续的密码,乱序后由于系统在一段时间内应用的都是同一个文件中的密码,则在这段时间内可以在100个值而不是100万个值中猜测可能出现的密码,也就是说,局部乱序极大的降低了系统的安全性。
技术实现思路
有鉴于此,本申请提供一种数据集的乱序处理方法,包括:在一定的取值范围内为初始数据集中的每条记录生成一个随机数;将每条记录根据其随机数划分到子数据集中;每个子数据集对应于不同的数值区间,所有子数据集对应的数值区间之和为随机数的取值范围;在每个子数据集中按照随机数对所有记录进行排序,根据对应的数值区间的顺序将子数据集合成为乱序数据集。本申请还提供了一种数据集的乱序处理装置,包括:随机数生成单元,用于在一定的取值范围内为初始数据集中的每条记录生成一个随机数;子数据集划分单元,用于将每条记录根据其随机数划分到子数据集中;每个子数据集对应于不同的数值区间,所有子数据集对应的数值区间之和为随机数的取值范围;排序单元,用于在每个子数据集中按照随机数对所有记录进行排序,根据对应的数值区间的顺序将子数据集合成为乱序数据集。由以上技术方案可见,本申请的实施例中为每条记录生成随机数,按照随机数所属的数值区间将记录划分到子数据集中,通过对子数据集中的记录和子数据集分别进行排序,利用有限的硬件资源即可高效的实现大数据集的全局乱序,达到更好的乱序效果,在应用于密码乱序时可以极大的提高安全性。附图说明图1是本申请实施例中一种数据集的乱序方法的流程图;图2是本申请实施例中一种划分子数据集的实现方式的流程图;图3是本申请应用示例中对初始文件进行乱序的处理流程图;图4是本申请实施例所应用的设备的一种硬件结构图;图5是本申请实施例中一种数据集的乱序装置的逻辑结构图。具体实施方式本申请的实施例提出一种新的数据集的乱序处理方法,通过为初始数据集中的每条记录生成随机数并对随机数进行全局排序的方式实现全局乱序,并通过将全局排序拆分为两次排序,即不同数值区间内记录的排序和数值区间的排序,来降低对硬件资源的占用并提高处理速度,以解决现有技术中存在的问题。本申请的实施例可以应用在任何具有计算功能的设备上,其流程如图1所示。步骤110,在一定的取值范围内为初始数据集中的每条记录生成一个随机数。本实施例中,初始数据集可以是包含若干记录的文件,可以是数据库中的一张表;记录是进行乱序处理的单位(即针对记录进行重新排列),每条记录可以是一个数字,可以是一个字符串;可以是包括多个不同类型字段的一行数据,也可以是包括多个值的数据序列。记录可以是口令、密码、测验题目等等。本实施例中对初始数据集和记录的具体形式都不做限定。对需要进行乱序处理的初始数据集,在一定的取值范围内为其中的每条记录生成一个随机数。实际应用中,可以根据具体场景的需求、所处的运行环境等因素来确定随机数的取值范围。不论取值范围为多大,各条记录的随机数在理论上总是存在重复(即随机数数值相等)的可能性,本实施例中随机数用来对所有记录进行全局排序,重复的随机数越少,乱序的效果就越好。在本实施例中,随机数的取值范围可以可以大于、小于或等于初始数据集中记录的总条数,但较大的取值范围能够达到更好的离散性从而提高乱序的效果,而较大的取值范围也往往需要更多的硬件资源来支持。在一定范围内生成随机数的方法可以参照现有技术中的各种随机数生成算法,不再赘述。步骤120,将每条记录根据其随机数划分到子数据集中;每个子数据集对应于不同的数值区间,所有子数据集对应的数值区间之和为随机数的取值范围。将随机数的取值范围分成若干个数值区间,每个数值区间对应于一个子数据集,每个子数据集对应的数值区间不相重叠。各个子数据集数值区间的大小可以相同,也可以不同。对每条记录,按照这条记录的随机数所属的数值区间,把该记录划分到对应的子数据集中。可以采用多种不同的方式来将初始数据集中的记录划分到子数据集中。例如,可以逐条处理初始数据集中的记录,按照记录的随机数把记录移动到对应的子数据集中,直至初始数据集为空;再如,可以针对一个子数据集的数值区间扫描初始数据集中的所有记录,将随机数处于该数值区间内的记录写入到该子数据集中,直到对所有的子数据集执行上述操作。在一种实现方式中,每批次将初始数据集中随机数属于一定处理值域的记录划分到对应的子数据集中,其流程如图2所示。需要说明的是,每批次的随机数处理值域可以与子数据集对应的数值区间有关,也可以与其无关;换言之,可以根据子数据集对应的数值区间来设置随机数处理值域(如一批次处理数个子数据集对应的数值区间,或数个批次处理一个子数据集对应的数值区间),也可以由其他因素确定各批次的处理值域而不考虑子数据集的数值区间。步骤210,将初始数据集置为源数据集。划分记录的流程开始时,以全部的记录,即初始数据集作为源数据集。步骤220,确定本批次的随机数处理值域。每批次处理的随机数处理值域的大小可以相同,也可以不同。可以采用任意方式来在随机数的取值范围内确定每批次的处理值域,本实施例中不做限定,各次处理值域的和能够覆盖随机数的取值范围即可。例如,可以以固定增量的方式来获得每批次的处理值域,设随机数的取值范围为0到99999,固定增量为10000时,第一批次的处理值域为0到9999,第二批次为10000到19999,以此类推,直到第十批次为90000到99999。步骤230,读入源数据集中的一条记录,如果该记录的随机数在本批次的处理值域内,则根据该记录的随机数将该记录及其随机数写入子数据集中;否则将该记录及其随机数写入未处理数据集中;重复本步骤直到源数据集的每条记录处理完毕。如果源数据集中的记录的随机数在本批次的处理值域内,则按照其随机数所处的数值区间,将该记录及其随机数写入到对应于该数值区间的子数据集中。如果记录的随机数不在本批次的处理值域内,则本批次不对该记录进行子数据集的划分,将该记录及其随机数写入未处理数据集中,留待后续的批次再行划分。对源数据集中的每条记录执行本步骤,执行完毕时,本批次划分进行完毕,随机数在本批次处理值域内的所有记录都被划分到子数据集中,而尚未进行划分的所有记录都在未处理数据集中。步骤240,判断未处理数据集是否为空,如果不为空,将未处理数据集置为源数据集后转步骤220,进行下一批次的划分;如果为空则划分流程结束。在一个批次的划分进行完本文档来自技高网...
数据集的乱序处理方法和装置

【技术保护点】
一种数据集的乱序处理方法,其特征在于,包括:在一定的取值范围内为初始数据集中的每条记录生成一个随机数;将每条记录根据其随机数划分到子数据集中;每个子数据集对应于不同的数值区间,所有子数据集对应的数值区间之和为随机数的取值范围;在每个子数据集中按照随机数对所有记录进行排序,根据对应的数值区间的顺序将子数据集合成为乱序数据集。

【技术特征摘要】
1.一种数据集的乱序处理方法,其特征在于,包括:在一定的取值范围内为初始数据集中的每条记录生成一个随机数;将每条记录根据其随机数划分到子数据集中;每个子数据集对应于不同的数值区间,所有子数据集对应的数值区间之和为随机数的取值范围;在每个子数据集中按照随机数对所有记录进行排序,根据对应的数值区间的顺序将子数据集合成为乱序数据集。2.根据权利要求1所述的方法,其特征在于,所述将每条记录根据其随机数划分到子数据集中,包括:将初始数据集置为源数据集;确定本批次的随机数处理值域;读入源数据集中的一条记录,如果该记录的随机数在本批次的处理值域内,则根据该记录的随机数将该记录及其随机数写入子数据集中;否则将该记录及其随机数写入未处理数据集中;重复本步骤直到源数据集的每条记录处理完毕;如果未处理数据集不为空,将未处理数据集置为源数据集后重复上述两个步骤进行下一批次的处理,直到未处理数据集为空。3.根据权利要求1所述的方法,其特征在于,所述在每个子数据集中按照随机数对所有记录进行排序,根据对应的数值区间的顺序将子数据集合成为乱序数据集,包括:按照对应的数值区间的顺序依次将一个子数据集作为当前子数据集;对当前子数据集中的所有记录按照其随机数进行排序,按照排序后的顺序将所有记录增加到乱序数据集中;重复上述两个步骤直到所有子数据集处理完毕。4.根据权利要求1所述的方法,其特征在于,所述在每个子数据集中按照随机数对所有记录进行排序,根据对应的数值区间的顺序将子数据集合成
\t为乱序数据集,包括:对每个子数据集中的所有记录按照其随机数进行排序,生成排序后的子数据集;按照对应的数值区间的顺序,将所有排序后的子数据集中的记录汇总到乱序数据集中。5.根据权利要求1所述的方法,其特征在于,所述子数据集包括文件名为从0到K的(K+1)个子文件,K为自然数;所述将每条记录根据其随机数划分到子数据集中,包括:将记录写入到以其随机数除以N所得的整数商为文件名的子文件中;N为预设的自然数,且N乘以(K+1)不小于随机数的取值范围。6.根据权利要求1所述的方法,其特征在于,所述记录包括口令或密码。7....

【专利技术属性】
技术研发人员:唐志慧
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1