CN114461649A - 表数据生成方法、装置及存储介质 - Google Patents
表数据生成方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114461649A CN114461649A CN202210370752.1A CN202210370752A CN114461649A CN 114461649 A CN114461649 A CN 114461649A CN 202210370752 A CN202210370752 A CN 202210370752A CN 114461649 A CN114461649 A CN 114461649A
- Authority
- CN
- China
- Prior art keywords
- data
- generated
- configuration information
- time
- data generation
- 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.)
- Pending
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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种表数据生成方法、装置及存储介质,涉及信息技术领域,该方法包括:获取本次待生成表数据的配置信息,本次待生成表数据的配置信息包括表配置信息及表字段配置信息,表配置信息包括待生成数据量,表字段配置信息包括用于生成表数据的数据生成规则,数据生成规则包括表与表之间的约束关联关系,表数据为与表字段对应的数据;基于数据生成规则生成与待生成数据量对应的表数据。本申请实施例提供的方法,能够提升表数据生成的效率。
Description
技术领域
本申请实施例涉及信息技术领域,尤其涉及一种表数据生成方法、装置及存储介质。
背景技术
在计算机软件测试和验证等应用场景中,经常需要为关系型数据库中的表生成测试数据。而表与表之间通常存在关联关系,例如,表与表的字段之间存在约束关联关系,在表数据生成过程中,需要根据表与表之间的关联关系,依照特定顺序生成表数据,导致表数据的生成具有强耦合关系,使得表数据的生成效率低下。
发明内容
本申请实施例提供了一种表数据生成方法、装置及存储介质,可以提升表数据生成的效率。
第一方面,本申请实施例提供了一种表数据生成方法,包括:
获取本次待生成表数据的配置信息,所述本次待生成表数据的配置信息包括表配置信息及表字段配置信息,所述表配置信息包括待生成数据量,所述表字段配置信息包括用于生成表数据的数据生成规则,所述数据生成规则包括表与表之间的约束关联关系,所述表数据为与表字段对应的数据;
基于所述数据生成规则生成与所述待生成数据量对应的表数据。
本申请实施例中,通过对各个表内的字段设置对应的数据生成规则,由此可以使得各个表之间能够独立进行数据生成,无需依赖表与表之间的预先配置的关联关系,从而可以提升表数据生成的效率。
其中一种可能的实现方式中,本次待生成的表有多个,所述基于所述数据生成规则生成与所述待生成数据量对应的表数据包括:
基于每个表的待生成数据量将所述本次待生成的表进行划分,得到多个簇,其中,每个簇包括一个或多个表;
将所述多个簇分配至多个不同的线程,并基于所述数据生成规则对每个簇中的每个表进行数据生成,得到与每个表的待生成数据量对应的表数据,其中,一个簇对应一个线程。
本申请实施例中,根据待生成数据量对多个表进行簇的划分,并由不同的线程进行数据生成,可以发挥多线程的最优性能,从而可以提高数据生成的效率
其中一种可能的实现方式中,当得到任意一个表的表数据后,将所述已生成表数据的表从内存中删除。
本申请实施例中,通过对已生成的表从内存中删除,可以减轻内存的占用,避免内存溢出。
其中一种可能的实现方式中,所述基于每个表的待生成数据量将所述本次待生成的表进行划分,得到多个簇包括:
获取每个表的字段总数;
基于每个表的待生成数据量与字段总数的乘积将所述本次待生成的表进行划分,得到多个簇。
本申请实施例中,通过数据行数与字段总数的乘积计算待生成数据量,可以更准确的计算待生成数据量,从而可以更优的对待生成的表进行簇的划分,进而可以更优的发挥多线程的性能。
其中一种可能的实现方式中,所述数据生成规则包括随机数种子,所述随机数种子用于保证本次待生成的表的表数据与下次待生成的表的表数据不同。
本申请实施例中,通过在数据生成规则中设置随机数种子,可以保证每次生成的测试数据都不同,由此可以提高数据测试的效率。
其中一种可能的实现方式中,所述随机数种子为当前时刻的时间戳。
第二方面,本申请实施例提供一种表数据生成装置,包括:
获取模块,用于获取本次待生成表数据的配置信息,所述本次待生成表数据的配置信息包括表配置信息及表字段配置信息,所述表配置信息包括待生成数据量,所述表字段配置信息包括用于生成表数据的数据生成规则,所述数据生成规则包括表与表之间的约束关联关系,所述表数据为与表字段对应的数据;
生成模块,用于基于所述数据生成规则生成与所述待生成数据量对应的表数据。
其中一种可能的实现方式中,本次待生成的表有多个,上述生成模块还用于基于每个表的待生成数据量将所述本次待生成的表进行划分,得到多个簇,其中,每个簇包括一个或多个表;
将所述多个簇分配至多个不同的线程,并基于所述数据生成规则对每个簇中的每个表进行数据生成,得到与每个表的待生成数据量对应的表数据,其中,一个簇对应一个线程。
其中一种可能的实现方式中,上述表数据生成装置还包括:
删除模块,用于当得到任意一个表的表数据后,将所述已生成表数据的表从内存中删除。
其中一种可能的实现方式中,上述生成模块还用于获取每个表的字段总数;
基于每个表的待生成数据量与字段总数的乘积将所述本次待生成的表进行划分,得到多个簇。
其中一种可能的实现方式中,所述数据生成规则包括随机数种子,所述随机数种子用于保证本次待生成的表的表数据与下次待生成的表的表数据不同。
其中一种可能的实现方式中,所述随机数种子为当前时刻的时间戳。
第三方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。
第四方面,本申请实施例提供一种计算机程序,当上述计算机程序被计算机执行时,用于执行第一方面所述的方法。
在一种可能的设计中,第四方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
附图说明
图1为关系型数据库中的表结构示意图;
图2为本申请实施例提供的表数据生成方法的流程示意图;
图3为本申请实施例提供的表数据生成装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在计算机软件测试和验证等应用场景中,经常需要为关系型数据库中的表生成测试数据。而表与表之间通常存在关联关系,例如,表与表的字段之间存在约束关联关系,在表数据生成过程中,需要根据表与表之间的关联关系,依照特定顺序生成表数据,导致表数据的生成具有强耦合关系,使得表数据的生成效率低下。
图1为关系型数据库中的表结构。如图1所示,product表的pid字段和order表的product字段具有关联关系,transaction表中的tid字段和order表中的transaction字段具有关联关系。示例性的,上述关联关系可以是:在order表的transaction和transaction表的tid相同情况下,order表的orderDate应该小于transaction表的paymentDate,transaction表的amount应该等于product表的price和order表的productNumber相乘的结果。在数据生成过程中,受限于这些不同表字段间的约束关联关系,需要保证product表先于order表生成数据,order表先于transaction表生成数据。product表完成数据生成后,order表在数据生成过程中再去读取product表中的pid字段来生成自己的product字段,order表在完成数据生成后,transaction表再去读取order表和product中的数据,根据字段间的约束关系来生成tid,amout和paymentDate字段。
在表数据生成的过程中,需要预先配置数据库中表与表之间的字段的依赖关系,然后根据预先配置的依赖关系生成表数据。由于字段间的约束关联关系复杂多样,很难找到统一的方式进行配置并解析,且不易扩展,由此造成数据生成的效率低下。
基于上述问题,本申请实施例提出了一种表数据生成方法。
现结合图2对本申请实施例提供的表数据生成方法进行说明。
如图2所示为本申请实施例提供的表数据生成方法一个实施例的流程示意图,具体包括以下步骤:
步骤201,获取本次待生成表数据的配置信息,本次待生成表数据的配置信息包括表配置信息及表字段配置信息,表配置信息包括待生成数据量,表字段配置信息包括用于生成表数据的数据生成规则,数据生成规则包括表与表之间的约束关联关系,表数据为与表字段对应的数据。
具体地,本次待生成表数据可以是本次将生成的表数据,本次待生成表数据可以是根据用户的需求生成的表数据。在具体实现时,用户的需求可以通过配置信息进行预先配置。示例性的,本次待生成表数据的配置信息可以包括表配置信息及表字段配置信息。其中,表配置信息用于对本次待生成的表的信息进行配置。例如,表配置信息可以包括本次待生成的表名信息及待生成数据量信息。其中,表名信息用于表征本次待生成的表的名称。待生成数据量信息用于表征本次待生成的表中所含的数据量。其中,待生成数据量可以通过行数表征。示例性的,待生成数据量为2000表示有待生成的2000行数据,每一行数据包括与表字段对应的数据。表1示例性的示出了表配置信息的配置格式。
表1
表名 | 待生成数据量 | |
1 | product | 2000 |
2 | order | 30000 |
3 | transaction | 25000 |
如表1所示,表配置信息中包括三个表名,分别为product、order及transaction。也就是说,本次将生成3个名称分别为product、order及transaction的表。其中,product表的待生成数据量为2000,也就是说,product表要生成2000行数据;order表的待生成数据量为30000,也就是说,order表要生成30000行数据;transaction表的待生成数据量为25000,也就是说,transaction表要生成25000行数据。
表字段配置信息用于对表字段信息进行配置。例如,表字段配置信息可以包括字段所属表信息、字段名称信息、数据生成规则信息。字段所属表信息用于表征当前字段所属的表;字段名称信息用于表征当前字段的名称;数据生成规则信息用于表征与当前字段对应的数据生成规则,数据生成规则还可以包括表与表之间的约束关联关系。以表1的表配置信息为例,表2示例性的示出了表字段配置信息的配置格式,其中,表2中的表字段所属的是表1中的表。
表2
字段所属表 | 字段名称 | 数据生成规则 | |
1 | product | pid | AutoIncrement(${i}) |
2 | product | pName | MockName() |
3 | product | price | RandFloat(1,${0}+ASCII(price)) |
4 | order | oid | AutoIncrement(${i}) |
5 | order | transaction | RandString(${i},ASCII(transaction),20) |
6 | order | product | RandomInt(1,${1}+ASCII(product),1,2000) |
7 | order | productNumber | RandomInt(1,${1}+ASCII(productNumber),-1,-1) |
8 | order | orderDate | RandomDate(1,${1}+ASCII(orderDate),null,null) |
9 | transaction | tid | RandString(${i},ASCII(transaction),20) |
10 | transaction | amount | GetTranAmount([RandomInt(1,${0}+ASCII(productNumber),-1,-1)],[RandFloat(1,[RandomInt(1,${0}+ASCII(product),1,2000)]+ASCII(price))]) |
11 | transaction | paymentDate | RandomDate(1,${0},[RandomDate(1,${0}+ASCII(orderDate),null,null)],null) |
如表2所示,product表包含3个字段,分别为:pid、pName及price。其中,与pid字段对应的数据生成规则为AutoIncrement(${i}),AutoIncrement为数据生成函数的名称,${i}表示数据行的索引,可以作为参数传递给数据生成函数。代码示例如下:
public int AutoIncrement(int i){
return i;
}
与pName字段对应的数据生成规则为MockName(),pName字段与其他字段没有关联关系,可以通过MockName函数随机生成一个姓名即可。
与price字段对应的数据生成规则为RandFloat(1,${0}+ASCII(price))。其中,RandFloat函数用于生成一个随机浮点数,RandFloat函数包括两个参数,第一个参数为整数,可以是自定义整数,例如1,也可以是${i}。第二参数中的${0}表示同行数据中的第一个字段的值,示例性的,由于pid为每一行数据的第一个字段,因此,该${0}可以是同行数据的pid字段的值。ASCII(price)表示price字母中p,r,i,c,e对应的ASCII值之和。可以理解的是,当每生成一条数据的price字段对应的值时,可以首先将参数中的${0}替换为该条数据中的第一个字段pid对应的值,然后,执行RandFloat函数生成与price字段对应的值。
再例如,transaction表中的与paymentDate字段对应的数据生成规则为RandomDate(1,${0},[RandomDate(1,${0}+ASCII(orderDate),null,null)],null)。其中,[RandomDate(1,${0}+ASCII(orderDate),null,null)]用于生成与关联order表中的orderDate字段的值相同的值,并将orderDate字段的值作为生成日期的最小值,由此来保证paymentDate字段生成的日期值是大于关联order表中的orderDate的值,从而可以保证表与表之间的约束关联关系。可见,本申请实施例中,通过预设的数据生成规则可以独立的生成当前表的表数据,无需依赖已生成表中的表数据,由此可以降低表与表之间的耦合性,进而可以提高数据生成的效率。
可以理解的是,其余表的字段的数据生成规则具体可以参考上述实施例,在此不再赘述。
此外,需要说明的是,在每次生成price字段对应的数据时,由于都是基于同一行数据的pid字段的值,因此,每次生成price字段对应的数据都是相同的。其中,一次指的是生成所有待生成数据的数据量所对应的周期。示例性的,product表的待生成数据量为2000,若完成product表的2000行数据的生成后,则可以认为完成了本次的数据生成;若进入product表的下次的数据生成,则下次还是2000行数据。如果每次生成的数据相同,则测试或验证的效率就会降低。为了避免每次生成的数据相同,可以预先设置随机数种子globalSeed,由此可以使得RandFloat函数每次生成的数据都可以不相同。在具体实现时,该随机数种子可以是当前时刻的时间戳。代码示例如下:
public float RandFloat(int i,int seed){
Random random=new Random(seed:globalSeed+seed*i);
return random.random.nextFloat();
}
步骤202,基于数据生成规则生成与待生成数据量对应的表数据。
具体地,当获取到本次待生成表数据的配置信息后,可以根据本次待生成表数据的配置信息中的数据生成规则生成与待生成数据量对应的表数据。
可以理解的是,在表数据生成的过程中,可以依次生成本次待生成的表,以表1中的表为例,可以依次生成product表、order表及transaction表。在生成任一表的表数据的过程中,可以根据数据生成规则生成与待生成数据量对应的表数据。以product表为例,product表包含pid、pName及price字段。由于product表的待生成数据量为2000,因此,根据数据生成规则AutoIncrement(${i})可以生成2000条与pid字段对应的数据,根据数据生成规则MockName()可以生成2000条与pName字段对应的数据,根据数据生成规则RandFloat(1,${0}+ASCII(price)) 可以生成2000条与price字段对应的数据;由此可以获得product表的2000行数据,其中,每一行数据包括与pid、pName及price字段对应的数据,从而可以完成product表的表数据的生成。
可见,当通过上述分别与pid、pName及price字段对应的数据生成规则生成与pid、pName及price字段对应的数据后,可以完成product表数据的生成。通过在配置信息中预设数据生成规则,可以无需依赖表与表之间的关联关系,可以独立的生成表数据,也无需根据表与表之间的关系预先设置复杂的约束关联关系,由此可以提高表数据的生成效率。order表数据及transaction表数据的生成方式具体可以参考上述product表数据的生成方式,在此不再赘述。当通过上述分别与oid、transaction、product、productNumber及orderDate字段对应的数据生成规则生成与oid、transaction、product、productNumber及orderDate字段对应的数据后,可以完成order表数据的生成,其中,order表可以包含30000行数据,每一行数据可以包含与oid、transaction、product、productNumber及orderDate字段对应的数据。当通过上述分别与tid、amount及paymentDate字段对应的数据生成规则生成与tid、amount及paymentDate字段对应的数据后,可以完成transaction表数据的生成,其中,transaction表可以包含25000行数据,每一行数据可以包含与tid、amount及paymentDate字段对应的数据。
此外,为了进一步提高数据的处理效率,还可以将待生成的表进行簇的划分。在具体实现时,由于每个簇中的数据的处理是由单独的线程进行,因此,簇的划分的原则可以是根据簇中的数据量进行。示例性的,以表1中的表为例,product表的待生成数据量为2000,order表的待生成数据量为30000,transaction表的待生成数据量为25000。因此,可以将product表和transaction表划分为一个簇,例如簇1:{product,transaction},将order表单独划分为一个簇,例如簇2:{order}。此时,簇1的待生成数据量为2000+25000=27000,簇2的待生成数据量为30000,可见,簇1和簇2的待生成数据量为大体相当,由此可以将待生成数据量均匀的分配到线程中,例如,将簇1分配到线程1进行数据生成,将簇2分配到线程2进行数据生成,其中,线程1和线程2为不同的2个线程,由此可以利用多线程发挥较优的数据处理性能,从而可以提高数据生成的效率。可以理解的是,上述示例仅通过两个线程进行了示例性说明,但并不构成对本申请实施例的限定,在一些实施例中,还可以将多个表划分成多个簇,并将多个簇分配至多个线程中进行处理。
需要说明的是,上述配置信息中的待生成数据量仅用于表征待生成的表中的数据的行数。而每一行数据中包括与字段对应的数据,如果两个表的字段数相当,则可以通过行数区分数据量,若两个表的字段数相差较大,则通过行数来区分数据量可能会带来误差。此时,可以将行数*字段数作为待生成数据量,由此可以更准确的区分数据量,从而可以更准确的根据数据量进行簇的划分,避免因为数据量不准确导致簇划分不准确,使得线程无法发挥较优的性能。
进一步地,由于在现有技术中,当前表的表数据的生成是依赖于前序生成的表的,例如,表2的生成是依赖于表1的,表1已先于表2生成,此时,表1需要缓存在内存中,由此可以使得表2在生成时可以调用内存中的表1,如果内存中无法查询到表1,则会导致表2生成失败,由此会造成内存的大量占用。尤其在大数据量生成的时候,由于会发生大量的表的内存占用,由此可能会导致内存溢出。因此,在本申请实施例中,由于每个表的生成都是独立的,表与表之间是没有依赖关系的,由此,可以直接将已生成的表存储至数据库,并可以将该表从内存中删除。也就是说,每当一个表的表数据生成之后,可以将该表存储至数据库,并可以将该表从内存中删除,无需将该表持续地缓存在内存中,由此可以避免对缓存的占用,提高内存的使用效率,避免内存溢出。
图3为本申请表数据生成装置一个实施例的结构示意图,如图3所示,上述表数据生成装置30可以包括:获取模块31及生成模块32;其中,
获取模块31,用于获取本次待生成表数据的配置信息,所述本次待生成表数据的配置信息包括表配置信息及表字段配置信息,所述表配置信息包括待生成数据量,所述表字段配置信息包括用于生成表数据的数据生成规则,所述数据生成规则包括表与表之间的约束关联关系,所述表数据为与表字段对应的数据;
生成模块32,用于基于所述数据生成规则生成与所述待生成数据量对应的表数据。
其中一种可能的实现方式中,本次待生成的表有多个,上述生成模块32还用于基于每个表的待生成数据量将所述本次待生成的表进行划分,得到多个簇,其中,每个簇包括一个或多个表;
将所述多个簇分配至多个不同的线程,并基于所述数据生成规则对每个簇中的每个表进行数据生成,得到与每个表的待生成数据量对应的表数据,其中,一个簇对应一个线程。
其中一种可能的实现方式中,上述表数据生成装置30还包括:
删除模块33,用于当得到任意一个表的表数据后,将所述已生成表数据的表从内存中删除。
其中一种可能的实现方式中,上述生成模块32还用于获取每个表的字段总数;
基于每个表的待生成数据量与字段总数的乘积将所述本次待生成的表进行划分,得到多个簇。
其中一种可能的实现方式中,所述数据生成规则包括随机数种子,所述随机数种子用于保证本次待生成的表的表数据与下次待生成的表的表数据不同。
其中一种可能的实现方式中,所述随机数种子为当前时刻的时间戳。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种表数据生成方法,其特征在于,所述方法包括:
获取本次待生成表数据的配置信息,所述本次待生成表数据的配置信息包括表配置信息及表字段配置信息,所述表配置信息包括待生成数据量,所述表字段配置信息包括用于生成表数据的数据生成规则,所述数据生成规则包括表与表之间的约束关联关系,所述表数据为与表字段对应的数据;
基于所述数据生成规则生成与所述待生成数据量对应的表数据。
2.根据权利要求1所述的方法,其特征在于,本次待生成的表有多个,所述基于所述数据生成规则生成与所述待生成数据量对应的表数据包括:
基于每个表的待生成数据量将所述本次待生成的表进行划分,得到多个簇,其中,每个簇包括一个或多个表;
将所述多个簇分配至多个不同的线程,并基于所述数据生成规则对每个簇中的每个表进行数据生成,得到与每个表的待生成数据量对应的表数据,其中,一个簇对应一个线程。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当得到任意一个表的表数据后,将已生成表数据的表从内存中删除。
4.根据权利要求2所述的方法,其特征在于,所述基于每个表的待生成数据量将所述本次待生成的表进行划分,得到多个簇包括:
获取每个表的字段总数;
基于每个表的待生成数据量与字段总数的乘积将所述本次待生成的表进行划分,得到多个簇。
5.根据权利要求1所述的方法,其特征在于,所述数据生成规则包括随机数种子,所述随机数种子用于保证本次待生成的表的表数据与下次待生成的表的表数据不同。
6.根据权利要求5所述的方法,其特征在于,所述随机数种子为当前时刻的时间戳。
7.一种数据生成装置,其特征在于,包括:一个或多个功能模块,所述一个或多个功能模块用于执行权利要求1-6任一所述的表数据生成方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在计算机上运行时,执行如权利要求1-6任一所述的表数据生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210370752.1A CN114461649A (zh) | 2022-04-11 | 2022-04-11 | 表数据生成方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210370752.1A CN114461649A (zh) | 2022-04-11 | 2022-04-11 | 表数据生成方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114461649A true CN114461649A (zh) | 2022-05-10 |
Family
ID=81418395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210370752.1A Pending CN114461649A (zh) | 2022-04-11 | 2022-04-11 | 表数据生成方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114461649A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615667A (zh) * | 2015-01-13 | 2015-05-13 | 联动优势电子商务有限公司 | 一种基础数据生成方法、测试用数据生成方法及其装置 |
CN105808437A (zh) * | 2016-03-09 | 2016-07-27 | 广州彩瞳网络技术有限公司 | 基于测试用例数据表的自动化测试方法及系统 |
CN111552690A (zh) * | 2020-03-31 | 2020-08-18 | 深圳壹账通智能科技有限公司 | 数据生成方法、装置、终端及存储介质 |
-
2022
- 2022-04-11 CN CN202210370752.1A patent/CN114461649A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615667A (zh) * | 2015-01-13 | 2015-05-13 | 联动优势电子商务有限公司 | 一种基础数据生成方法、测试用数据生成方法及其装置 |
CN105808437A (zh) * | 2016-03-09 | 2016-07-27 | 广州彩瞳网络技术有限公司 | 基于测试用例数据表的自动化测试方法及系统 |
CN111552690A (zh) * | 2020-03-31 | 2020-08-18 | 深圳壹账通智能科技有限公司 | 数据生成方法、装置、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062802B (zh) | 一种软件测试方法、计算机可读存储介质及终端设备 | |
WO2022126983A1 (zh) | 电子报表文件导出方法、装置、设备及存储介质 | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN107301214B (zh) | 在hive中数据迁移方法、装置及终端设备 | |
CN102460076A (zh) | 生成测试数据 | |
US6708185B2 (en) | SQL execution analysis | |
CN106649828A (zh) | 一种数据查询方法及系统 | |
CN111061758A (zh) | 数据存储方法、装置及存储介质 | |
CN112380278A (zh) | 财务数据报表的生成方法、装置、设备及存储介质 | |
CN112699098A (zh) | 一种索引数据迁移方法、装置及设备 | |
CN111813849A (zh) | 数据抽取方法、装置及设备、存储介质 | |
CN110737673B (zh) | 一种数据处理的方法及系统 | |
CN111680083B (zh) | 智能化多级政府财政数据采集系统及数据采集方法 | |
CN111857981A (zh) | 一种数据处理方法以及装置 | |
CN105786990B (zh) | 数据库数据存储和快速查询的方法及装置 | |
CN114461649A (zh) | 表数据生成方法、装置及存储介质 | |
CN116401238A (zh) | 偏离度监测方法、装置、设备、存储介质和程序产品 | |
CN107273293B (zh) | 大数据系统性能测试方法、装置及电子设备 | |
CN115794870A (zh) | 针对一元基数约束的查询模板参数实例化方法 | |
US20190318023A1 (en) | Efficient Data Processing | |
CN114595215A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111651466B (zh) | 数据采样方法及装置 | |
CN113220726A (zh) | 一种数据质量检测方法及系统 | |
CN109165238B (zh) | 一种用于生成周期指标数据的数据处理方法及装置 | |
CN114780642B (zh) | 一种区块链数据处理方法、装置及电子设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220510 |