本申请实施例涉及信息处理领域,尤指一种模拟数据的生成方法和装置。
背景技术:
然而随着大数据时代的到来,大数据分析系统应运而生,在一个完整的系统开发工程中,模拟数据的录入是测试系统时必不可少的一环。针对不提供大量敏感性和隐私性真实数据的大数据系统,开发人员迫切需要一个高性能的通用海量数据模拟装置,生成海量模拟数据,不仅用于测试系统功能的正常运行,并且用于测试系统数据计算能力和实时数据处理能力。
相关技术中基于元数据和数据库约束条件进行模拟数据的生成,并通过测试系统接口填充至前端页面。在实际应用中,当需求是生成海量数据时,该方法效率较低效,无法生成大量数据。
技术实现要素:
为了解决上述任一技术问题,本申请实施例提供了一种模拟数据的生成方法和装置。
为了达到本申请实施例目的,本申请实施例提供了一种模拟数据的生成方法,包括:
获取待模拟数据的特征信息;
根据待模拟数据的特征信息,建立所述待模拟数据的规则树;其中,规则树的根节点为待模拟数据的总量,中间节点为待模拟数据的分量,叶节点为所使用的模拟规则,每个叶节点对应一个模拟数据生成器,且每个叶节点都是无兄弟节点;
利用所述规则树生成待模拟数据的模拟数据。
一种模拟数据的生成装置,包括:
获取模块,设置为获取待模拟数据的特征信息;
建立模块,设置为根据待模拟数据的特征信息,建立所述待模拟数据的规则树;其中,规则树的根节点为待模拟数据的总量,中间节点为待模拟数据的分量,叶节点为所使用的模拟规则,每个叶节点对应一个模拟数据生成器,且每个叶节点都是无兄弟节点;
生成模块,设置为利用所述规则树生成待模拟数据的模拟数据。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文所述的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文所述的方法。
上述技术方案中的一个技术方案具有如下优点或有益效果:
获取待模拟数据的特征信息,根据待模拟数据的特征信息,建立所述待模拟数据的规则树,利用所述规则树生成待模拟数据的模拟数据,利用规则树所提供的树形结构,实现对海量数据的模拟操作,达到得到海量模拟数据的目的,提高处理效率。
本申请实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请实施例的实施例一起用于解释本申请实施例的技术方案,并不构成对本申请实施例技术方案的限制。
图1为本申请实施例提供的模拟数据的生成方法的流程图;
图2为本申请实施例提供的模拟数据的生成方法的示意图;
图3为本申请实施例提供的模拟数据的生成装置的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请实施例的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请实施例中的实施例及实施例中的特征可以相互任意组合。
图1为本申请实施例提供的模拟数据的生成方法的流程图。如图1所示,所述方法包括:
步骤101、获取待模拟数据的特征信息;
在一个示例性实施例中,待模拟数据可以从预设的数据库进行读取,以得到海量的数据;
在一个示例性实施例中,待模拟数据的特征信息包括所需生成的模拟数据的数据量特征信息和/或待模拟数据的内容的特征信息;其中,该数据量特征信息用于确定任务的负担和如何将该任务分成子任务;该内容的特征信息用于确定所需生成的模拟策略。
步骤102、根据待模拟数据的特征信息,建立所述待模拟数据的规则树;其中,规则树的根节点为待模拟数据的总量,中间节点为待模拟数据的分量,叶节点为所使用的模拟规则,每个叶节点对应一个模拟数据生成器,且每个叶节点都是无兄弟节点;
在一个示例性实施例中,利用树形结构管理数据模拟任务,由根节点承接所述待模拟数据的总量,再由中间分别承担各自的分量,通过树形结构的路径传输到叶节点,确定所需使用的模拟规则,完成模拟操作的批量执行。
步骤103、利用所述规则树生成待模拟数据的模拟数据。
在一个示例性实施例中,利用树形结构的规则树完成对海量数据的处理,实现得到海量模拟数据的技术目的,提高处理效率。
本申请实施例提供的方法,获取待模拟数据的特征信息,根据待模拟数据的特征信息,建立所述待模拟数据的规则树,利用所述规则树生成待模拟数据的模拟数据,利用规则树所提供的树形结构,实现对海量数据的模拟操作,达到得到海量模拟数据的目的,提高处理效率。
下面对本申请实施例提供的方法进行说明:
在一个示例性实施例中,所述待模拟数据的特征信息包括所需生成的模拟数据的数据量特征信息和/或待模拟数据的内容的特征信息;其中:
所述数据量特征信息包括数据量级、不同类型的数据量占比和数据量增长数学模型中的至少一个;
所述待模拟对象的内容的特征信息包括数据类型、数据库数据约束、数据对象属性中的至少一个;
所述根据待模拟对象的特征信息,建立所述待模拟对象的规则树,包括执行如下任一操作:
根据所述数据量级和/或数据量增长模型,确定中间节点对应的待模拟数据分量的特征信息;
按照不同类型的数据量占比,为中间节点所对应的模拟分量分配对应的取值;
按照所述待模拟对象的内容的特征信息,为每个叶节点分配所使用的模拟生成策略。
利用得到的待模拟数据的特征信息,对规则树的节点所执行的操作进行配置,保证有针对性的执行模拟操作,提高模拟操作的处理效率。
在一个示例性实施例中,所述根据待模拟对象的特征信息,建立所述待模拟对象的规则树之前,所述方法还包括:
判断所述待模拟数据对象是否符合预设的有价值数据的判断条件,得到判断结果;
所述根据待模拟对象的特征信息,建立所述待模拟对象的规则树,包括:
如果所述判断结果为所需生成的模拟数据符合所述有价值数据的判断条件,则采用预设的第一处理策略生成模拟数据,其中所述第一处理策略所生成的数据满足所生成的模拟数据满足预设的数据约束条件,以及,所述第一处理策略所使用的数据模拟策略是根据待模拟数据的对象属性选择的;
如果所述判断结果为所需生成的模拟数据符合所述有价值数据的判断条件,则采用预设的第二处理策略生成模拟数据,其中所述第二处理策略所生成的模拟数据满足预设的数据约束条件中最简单的数据约束条件,或者,不满足预设的任一数据约束条件。
通过判断待模拟数据是否为有价值数据,分别建立无价值数据对应的规则子树和有价值数据对应的规则子树;对于有价值数据,利用第一处理规则可以保证所得到的模拟数据满足符合预设的数据约束条件,同时,配置所使用的数据模拟策略与待模拟数据的对象属性相匹配,保证模拟操作的处理效率。对于无价值数据,保证能快速得到模拟数据即可。
通过区分是否为有价值数据,在保证得到所需的模拟数据的前提下,可以有效提高模拟操作的处理性能。
在一个示例性实施例中,所述利用所述规则树生成待模拟数据的模拟数据,包括:
将待模拟数据发送给所述规则数据的根节点;
控制所述根节点中间节点按照各自对应的数量获取各自对应的分量;
控制各个叶节点并行对获取到的分量中的数据进行处理。
利用根节点接收待模拟数据的总量,再通过中间节点实现对总量的分流,最后由中间节点连接的叶节点确定所使用的模拟策略,完成多个待模拟数据的并行处理,提高处理效率。
图2为本申请实施例提供的模拟数据的生成方法的示意图;如图2所示,所述方法包括:
1、提取待模拟数据对象特征;
由于数据的类型繁多,且来源于异构的数据,需要进行抽取、集成、关联和聚合,将已完成结构定义的数据库数据对象作为待模拟数据对象。
所获取的特征信息可以为数据量级、数据类型、各类型数据量占比、数据库数据约束、数据对象属性、数据量增长数学模型等。
2、根据待模拟对象特征获取规则树;
规则树的结构为树形结构,其中根节点为模拟数据总量,中间节点为模拟数据分量,叶节点为模拟规则,一个叶节点对应一个模拟数据生成器,预设所有叶节点都是无兄弟节点。
3、根节点判定模拟数据为无价值数据或有价值数据;
将对数据分析无意义的待清洗的数据作为无价值数据,反之为有价值数据;其中,无价值数据包括重复数据、异常数据、不完整数据、无关数据等;有价值数据不是可以直接进行数据分析的数据,而是混在无价值数据中,待抽取、转化、合并、计算的数据。其中:
不完整数据是指丢失了某些子属性的数据对象;
异常数据是指子属性中包含异常数据的数据对象和多个子属性之间存在异常联系的属性;
无关数据是指对数据分析结果无影响的数据对象或子属性数据对象。
4、根据待模拟无价值数据对象特征获取无价值数据模拟子规则树
根据各类型数据量占比对中间节点赋值;
根据预设的标准对叶节点赋值,其中预设的标准为对不同类型无价值数据采用最高性能模拟规则,其中最高性能模拟规则可以为如下至少一个,包括:
a、重复数据的id采用递增的方式生成,其他子属性数据对象直接复制对应的已产生模拟数据或做合理的随机改动;
b、不完整数据的属性采用赋空值的方式生成;
c、无关数据采用随机字符生成等。
最高性能模拟规则生成的数据可以是符合数据库简单约束的,根据预设规则甚至可以是不符合数据库约束的。无价值数据模拟计算显然是高性能的,根据大数据价值密度低的特性,该数据模拟计算性能也是高性能的。
5、根据待模拟有价值数据对象特征获取有价值数据模拟子规则树
根据各类型数据量占比对中间节点赋值;
根据预设的标准对叶节点赋值;其中,预设标准为根据有价值数据的特征优先选择在仿真阈值范围内且计算性能高最高的规则,比如字典属性选取元数据模拟规则、统计属性选取数学模型模拟规则、复杂规则数据对象选取样本数据偏移模拟规则等。经研究发现在性能上:元数据模拟>数学模型模拟>样本数据偏移模拟,但对于少量数据都是分钟级的;根据大数据价值密度低的特性,有价值数据模拟计算依然是高性能的。
6、根据待模拟数据对象数据量增长数学模型获取模拟实时数据的规则;
采用线性的数据生成方式,显然是不符合仿真要求和达不到高性能标准的,因此本申请实施例提供的方案实现了并行的数据生成,多个数据生成器并行生成模拟数据。根据待模拟数据对象数据量增长数学模型,对实时模拟数据入库操作命令执行顺序和时间间隔进行设置,生成模拟数据实时入库。
基于海量数据的特征所生成的模拟数据符合以下特征:
(1)数据量巨大。
(2)价值密度低。
(3)数据类型多。
(4)数据实时生成,数据量呈爆炸性增长。
本申请实施例提供的方法,提供海量数据模拟方法,提高大数据系统对数据计算能力测试的真实性;提供海量模拟数据实时入库的方法,提高大数据系统对实时数据处理能力测试的真实性;提供高性能海量数据模拟方法,降低了海量数据模拟成本。
图3为本申请实施例提供的模拟数据的生成装置的结构图。如图3所示,图3所示装置包括:
获取模块,设置为获取待模拟数据的特征信息;
建立模块,设置为根据待模拟数据的特征信息,建立所述待模拟数据的规则树;其中,规则树的根节点为待模拟数据的总量,中间节点为待模拟数据的分量,叶节点为所使用的模拟规则,每个叶节点对应一个模拟数据生成器,且每个叶节点都是无兄弟节点;
生成模块,设置为利用所述规则树生成待模拟数据的模拟数据。
在一个示例性实施例中,所述获取模块所获取的所述待模拟数据的特征信息包括所需生成的模拟数据的数据量特征信息和/或待模拟数据的内容的特征信息;其中:
所述数据量特征信息包括数据量级、不同类型的数据量占比和数据量增长数学模型中的至少一个;
所述待模拟对象的内容的特征信息包括数据类型、数据库数据约束、数据对象属性中的至少一个;
所述建立模块,设置为执行如下任一操作,包括:
根据所述数据量级和/或数据量增长模型,确定中间节点对应的待模拟数据分量的特征信息;
按照不同类型的数据量占比,为中间节点所对应的模拟分量分配对应的取值;
按照所述待模拟对象的内容的特征信息,为每个叶节点分配所使用的模拟生成策略。
在一个示例性实施例中,所述装置还包括:
判断模块,设置为判断所述待模拟数据对象是否符合预设的有价值数据的判断条件,得到判断结果;
所述建立模块,设置为如果所述判断结果为所需生成的模拟数据符合所述有价值数据的判断条件,则采用预设的第一处理策略生成模拟数据,其中所述第一处理策略所生成的数据满足所生成的模拟数据满足预设的数据约束条件,以及,所述第一处理策略所使用的数据模拟策略是根据待模拟数据的对象属性选择的;如果所述判断结果为所需生成的模拟数据符合所述有价值数据的判断条件,则采用预设的第二处理策略生成模拟数据,其中所述第二处理策略所生成的模拟数据满足预设的数据约束条件中最简单的数据约束条件,或者,不满足预设的任一数据约束条件。
在一个示例性实施例中,所述生成模块,设置为将待模拟数据发送给所述规则数据的根节点,控制所述根节点中间节点按照各自对应的数量获取各自对应的分量,并控制各个叶节点并行对获取到的分量中的数据进行处理。
本申请实施例提供的装置,获取待模拟数据的特征信息,根据待模拟数据的特征信息,建立所述待模拟数据的规则树,利用所述规则树生成待模拟数据的模拟数据,利用规则树所提供的树形结构,实现对海量数据的模拟操作,达到得到海量模拟数据的目的,提高处理效率。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文任一项中所述的方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文任一项中所述的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。