CN111078668B - 数据生成方法、装置、电子设备和存储介质 - Google Patents
数据生成方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN111078668B CN111078668B CN201911297802.2A CN201911297802A CN111078668B CN 111078668 B CN111078668 B CN 111078668B CN 201911297802 A CN201911297802 A CN 201911297802A CN 111078668 B CN111078668 B CN 111078668B
- Authority
- CN
- China
- Prior art keywords
- data
- field
- file
- generating
- seed file
- 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.)
- Active
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/21—Design, administration or maintenance of databases
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例提供一种数据生成方法、装置、电子设备和存储介质,该方法可包括:获取业务需求内容,该业务需求内容包括目标文件的业务属性字段;响应关于该业务属性字段的配置操作,获取该配置操作中的数据生成策略;基于该数据生成策略对应的数据生成方式,为该业务属性字段生成仿真数据,该数据生成方式包括基于设定的函数生成第一数据、基于种子文件生成第二数据中的至少一者。以此改善目前在大数据信息系统的建设过程中缺乏数据资源的问题。
Description
技术领域
本申请涉及大数据技术领域,具体而言,涉及一种数据生成方法、装置、电子设备和存储介质。
背景技术
在大数据时代,各行各业都在逐渐结合大数据提升工作效率。在建设大数据应用信息系统的过程中,技术实现方向可分为前端、后端、数据端、测试端等,而不同技术分工下的功能依赖会成为彼此技术实现的制约因素,这一现象在不同的场景下会影响工作效率。
例如,在刚开始建设的初期,数据收集过程长,大数据环境还未搭建好,而信息系统的搭建又需要依赖大数据环境的数据,数据生产过程长会影响用户的研发效率;在系统搭建过程中,数据链条建设周期长,受地理因素、时间因素等影响,不同技术工种的用户需要分地区、分阶段工作,经常会出现让部分技术工种的用户等待数据的情况。
发明内容
本申请实施例的目的在于提供一种数据生成方法、装置、电子设备和存储介质,用以改善目前在大数据信息系统的建设过程中缺乏数据资源的问题。
第一方面,本申请实施例提供一种数据生成方法,所述方法包括:
获取业务需求内容,所述业务需求内容包括目标文件的业务属性字段;
响应关于所述业务属性字段的配置操作,获取所述配置操作中的数据生成策略;
基于所述数据生成策略对应的数据生成方式,为所述业务属性字段生成仿真数据,所述数据生成方式包括基于设定的函数生成第一数据、基于种子文件生成第二数据中的至少一者。
通过上述方法,可以基于为业务属性字段配置的数据生成策略,按照数据生成策略对应的数据生成方式,基于设定的函数和/或种子文件的内容为相应的业务需求内容快速生成批量的仿真数据,避免研究技术人员需要长时间等待数据资源的情况。
在可选的实施方式中,所述数据生成策略包括种子文件标识、数据字段内容、字段概率,所述基于所述数据生成策略对应的数据生成方式,为所述业务属性字段生成仿真数据,包括:
根据所述种子文件标识、所述数据字段内容、所述字段概率确定数据生成方式,为所述业务属性字段生成仿真数据。
通过上述实现方式,可以通过对种子文件标识、数据字段内容、字段概率进行灵活配置,从而确定用于生成仿真数据的数据生成方式,以此能够以较少的配置工作完成对于批量数据的设计,减少用户的数据编写量,能够快速为选中的业务属性字段生成批量的仿真数据。
在可选的实施方式中,所述根据所述种子文件标识、所述数据字段内容、所述字段概率确定数据生成方式,为所述业务属性字段生成仿真数据,包括:
当所述种子文件标识为空串时,基于所述字段概率,调用所述设定的函数,为所述数据字段内容生成第一数据,所述第一数据作为所述业务属性字段对应的仿真数据。
通过上述实现方式,可以通过数据生成策略中的种子文件标识、数据字段内容、字段概率之间的配合关系,在种子文件标识为空串时,通过调用已有的函数快速生成批量的仿真数据。此外,通过字段概率的值可以模拟反映真实业务场景下的各个字段之间的概率分布情况,满足对于数据资源的概率分布需求。
在可选的实施方式中,所述根据所述种子文件标识、所述数据字段内容、所述字段概率确定数据生成方式,为所述业务属性字段生成仿真数据,包括:
当所述种子文件标识为非空串数据时,基于所述种子文件标识确定目标种子文件;
根据所述数据字段内容以及所述字段概率,从所述目标种子文件中提取第二数据,所述第二数据作为所述业务属性字段对应的全部或部分仿真数据。
通过上述实现方式,可以在批量生成仿真数据的过程中,考虑到种子文件标识、数据字段内容、字段概率之间的配合关系,在种子文件标识为非空串数据时,基于设定的字段概率,从目标种子文件中获取内容,快速生成能够反映业务属性的仿真数据。
在可选的实施方式中,所述根据所述数据字段内容以及所述字段概率,从所述目标种子文件中提取第二数据,包括:
在所述种子文件标识为非空串数据,且所述字段概率为非指定值时,基于所述字段概率的值,确定数据提取比例;
以所述数据字段内容作为索引的键值,按照所述数据提取比例从所述目标种子文件中提取所述第二数据。
通过上述实现方式,可以在种子文件标识为非空串数据时,且字段概率为非指定值时,基于多种数据源生成业务关联更为复杂的仿真数据。
在可选的实施方式中,在所述为所述业务属性字段生成仿真数据之前,所述方法还包括:
配置多个种子文件的文件路径,所述多个种子文件的文件路径用于限定多个种子文件之间的关联关系;
和/或,配置种子文件的文件内容格式,所述种子文件的文件内容格式用于限定同一种子文件内的各个字段之间的关联关系。
通过上述实现方式,可以基于种子文件的路径配置、种子文件的文件格式配置,解决数据表与数据表之间的业务关联问题、表内各个字段之间的业务关联问题,从而可以在考虑业务关联的情况下生成更加贴合实际的仿真数据,改善了让研发技术人员因需要长时间等待数据资源而拖慢研发进度的问题。
在可选的实施方式中,在所述为所述业务属性字段生成仿真数据之后,所述方法还包括:
以生成的所述仿真数据对应的文件作为新的种子文件,基于所述新的种子文件以及获取到的新的数据生成策略,生成新的仿真数据。
通过上述实现方式,当生成的仿真数据以文件形式存储时,仿真数据对应的文件可以作为新的种子文件,从而为后续的仿真数据生成过程提供更丰富的数据源,还有利于模拟业务数据之间的业务关联关系,避免后续生产的仿真数据与在先的数据缺乏业务关联。
第二方面,本申请实施例提供一种数据生成装置,所述装置包括:
获取模块,用于获取业务需求内容,所述业务需求内容包括目标文件的业务属性字段;
配置模块,用于响应关于所述业务属性字段的配置操作,获取所述配置操作中的数据生成策略;
生成模块,用于基于所述数据生成策略对应的数据生成方式,为所述业务属性字段生成仿真数据,所述数据生成方式包括基于设定的函数生成第一数据、基于种子文件生成第二数据中的至少一者。
通过上述数据生成装置可执行前述第一方面提供的数据生成方法,能够快速生成批量的仿真数据,无需再让研发人员长时间等待数据而拖慢研发进度,有利于提升研发工作效率。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括:
存储器;
处理器;
所述存储器存储有所述处理器可执行的计算机程序,所述计算机程序被所述处理器执行时执行前述第一方面所述的方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时执行前述第一方面所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种数据生成方法的流程图。
图2为本申请实施例提供的一种数据生成装置的功能模块框图。
图3为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为了便于理解本方案,下面将对本申请实施例提供的一些名词进行介绍。
仿真数据:用于模拟应用系统或者数据系统所依赖的真实业务数据。
种子数据:存储于种子文件中,通过种子数据可以生成存在关联关系的业务数据表或者存在关联关系的字段。
元数据:生成仿真数据所需要的常见的数据字段值,通过元数据可以进行数据索引。
发明人发现,在大数据时代背景下,在大数据刚开始建设的初期,面对数据种类繁多、各种大数据环境还没有搭建的情况,数据生产过程较为漫长,而各信息系统需要依赖大数据环境所生产的数据,这一情况使得研发人员需要长时间等待数据才能进行后续工作;在建设IT(Internet Technology,互联网技术)信息系统过程中,可能由于地理因素,系统承建方团队彼此分开办公,又因为企业相关因素、数据保密因素导致数据分散且难以及时汇总(例如在为客户企业建设IT信息系统时,数据被隔离在企业内部),彼此分开办公的用户难以及时通过网上办公方式进行环境处理建设,这一情况同样需要研发人员长时间等待数据;对于需要快速交付的业务系统或者POC(Proof of concept,概念验证)项目中,考虑到时间的因素制约,一般需要尽量让不同技术工种的研发人员独立开发,避免数据链条建设过长,但实际上在系统数据还没有打通时,让用户长时间等待数据的情况时有发生。
若是通过手动编写仿真数据或者编写程序以模拟简单的业务数据的方式,则难以支持自定义配置,且需要进行大量的手动操作环节对生成的数据进行处理,从而手动将各个处理节点的数据进行关联。更重要的是,手动编写仿真数据或者编写程序以模拟简单的业务数据的方式,仅能对少量(例如,几十条、上百条)的数据进行处理,难以在短时间内满足成千上万甚至更多数据量的大数据需求,难以满足数据与数据之间的业务依赖需求,当数据需求快速变化时,需要重新进行编写。
有鉴于此,发明人提出以下实施例,以在项目功能基本确定、业务需求基本确定,但是还缺乏具体的数据资源或者数据资源在较长时间内还无法完全提供的情况下,快速模拟生成用户所需要的数据,避免用户因长时间等待数据而拖慢研发进度,以此有利于让不同技术工种的用户在一定程度上可以进行协同开发、并行建设,提升研发效率,节约成本。
在本申请实施例中,数据生成方法涉及三个阶段:数据源的准备、业务需求的确定、仿真数据的生产。
由于各行各业的业务需求是不同的、提供的具体数据源可能具有差异性,因此,为便于理解,先介绍仿真数据的生产阶段。
请参阅图1,图1为本申请实施例提供的一种数据生成方法的流程图。该方法可以用于快速生成批量的仿真数据。其中,在准备生产仿真数据时,数据源和业务需求视作已知内容。
如图1所示,该方法包括步骤S11-S13。
S11:获取业务需求内容,业务需求内容包括目标文件的业务属性字段。
其中,在开始进行研发之前,业务需求就已经确定。目标文件用于将业务需求量化,目标文件可以是记事本、表格等格式的文件。通过目标文件及目标文件中的业务属性字段,可以确定仿真数据的类型、确定仿真数据的数据结构。
在一个实例中,当准备构建一个关于A省的所有学校的考试信息系统时,业务需求内容中的目标文件可以是考试信息表,业务属性字段可以包括科目、老师、学生等。
在另一个实例中,当准备构建一个B市的警方专用系统时,业务需求内容中的目标文件可以是嫌疑人信息文件,业务属性字段可以包括案件类型、案件编号、职业、籍贯等;目标文件还可以是B市的常住人口表,业务属性字段可以包括姓名、性别、民族、婚姻状况、职业等。
S12:响应关于业务属性字段的配置操作,获取配置操作中的数据生成策略。
其中,配置操作可以是临时进行配置所发起的操作,也可以是在预先导入配置参数后通过触发配置确认功能所发起的操作。数据生成策略中规定了仿真数据的数据源以及数据生成方式。
作为一种实现方式,用户可以通过选定可选项或者直接输入关键字的方式进行配置,从而得到数据生成策略。
S13:基于数据生成策略对应的数据生成方式,为业务属性字段生成仿真数据,数据生成方式包括基于设定的函数生成第一数据、基于种子文件生成第二数据中的至少一者。
其中,基于设定的函数生成第一数据对应的是一种随机的数据源,在具体实施时可以在随机函数的基础上进行限定,从而生成所需的随机仿真内容;基于种子文件生成第二数据对应的另一种数据源,在具体实施时,可以在相应的种子文件中获取已有的种子数据作为所需的仿真数据。可以理解的是,不同的数据源所得到的仿真数据可以组合,从而能够得到数量更多、属性更丰富的仿真数据。
例如,在业务属性字段为“姓名”时,数据生成策略可以有两个,其中一个数据生成策略用于模拟生成多个姓氏,姓氏可以基于设定的函数生成,另一个数据生成策略用于模拟生成多个人名,人名既可以基于设定的函数生成,也可以基于种子文件生成。通过将多个姓氏与多个人名进行随机组合,可以快速得到大量的“姓名”这一业务属性字段下的仿真数据。
在业务属性字段为“学历代码”时,数据生成策略可以是基于设定的函数随机生成指定位数(例如两位、四位等)的多个字符串,作为“学历代码”这一业务属性字段下的仿真数据。
在业务属性字段为“职业”时,数据生成策略可以是基于已有的种子文件随机获取一些职位内容,作为“职业”这一业务属性字段下的仿真数据。
如果各个业务属性字段为同一目标文件中的字段,则为各个业务属性字段生成的各仿真数据之间存在关联关系。
如果在生成仿真数据时,部分数据生成策略中指示的种子文件为相同的种子文件,则仿真数据对应的数据源之间是存在关联关系的,生成的仿真数据之间也是存在隐含关联关系的。
其中,生成的仿真数据可以多种方式被导入技术组件中,以便用户调用。
通过上述方法,可以基于为业务属性字段配置的数据生成策略,按照数据生成策略对应的数据生成方式,基于设定的函数和/或种子文件的内容为相应的业务需求内容快速生成批量的仿真数据,避免了用户需要长时间等待数据资源的情况,可以让各个技术工种的用户提前进行开发。由于用于批量生成仿真数据的数据生成策略是可配置的,能够在生成仿真数据之前通过简单的配置操作对需要的数据进行设计,而无需在生成仿真数据之后再一个个地对生成的仿真数据进行调整。此外,通过对业务属性字段的选择、对种子文件的选定或对数据生成策略进行配置,能够面向不同行业提供灵活调整的配置方式,不仅可以满足不同行业的数据构建需求,还可以模拟生成存在数据关联的批量数据。相较于完全独立的随机生成方式,上述方法更加容易模拟构建存在数据依赖关系的大数据环境。
在一个实例中,通过上述方法流程,可以大批量生产仿真业务数据,单机单线程,在需要生产千万层级的复杂表单仿真数据时,在分钟级别内就可以完成。
在一个应用场景下,当需要1T(1024GB)的结构化数据以测试搭建的系统在性能上是否能够支撑1T的数据量计算时,若以增长速度最快的真实交易类数据来进行测试,可能需要将近百亿条结构化数据。如果在24小时不停息的情况下每秒产生三百多笔记录,需要花近一年时间才能积累到1T数据。对于一个城市甚至是一个省级的机构而言(例如税务部门需要的交税信息、银行交易记录),生产这样的1T数据资源需要付出长期的时间成本。而通过本申请实施例提供的方法可以在还未产生、还未收集到真实的1T数据的情况下,预先通过上述流程快速生产批量的仿真数据,以使研发人员可以先用这些仿真数据开展项目工作(包括系统性能测试),提升研发效率。当真实的业务数据到来时,仅需用真实的业务数据对已经搭建的系统项目进行微调测试即可。
可选地,当通过S13为业务属性字段生成仿真数据之后,数据生成方法还可以包括步骤S14。
S14:以生成的仿真数据对应的文件作为新的种子文件,基于新的种子文件以及获取到的新的数据生成策略,生成新的仿真数据。
其中,生成的仿真数据以文件形式存储时,仿真数据对应的文件可以作为新的种子文件,从而为后续的仿真数据生成过程提供数据源。
例如,在为一个目标文件C生成了一批用户的“姓名-手机号-职业”的仿真数据后,在为下一个目标文件D生成仿真数据时,数据生成策略所对应的数据生成方式中,可以包括从目标文件C中获取400组“姓名-手机号-职业”的第二数据,这400组数据可以作为该目标文件D中的部分仿真数据。
通过上述实现方式,既有利于模拟业务数据之间的业务关联关系,避免后续生产的仿真数据与在先的数据缺乏业务关联,还有利于补充数据源,即使离散分布在各地的真实关联数据无法得到汇总分析,也可以快速得到数量多、业务关联性强的数据资源。
可选地,前述的数据生成策略可以包括种子文件标识、数据字段内容、字段概率。
例如,数据生成策略的配置规范可以是“种子ID:内容值:生成概率”,“种子ID”是种子文件标识,“内容值”是数据字段内容,“生成概率”是字段概率。可以理解的是,基于同样的原理,数据生成策略的表现形式可以有其他变化,例如在其他实施例中的配置规范可以是将冒号这一分隔符采用其他符号代替等,在其他实施例中,字段概率也可以被替换为仿真数据量,从而通过仿真数据量确定从选定的数据源中获取数据的数据量。
相应的,在数据生成策略包括种子文件标识、数据字段内容、字段概率的情况下,上述S13可以包括子步骤S131:根据种子文件标识、数据字段内容、字段概率确定数据生成方式,为业务属性字段生成仿真数据。
其中,种子文件标识用于对种子文件进行区分,基于种子文件标识可以确定仿真数据的数据源,字段概率用于确定仿真数据在不同数据生成方式下的数据生成比例,数据字段内容用于作为索引的键值或者作为调用函数的标记,从而生成仿真数据。
通过上述实现方式,用户可以通过对种子文件标识、数据字段内容、字段概率进行灵活配置,从而确定用于生成仿真数据的数据生成方式,以此能够以较少的配置工作完成对于批量数据的设计,减少了用户的数据编写量,快速为选中的业务属性字段生成批量的仿真数据。
作为上述S131的一种可选的实施方式,S131可以包括子步骤S1311。
S1311:当种子文件标识为空串时,可以基于字段概率,调用设定的函数,为数据字段内容生成第一数据,第一数据作为业务属性字段对应的仿真数据。
其中,当种子文件标识为空串时,可以表示此次的仿真数据可以直接通过调用函数的方式生成。
在一个实例中,当种子文件标识为空串,且字段概率为空串时,可以表示此次的仿真数据默认为全部通过调用固有函数的方式生成。
例如,对于“:shuzi:”这一数据生成策略,可以表示此次的仿真数据全部通过调用函数的方式生成,将“shuzi”这一数据字段内容作为函数调用命令,与数据源的准备阶段已经准备好的功能函数进行匹配,从而批量生成指定位数(例如身份证的前六位、手机号的前三位)的随机数字。
在另一个实例中,当种子文件标识为空串,但字段概率为非空串数据时,可以通过字段概率的值确定所有的仿真数据中有多少比例的数据通过固有函数生成。
例如,对于“:status:0.15”这一数据生成策略,可以表示在此次所生成的仿真数据中,有15%的数据是基于调用固有函数的方式生成的,其余85%的数据可以为空串或默认值,通过对“status”这一数据字段内容调用固有可以仿真生成兵役状况代码,通过字段概率的设置可以模拟实际的兵役分布情况。
再例如,在为“常住人口表”这一目标文件中的“出生日期”这一业务属性字段生成批量的仿真数据时,对于“:birthday:1”这一数据生成策略,种子文件标识为空串,字段概率为1,可以表示此次所生成的所有生日仿真数据都是通过调用固有函数生成的。可以将“birthday”这一数据字段内容作为函数调用命令,与数据源的准备阶段已经准备好的生日功能函数进行匹配,从而批量生成随机生日数据。
通过上述实现方式,可以通过数据生成策略中的种子文件标识、数据字段内容、字段概率之间的配合关系,在种子文件标识为空串时,通过调用已有的函数快速生成批量的仿真数据。且通过字段概率的值可以模拟反映真实业务场景下的各个字段之间的概率分布情况,满足对于数据资源的概率分布需求。
作为上述S131的另一种可选的实施方式,S131可以包括子步骤S1312-S1313。
S1312:当种子文件标识为非空串数据时,基于种子文件标识确定目标种子文件。
其中,在种子文件标识非空串数据时,每个种子文件标识可对应一个种子文件。其中,一个种子文件中记录的内容可以是具体的字段内容,也可以是其他种子文件的路径,通过访问这些路径可以得到其他种子文件的内容,从而生成仿真数据。
S1313:根据数据字段内容以及字段概率,从目标种子文件中提取第二数据,第二数据作为业务属性字段对应的全部或部分仿真数据。
其中,当种子文件标识为非空串数据时,可以表示此次的仿真数据可以从目标种子文件中进行内容获取。
在一个实例中,当种子文件标识为非空串数据,且字段概率为指定值(例如为1或其他默认的概率值)时,可以表示此次的仿真数据全部从目标种子文件中获取。
例如,对于“employee:code:1”这一数据生成策略,可以表示此次的仿真数据全部从“employee”这一种子文件标识对应目标种子文件中获取,获取的是该目标种子文件中以“code”字段标记的字段内容。若该目标种子文件中还记录有其他种子文件的路径,则还可以获取该目标种子文件中的其他种子文件下以“code”字段标记的字段内容。
在另一个实例中,在种子文件标识为非空串数据,且字段概率为非指定值时,基于字段概率的值,确定数据提取比例。并且以数据字段内容作为索引的键值,按照数据提取比例从目标种子文件中提取第二数据。
例如,对于“employee:code:0.8”这一数据生成策略,可以表示此次的仿真数据中,有80%的数据比例是通过“employee”这一种子文件标识对应目标种子文件中获取的,剩余20%的仿真数据通过调用固有的函数生成,例如通过“code”这一数据字段内容作为函数调用命令,调用已有的“职业”功能函数生成一些职业代号,从而生成部分职业数据,如果在所有的固有函数中缺乏能够生成“code”这一函数调用命令或者无法识别这一命令,则可以生成空串。
需要说明的是,一旦种子文件标识为非空串数据,若数据字段内容为空,则可能无法进行函数调用或者进行索引,数据生成策略无效。
通过上述实现方式,可以在批量生成仿真数据的过程中,考虑到种子文件标识、数据字段内容、字段概率之间的配合关系,在种子文件标识为非空串数据时,基于设定的字段概率,从目标种子文件中获取内容,能够快速生成能够反映业务属性的仿真数据。且,当字段概率为非指定值时,可以基于多种数据源生成业务关联更为复杂的仿真数据。
为了保障本申请的上述数据生成方法能够顺利进行,提供多样的仿真数据,下面将对本申请实施例中的数据源的准备阶段进行介绍。
相较于前述的仿真数据的生产阶段而言,数据源的准备阶段可以视作在生成仿真数据之前的初始化准备过程。
在该初始化准备过程中,可以配置固有函数、种子文件,还可以对仿真数据的附加条件进行配置,附加条件可以包括仿真数据的总条数、仿真数据的存储路径、仿真日志的存储路径、仿真数据是否叠加覆盖等。
其中,通过配置固有函数,可以为大部分行业的不同业务下的仿真过程提供基础函数功能,例如,可以基于随机函数,在随机函数的基础上叠加一些限制条件以生成随机数据。
在一个实例中,在需要生成身份证前6位时,结合实际的身份证编号规律(例如首位非零)对随机生成数字的函数进行限定。基于同样的原理,还可以生成生日、手机号的前3位、即时通讯账号、邮箱等。
在另一个实例中,在需要生成省份、城市时,可以通过随机生成指定范围内的数字以对省份、城市进行模拟,本领域技术人员可以根据实际需要对函数条件进行更改。
在已经配置固有函数的基础上,可以结合其他功能函数提供更为丰富的功能,例如可以通过功能函数生成身份证的后12位,结合固有函数生成的6位可以模拟完整的身份证编号。再例如,可以通过功能函数读取B市的地图内容,结合固有函数生成的省份、城市可以模拟生成完整的地址数据。基于同样的原理,还可以生成完整的姓名、手机号等。
其中,叠加功能函数所得到的数据可以种子文件的形式进行存储,例如可以如下表1所示的一个种子文件的部分内容。
表1
Nation(民族):汉族,蒙古族,回族,藏族,维吾尔族,苗族 |
Employee(职业):保镖,保姆,保安,裁缝,程序员,服装设计师 |
Color(颜色):红色,绿色,黄色,蓝色,橙色,青色,紫色,粉色 |
Jiudian(酒店):酒店a1,酒店a2,酒店a3 |
Ajzt(案件状态):受理01,破案02,立案03,结案04,调查取证05 |
在该表1中,“Nation”、“Employee”、“Color”、“Jiudian”、“Ajzt”可以作为固有函数,也可以作为种子文件中的键值,用于反映数据字段的一些属性。
在另一个实例中的一个种子文件中,可以存储1000组“姓名-身份证编号”,当后续需要仿真一个姓名和身份证数据时,可以从该种子文件中获取一个姓名和该姓名对应的一个身份证编号,而不再是完全随机的生成其他无关的编号,以此有利于反映业务数据之间的关联性。
除了基于函数得到种子文件的方式外,在该初始化准备过程中,用户也可以另外提供一些种子文件。以此可以在面临一些特殊行业(例如法律、网络安全、电商行业)时,由具备行业基本概念的用户自行提供一些专业术语,将专业术语作为种子文件中的种子数据,从而有助于生成的仿真数据能够更加贴合真实的业务数据。
作为一种实现方式,在生成仿真数据之前,用户可以自行配置多个种子文件的文件路径,多个种子文件的文件路径用于限定多个种子文件之间的关联关系。
当一个种子文件中存储有多个种子文件的文件路径时,包含有多个文件路径的第一种子文件可以被读取到内存中,以在生成仿真数据的过程中进行文件调用。
在一个实例中,一个第一种子文件的部分内容可以如下表2所示。
表2
Seed | Seed.txt |
Anjian | Anjian(案件).txt |
Car | Car.txt |
Ajlb | Ajlb(案件列表).txt |
xsajfl | Xsajfl(刑事案件分类).txt |
在该表2中,第一种子文件中包含有多个种子文件标识,以及每个种子文件标识对应的文件路径。表2中的“Seed”、“Anjian”、“Car”、“Ajlb”、“xsajfl”均表示种子文件标识,这些标识对应的“.txt”文件可以反映相应种子文件的文件路径。通过同一文件中各个种子文件的路径配置,可以反映数据表与数据表之间的关联,而“Xsajfl(刑事案件分类)”等种子文件可以提供法律、公安行业领域的专业术语。
在通过上述S13生成仿真数据时,可以通过第一种子文件的标识读取该第一种子文件中的各个子文件(“Seed”、“Anjian”、“Car”、“Ajlb”、“xsajfl”等文件)的内容,从而生成数据关联性较强的仿真数据。
在实际应用中,面对不同的业务需求,同一个文件中的各个子文件之间,部分文件的数据关联性可能较强,部分文件的数据关联性可能较弱,用户可以根据实际需要对种子文件进行灵活配置。
作为另一种实现方式,在生成仿真数据之前,用户可以自行配置种子文件的文件内容格式,种子文件的文件内容格式用于限定同一种子文件内的各个字段之间的关联关系。
实际应用中,可以通过数据行的分割、数据字段间的分割符配置,实现对于种子文件的文件内容格式配置,还可以通过导入并识别已有表格的方式完成对于种子文件的文件内容格式配置。当文件内容格式配置完成后,可以将种子文件及该文件中的文件内容格式加载并读取到内存中进行存储,以在生成仿真数据时进行调用。
在一个实例中,配置了文件内容格式的第二种子文件的部分内容如下表3所示。
表3
Anjian:idno,name,tel,ajbh,ajmc |
Car:idno,name,tel,carno,carbrand |
Ajlb(案件列表):code1,name1,code2,name2 |
Xsajfl(刑事案件分类):c1,n1,c2,n2,c3,n3,c4,n4 |
如表3所示,实际上对多个种子文件的文件格式内容进行了配置,在该表3中,冒号之前的名称为种子文件标识,在冒号之后以逗号进行分割的内容用于确定相应种子文件中的文件格式内容。其中,为了与存储有种子文件路径的文件进行对应,配置文件格式内容的种子文件在文件标识上可以与表2中的相应标识保持一致。
在“Car”这一种子文件中,文件格式为按照证件号码、姓名、联系方式、车牌号、车型进行排列存储,在“Anjian”这一种子文件中,文件格式为按照证件号码、姓名、联系方式、案件编号、案件名称进行排列存储。
当数据生成策略为“Car:carno:1”时,表示需要从“Car”这一种子文件标识对应的目标种子文件中,获取字段属性为“carno”的多个车牌号数据。
当完成数据源的准备阶段的所有配置后,配置的函数、种子文件、仿真数据的附加条件可以统一导入至用于生成仿真数据的程序,从而读取这些配置内容并保存在内存中,以便于在生成仿真程序时可以获取这些配置内容。
通过上述实现方式,可以基于种子文件的路径配置、种子文件的文件格式配置,解决数据表与数据表之间的业务关联问题、表内各个字段之间的业务关联问题,从而可以在考虑业务关联的情况下生成更加贴合实际的仿真数据。即使不同技术工种的研发人员是分别工作的,通过批量生成的具有业务关联的仿真数据也可以弥补因为无法及时得到其他真实数据所带来的问题,改善了让研发技术人员因需要长时间等待数据资源而拖慢研发进度的问题。
为了便于用户快速找到用于配置数据生成策略的入口,快速获取到业务需求内容,下面将对本申请实施例中的业务需求的确定阶段进行介绍。
相较于前述的仿真数据的生产阶段而言,业务需求的确定阶段可以视作在生成仿真数据之前的准备过程。
作为一种实现方式,用户可以通过元数据查询并获取数据库中的“系统业务数据原表信息”以确定目标文件,目标文件的文件格式是根据实际的业务需求制定的,目标文件中包括多个业务属性字段。在具体实施时,可以通过MySQL、Kafka、Hbase、ElasticSearch等技术获取目标文件。
作为另一种实现方式,用户可以通过在线下载的方式获取目标文件,并得到目标文件中的各个业务属性字段。
可以理解的是,本领域技术人员还可以通过其他方式获取业务需求内容,从而得到目标文件(可能是表格)中的各个业务属性字段,在确定业务属性字段的情况下,通过前述S11-13的方法为相应的目标文件批量生成仿真数据。
综上所述,通过上述方法,先进行初始化配置,得到生成仿真数据所需的函数、种子文件,通过配置种子文件的路径、文件格式内容,将配置好的内容预加载到生成仿真数据的程序中,并将配置内容及程序存储在存储介质中。在用户需要生成仿真数据时,仅需选取目标文件的业务属性字段以及配置相应的数据生成策略,即可为目标文件快速生成批量的仿真数据,降低了人为工作量,提升了数据资源的生产效率,无需让研发技术人员再因为长时间等待数据资源而拖慢研发进度,有助于研发技术人员提前进行开发。
基于同一发明构思,如图2所示,本申请实施例还提供一种数据生成装置200。该装置包括:获取模块201、配置模块202、生成模块203。
获取模块201,用于获取业务需求内容,业务需求内容包括目标文件的业务属性字段。
配置模块202,用于响应关于业务属性字段的配置操作,获取配置操作中的数据生成策略。
生成模块203,用于基于数据生成策略对应的数据生成方式,为业务属性字段生成仿真数据,数据生成方式包括基于设定的函数生成第一数据、基于种子文件生成第二数据中的至少一者。
通过上述数据生成装置200可执行前述的数据生成方法,能够快速生成批量的仿真数据,无需让研发人员再长时间等待数据而拖慢研发进度,有利于提升研发工作效率。
可选地,生成模块203还可用于根据数据生成策略中的种子文件标识、数据字段内容、字段概率确定数据生成方式,为业务属性字段生成仿真数据。
可选地,生成模块203还可用于当种子文件标识为空串时,基于字段概率,调用设定的函数,为数据字段内容生成第一数据,第一数据作为业务属性字段对应的仿真数据。
可选地,生成模块203还可用于当种子文件标识为非空串数据时,基于种子文件标识确定目标种子文件;根据数据字段内容以及字段概率,从目标种子文件中提取第二数据,第二数据作为业务属性字段对应的全部或部分仿真数据。
可选地,生成模块203还可用于在种子文件标识为非空串数据,且字段概率为非指定值时,基于字段概率的值,确定数据提取比例;以数据字段内容作为索引的键值,按照数据提取比例从目标种子文件中提取第二数据。
可选地,配置模块202还可用于配置多个种子文件的文件路径,多个种子文件的文件路径用于限定多个种子文件之间的关联关系;和/或,配置种子文件的文件内容格式,种子文件的文件内容格式用于限定同一种子文件内的各个字段之间的关联关系。
可选地,生成模块203还可用于以生成的仿真数据对应的文件作为新的种子文件,基于新的种子文件以及获取到的新的数据生成策略,生成新的仿真数据。
关于本申请实施例提供的数据生成装置200的其他细节,请参考前述数据生成方法中的相关描述,在此不再赘述。
基于同一发明构思,请参阅图3,本申请实施例还提供一种电子设备300,该电子设备300包括但不限于服务器、个人计算机等具有运算处理能力的设备。
如图3所示,该电子设备300包括存储器301、处理器302、通信单元303。通信单元303包括通信总线,通信总线用于实现电子设备300中各个组件之间的直接或间接连接。
存储器301是一种存储介质,可以是高速RAM存储器,也可以是非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器301可用于存储前述数据生成装置200中的各个功能模块及对应的计算机程序。
处理器302具有运算处理能力,可以是中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等通用处理器;还可以是专用处理器或者其他可编程逻辑器件搭建的处理器。处理器302可以实现本申请实施例提供的方法、步骤及逻辑框图。
存储器301上存储有处理器302可执行的计算机程序,计算机程序被处理器302执行时,实现前述的数据生成方法。
需要说明的是,图3所示结构仅作为示意,具体实施时可以有更多的组件,或具有不同于图3所示的其他配置方式。
除了上述实施例以外,本申请实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器302执行时执行前述的数据生成方法。该存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是U盘、移动硬盘、存储器301、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (7)
1.一种数据生成方法,其特征在于,所述方法包括:
获取业务需求内容,所述业务需求内容包括目标文件的业务属性字段;
响应关于所述业务属性字段的配置操作,获取所述配置操作中的数据生成策略;
基于所述数据生成策略对应的数据生成方式,为所述业务属性字段生成仿真数据,所述数据生成方式包括基于设定的函数生成第一数据、基于种子文件生成第二数据中的至少一者;
其中,所述数据生成策略包括种子文件标识、数据字段内容、字段概率;所述字段概率用于确定仿真数据在不同数据方式下的数据生成比例;
其中,所述基于所述数据生成策略对应的数据生成方式,为所述业务属性字段生成仿真数据,包括:
当所述种子文件标识为空串时,基于所述字段概率,调用所述设定的函数,为所述数据字段内容生成第一数据,所述第一数据作为所述业务属性字段对应的仿真数据;
当所述种子文件标识为非空串数据时,基于所述种子文件标识确定目标种子文件;根据所述数据字段内容以及所述字段概率,从所述目标种子文件中提取第二数据,所述第二数据作为所述业务属性字段对应的全部或部分仿真数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据字段内容以及所述字段概率,从所述目标种子文件中提取第二数据,包括:
在所述种子文件标识为非空串数据,且所述字段概率为非指定值时,基于所述字段概率的值,确定数据提取比例;以所述数据字段内容作为索引的键值,按照所述数据提取比例从所述目标种子文件中提取所述第二数据。
3.根据权利要求1所述的方法,其特征在于,在所述为所述业务属性字段生成仿真数据之前,所述方法还包括:
配置多个种子文件的文件路径,所述多个种子文件的文件路径用于限定多个种子文件之间的关联关系;
和/或,配置种子文件的文件内容格式,所述种子文件的文件内容格式用于限定同一种子文件内的各个字段之间的关联关系。
4.根据权利要求1所述的方法,其特征在于,在所述为所述业务属性字段生成仿真数据之后,所述方法还包括:
以生成的所述仿真数据对应的文件作为新的种子文件,基于所述新的种子文件以及获取到的新的数据生成策略,生成新的仿真数据。
5.一种数据生成装置,其特征在于,所述装置包括:
获取模块,用于获取业务需求内容,所述业务需求内容包括目标文件的业务属性字段;
配置模块,用于响应关于所述业务属性字段的配置操作,获取所述配置操作中的数据生成策略;
生成模块,用于基于所述数据生成策略对应的数据生成方式,为所述业务属性字段生成仿真数据,所述数据生成方式包括基于设定的函数生成第一数据、基于种子文件生成第二数据中的至少一者;
其中,所述数据生成策略包括种子文件标识、数据字段内容、字段概率;所述字段概率用于确定仿真数据在不同数据方式下的数据生成比例;
其中,在所述基于所述数据生成策略对应的数据生成方式,为所述业务属性字段生成仿真数据的过程中,所述生成模块还具体用于:
当所述种子文件标识为空串时,基于所述字段概率,调用所述设定的函数,为所述数据字段内容生成第一数据,所述第一数据作为所述业务属性字段对应的仿真数据;
当所述种子文件标识为非空串数据时,基于所述种子文件标识确定目标种子文件;根据所述数据字段内容以及所述字段概率,从所述目标种子文件中提取第二数据,所述第二数据作为所述业务属性字段对应的全部或部分仿真数据。
6.一种电子设备,其特征在于,所述电子设备包括:
存储器;
处理器;
所述存储器存储有所述处理器可执行的计算机程序,所述计算机程序被所述处理器执行时执行权利要求1-4任一项所述的方法。
7.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时执行权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911297802.2A CN111078668B (zh) | 2019-12-13 | 2019-12-13 | 数据生成方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911297802.2A CN111078668B (zh) | 2019-12-13 | 2019-12-13 | 数据生成方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078668A CN111078668A (zh) | 2020-04-28 |
CN111078668B true CN111078668B (zh) | 2023-03-21 |
Family
ID=70314875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911297802.2A Active CN111078668B (zh) | 2019-12-13 | 2019-12-13 | 数据生成方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078668B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113177022A (zh) * | 2021-04-29 | 2021-07-27 | 东北大学 | 铝/铜板带材生产全流程大数据存储方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105704167A (zh) * | 2014-11-24 | 2016-06-22 | 华为技术有限公司 | 一种业务链处理方法、设备及系统 |
CN105897664A (zh) * | 2015-01-26 | 2016-08-24 | 中兴通讯股份有限公司 | 一种对网络资源的恶意访问检测方法、装置及通信网关 |
CN109086442A (zh) * | 2018-08-16 | 2018-12-25 | 口口相传(北京)网络技术有限公司 | 业务数据的展示方法及装置 |
CN110442595A (zh) * | 2019-07-26 | 2019-11-12 | 南京南瑞继保电气有限公司 | 一种通用sql报表数据集构建的方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108154211B (zh) * | 2017-11-22 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 二维码生成、业务处理方法、装置和设备以及二维码 |
-
2019
- 2019-12-13 CN CN201911297802.2A patent/CN111078668B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105704167A (zh) * | 2014-11-24 | 2016-06-22 | 华为技术有限公司 | 一种业务链处理方法、设备及系统 |
CN105897664A (zh) * | 2015-01-26 | 2016-08-24 | 中兴通讯股份有限公司 | 一种对网络资源的恶意访问检测方法、装置及通信网关 |
CN109086442A (zh) * | 2018-08-16 | 2018-12-25 | 口口相传(北京)网络技术有限公司 | 业务数据的展示方法及装置 |
CN110442595A (zh) * | 2019-07-26 | 2019-11-12 | 南京南瑞继保电气有限公司 | 一种通用sql报表数据集构建的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111078668A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11449633B2 (en) | Data processing systems and methods for automatic discovery and assessment of mobile software development kits | |
US10339038B1 (en) | Method and system for generating production data pattern driven test data | |
US20190073646A1 (en) | Consolidated blockchain-based data transfer control method and system | |
CN108280365A (zh) | 数据访问权限管理方法、装置、终端设备及存储介质 | |
JP5939123B2 (ja) | 実行制御プログラム、実行制御方法および情報処理装置 | |
CN112612813B (zh) | 一种测试数据的生成方法和装置 | |
CN110879808B (zh) | 一种信息处理方法和装置 | |
CN110727857A (zh) | 针对业务对象识别潜在用户的关键特征的方法及装置 | |
US20210124752A1 (en) | System for Data Collection, Aggregation, Storage, Verification and Analytics with User Interface | |
CN112579604A (zh) | 测试系统的造数方法、装置、设备及存储介质 | |
CN114385722A (zh) | 接口属性的一致性校验方法、装置、电子设备和存储介质 | |
CN112749167A (zh) | 确定断链数据的方法、装置及非易失性存储介质 | |
CN111078668B (zh) | 数据生成方法、装置、电子设备和存储介质 | |
CN115858488A (zh) | 基于数据治理的平行迁移方法、装置及可读介质 | |
CN115114372A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN114138651A (zh) | 测试数据的生成方法及装置 | |
CN110502529B (zh) | 数据处理方法、装置、服务器及存储介质 | |
JP2022040601A (ja) | 暗号資産ブロックチェーン処理装置、処理方法、処理システム及び処理プログラム | |
CN115687599B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
US11386108B2 (en) | Mining data transformation flows in spreadsheets | |
CN115481026A (zh) | 测试案例的生成方法、装置、计算机设备、存储介质 | |
EP4281860A1 (en) | Unified data security labeling framework | |
CN106803202B (zh) | 一种待测试交易记录的提取方法和装置 | |
JP7052370B2 (ja) | 評価プログラム、評価方法及び情報処理装置 | |
CN111859985B (zh) | Ai客服模型测试方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |