一种数据生成系统、方法和可读存储介质与流程

文档序号:29312788发布日期:2022-03-19 20:40阅读:109来源:国知局
一种数据生成系统、方法和可读存储介质与流程

1.本发明属于数据处理技术领域,具体涉及一种数据生成系统、方法和可读存储介质。


背景技术:

2.随着移动互联网在快递物流行业里的应用越来越广泛,越来越多用户会产生大量各种规则的线上数据。数据是物流企业的生命。以中通掌中通为例,日活用户数超35万,日均启动次数超900万,庞大的用户群体和高频使用场景对数据的性能提出了更高要求。
3.在软件开发测试过程,经常需要测试数据。这些场景包括:1、后端开发:新建表后,需要构造数据库测试数据,生成接口数据提供给前端使用;2、数据库性能测试、模拟重现线上bug:生成大量铺底测试数据,测试数据库性能,实施全链路压测;基于测试环境的仿真基准数据,尽可能模拟用户产生数据的方式;3、流数据测试:针对kafka流数据,需要不断定时生成测试数据写入kafka。
4.目前,一般采用人工手动造几条数据写入数据库,但是这种方法带来以下弊端是
5.1、浪费工时:针对表的不同数据类型的字段,需要构造不同数据。
6.2、数据量小:如果需要构造大量数据,手动造数据无能为力。
7.3、不够准确:比如需要构造邮箱(满足一定格式),电话号码(确定的数字位数),ip地址(固定格式),年龄(不能为负数,有大小范围)等。这些测试数据有一定的限制或规律,手工构造可能不能满足数据范围或一些格式要求而导致后端程序报错。
8.4、多表关联:手动造的数据量较小,在多个表中用主键不一定能关联上,或者关联出来没数据。
9.5、动态随机写入:比如针对流数据,需要随机每隔几秒钟写入kafka。或者动态随机插入mysql,手工操作相对麻烦,而且不好统计写入数据条数。
10.无管理平台化:测试场景和执行设备及被测对象无法统一管理。不同版本间的性能数据对比困难,不易做两版本的性能趋势分析。
11.6、测试管理平台化:未做好数据的整合积累。测试数据、执行项目、被测对象和数据源测试数据的平台化。


技术实现要素:

12.为至少在一定程度上克服相关技术中存在的问题,提供一种数据生成系统、方法和可读存储介质。
13.根据本技术实施例的第一方面,提供一种数据生成系统,所述系统包括:参数解析器、元数据解析器、数据构造引擎、数据路由和数据源适配器;
14.所述参数解析器,用于采集元数据,并将所述元数据发送至元数据解析器;
15.所述元数据解析器,用于根据预设元数据生成规则对所述元数据进行解析,得到表字段元数据和数据构造规则;
16.数据构造引擎,用于根据所述数据构造规则,模拟生成不同类型的数据;
17.数据路由,用于将所述不同类型的数据分成批量数据和流数据,并将所述批量数据和流数据输出至数据源适配器中。
18.进一步的,所述参数解析器,具体用于:解析用户与数据平台交互产生的数据,得到所述元数据。
19.进一步的,所述元数据解析器,具体用于:
20.根据用户指定的元数据来源,从所述元数据中提取目标元数据;
21.根据预设元数据生成规则,对所述目标元数据的文本内容进行解析,得到表字段元数据和数据构造规则。
22.进一步的,所述数据路由,具体用于:
23.根据不同的数据输出类型,将所述不同类型的数据分成批量数据和流数据;
24.将所述批量数据和流数据的格式转换成用户指定的格式,并将转换成用户指定的格式后的所述批量数据和流数据输出至数据源适配器。
25.进一步的,所述数据源适配器适配多种的数据源。
26.根据本技术实施例的第二方面,提供一种数据生成方法,所述方法包括:
27.采集元数据;
28.根据预设元数据生成规则对所述元数据进行解析,得到表字段元数据和数据构造规则;
29.根据所述数据构造规则,模拟生成不同类型的数据;
30.将所述不同类型的数据分成批量数据和流数据,并将所述批量数据和流数据输出至各个数据源中。
31.进一步的,所述采集元数据,包括:
32.解析用户与数据平台交互产生的数据,得到所述元数据。
33.进一步的,所述根据预设元数据生成规则对所述元数据进行解析,得到表字段元数据和数据构造规则,包括:
34.根据用户指定的元数据来源,从所述元数据中提取目标元数据;
35.根据预设元数据生成规则,对所述目标元数据的文本内容进行解析,得到表字段元数据和数据构造规则。
36.进一步的,所述将所述不同类型的数据分成批量数据和流数据,并将所述批量数据和流数据输出至各个数据源中,包括:
37.根据不同的数据输出类型,将所述不同类型的数据分成批量数据和流数据;
38.将所述批量数据和流数据的格式转换成用户指定的格式,并将转换成用户指定的格式后的所述批量数据和流数据输出至各个数据源中。
39.根据本技术实施例的第三方面,提供一种可读存储介质,其上存储有可执行程序,所述可执行程序被处理器执行时实现上述技术方案中提供的数据生成方法的步骤。
40.本发明采用以上技术方案,能够达到的有益效果包括:通过参数解析器采集元数据,并将元数据发送至元数据解析器,元数据解析器根据预设元数据生成规则对元数据进行解析,得到表字段元数据和数据构造规则,数据构造引擎根据数据构造规则,模拟生成不同类型的数据,数据路由将不同类型的数据分成批量数据和流数据,并将批量数据和流数
据输出至数据源适配器中,不仅配置灵活性极强,支持从文本文件中读取数据,方便用户对字段取值进行精确控制,还可以反向解析数据,对程序的输出进行解析,方便自动化测试脚本进行比对。
附图说明
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1是根据一示例性实施例示出的一种数据生成系统的结构框图;
43.图2是根据一示例性实施例示出的识别生产环境和测试环境数据库表结构不一致的示意图;
44.图3是根据一示例性实施例示出的表数据变化监控的示意图;
45.图4是根据一示例性实施例示出的是一种数据生成方法的流程。
具体实施方式
46.为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
47.图1是根据一示例性实施例示出的一种数据生成系统的结构框图,如图1所示,该系统包括:参数解析器、元数据解析器、数据构造引擎、数据路由和数据源适配器;
48.参数解析器,用于采集元数据,并将元数据发送至元数据解析器;
49.元数据解析器,用于根据预设元数据生成规则对元数据进行解析,得到表字段元数据和数据构造规则;
50.数据构造引擎,用于根据数据构造规则,模拟生成不同类型的数据;
51.数据路由,用于将不同类型的数据分成批量数据和流数据,并将批量数据和流数据输出至数据源适配器中。
52.具体的,数据构造引擎中生成的不同类型的数据可以但不限于包括:自增id、整型、浮点型、日期、枚举、字符串、人名、街道、邮箱、电话号码、ip和短文等等。
53.本发明实施例提供的一种数据生成系统,通过参数解析器采集元数据,并将元数据发送至元数据解析器,元数据解析器根据预设元数据生成规则对元数据进行解析,得到表字段元数据和数据构造规则,数据构造引擎根据数据构造规则,模拟生成不同类型的数据,数据路由将不同类型的数据分成批量数据和流数据,并将批量数据和流数据输出至数据源适配器中,不仅配置灵活性极强,支持从文本文件中读取数据,方便用户对字段取值进行精确控制,还可以反向解析数据,对程序的输出进行解析,方便自动化测试脚本进行比对。
54.进一步的,参数解析器,具体用于:解析用户与数据平台交互产生的数据,得到元数据。
55.一些实施例中,可以但不限于解析用户从客户端命令行或者页面输入的,与数据平台交互产生的数据。
56.进一步的,元数据解析器,具体用于:
57.根据用户指定的元数据来源,从元数据中提取目标元数据;
58.根据预设元数据生成规则,对目标元数据的文本内容进行解析,得到表字段元数据和数据构造规则。
59.一些实施例中,元数据来源可以但不限于为来自本地文件、远程数据库表或者自定义线程数。
60.需要说明的是,本发明实施例对“预设元数据生成规则”不做限定,一些实施例中,可以由本领域技术人员根据实际需要进行设定。
61.进一步的,数据路由,具体用于:
62.根据不同的数据输出类型,将不同类型的数据分成批量数据和流数据;
63.将批量数据和流数据的格式转换成用户指定的格式,并将转换成用户指定的格式后的批量数据和流数据输出至数据源适配器。
64.可以理解的是,数据路由中包括输出格式转换器,用于将批量数据和流数据的格式转换成用户指定的格式。一些实施例中,用户指定的格式可以但不限于包括:文本、json、xml、csv、sql、excel或protobuftext等。
65.具体的,数据路由还用于:设定流数据的产生频率。
66.可以理解的是,数据路由中还包括:定时器,用于设定流数据的产生频率。
67.进一步的,数据源适配器适配多种的数据源。
68.具体的,数据源适配器是可扩展的,即可以扩展数据源。
69.一些实施例中,数据源适配器适配的数据源可以但不限于包括:myaql、hive、kafka、mongo、es和file等。
70.本发明实施例提供的一种数据生成系统,通过参数解析器采集元数据,并将元数据发送至元数据解析器,元数据解析器根据预设元数据生成规则对元数据进行解析,得到表字段元数据和数据构造规则,数据构造引擎根据数据构造规则,模拟生成不同类型的数据,数据路由将不同类型的数据分成批量数据和流数据,并将批量数据和流数据输出至数据源适配器中,不仅配置灵活性极强,支持从文本文件中读取数据,方便用户对字段取值进行精确控制,还可以反向解析数据,对程序的输出进行解析,方便自动化测试脚本进行比对。
71.本发明实施例提供的一种数据生成系统将测试数据、生成规则、数据类型和批量生成数据的定时时间进行平台化;提供了功能强大的语法,分组、区间、步长、循环、随机、格式化、函数和前后缀等,配置灵活性极强;支持从文本文件中读取数据,方便用户对字段取值进行精确控制;使用预制的序列(ranges)、实例(instances)、配置(config)对定义进行复用,以解决复杂数据格式的定义;支持文本、json、xml、csv、sql、excel、protobuf多种输出格式;可以反向解析数据,可以对程序的输出进行解析,方便自动化测试脚本进行比对。
72.本发明实施例提供的一种数据生成系统,对多数据源测试数据构造,可以模拟产生大部分常用数据类型,可直观的更有效的自定义生成性能数据,通过测试为项目提高质量保障性。具体如下:
73.第一点:如图2所示,用户可以通过该系统可以识别出生产环境和测试环境数据库表结构不一致,并得到表结构订正的ddl语句,确保生产环境和测试环境表结构完全一致;
74.第二点:数据追踪与回滚,用户每天都要对数据增删改查,而程序bug或误操作都会导致数据被篡改,之前对于这种数据篡改,用户很难排查出数据何时被篡改,也无法恢复数据。而本发明实施例提供的一种数据生成系统的页面可以数据追踪和数据回滚功能,搜索整个库、具体表或某条记录的变更日志,并根据误操作影响范围将数据恢复到误操作之前的时间点。
75.第三点:如图3所示,利用本发明实施例提供的一种数据生成系统可以进行表数据变化监控。
76.第四点:绘制sql结果集的图表,现有技术通常通过sql来查出数据,然后,再将数据导入到execl中,制作折线图、饼图等静态图表,过程相对繁琐。本发明实施例提供的一种数据生成系统,直接基于sql结果集来绘制图表,还可以制作很多高级图表,如动态图表、环比、个性化tooltip等,让项目干系人高质量完成工作。
77.第五点:实时优化数据库性能,现有技术中数据库的性能优化需要以长时间详细的监控记录为基础,并进行细致分析和异常定位,才能更好地有效优化并提升其性能。本发明实施例提供的一种数据生成系统,提供了数据库性能秒级监控,包含select/insert/update/delete、活跃连接数以及网络流量等指标,让我们不错过任何性能波动。另外,还可以支持数据库会话中运行sql展示,还支持杀死会话,而会话分类统计能帮助用户快速定位异常sql来源。
78.第六点:更便捷的数据操作,现有技术中的产品、pm或业务需要通过一款便捷而功能全面的产品来完成sql操作,保存常用的操作数据,并应用到具体的业务中。本发明实施例提供的一种数据生成系统,通过打开表功能,用户可以类似execl方式操作表数据,不懂sql也能对表数据增删改查以及统计分析;业务也可以自定义sql,用户可以保存常用业务sql,并在管理其他数据库/实例中直接应用这些sql。
79.第七点:sql复用,现有技术中用户访问数据库,几乎都会执行sql,简单查询sql比较容易上手,但对于复杂分析或带有业务逻辑的查询,每次重新编写成本太高,保存到文本中,需要持续维护对应关系且无法随时随地使用。本发明实施例提供的一种数据生成系统,可以将常用sql保存到本系统,sql复用不受本地保存的限制,复用范围灵活,无论当前数据库、当前实例还是全部实例。
80.第八点:库表结构的可视化展示,现有技术中产品在设计新业务表或梳理已有业务表时,往往要整体了解数据库中所有表的结构,之前用户可以通过命令逐一展示并粘贴,但不够直观,也可以通过工具可视化展示并截图,但很不方便。本发明实施例提供的一种数据生成系统,用户通过数据生成管理平台生成文档功能,可以一键生成整个数据库的表结构,可以在线浏览,也可以导成word、execl、pdf等格式。
81.本发明实施例还提供一种数据生成方法,如图4所示,该方法可以但不限于用于终端,包括以下步骤:
82.步骤101:采集元数据;
83.步骤102:根据预设元数据生成规则对元数据进行解析,得到表字段元数据和数据构造规则;
84.步骤103:根据数据构造规则,模拟生成不同类型的数据;
85.步骤104:将不同类型的数据分成批量数据和流数据,并将批量数据和流数据输出至各个数据源中。
86.进一步的,步骤101采集元数据,包括:
87.解析用户与数据平台交互产生的数据,得到元数据。
88.进一步的,步骤102根据预设元数据生成规则对元数据进行解析,得到表字段元数据和数据构造规则,包括:
89.根据用户指定的元数据来源,从元数据中提取目标元数据;
90.根据预设元数据生成规则,对目标元数据的文本内容进行解析,得到表字段元数据和数据构造规则。
91.进一步的,步骤104将不同类型的数据分成批量数据和流数据,并将批量数据和流数据输出至各个数据源中,包括:
92.根据不同的数据输出类型,将不同类型的数据分成批量数据和流数据;
93.将批量数据和流数据的格式转换成用户指定的格式,并将转换成用户指定的格式后的批量数据和流数据输出至各个数据源中。
94.本发明实施例提供的一种数据生成方法,通过采集元数据,根据预设元数据生成规则对元数据进行解析,得到表字段元数据和数据构造规则,根据数据构造规则,模拟生成不同类型的数据,将不同类型的数据分成批量数据和流数据,并将批量数据和流数据输出至各个数据源中,不仅配置灵活性极强,支持从文本文件中读取数据,方便用户对字段取值进行精确控制,还可以反向解析数据,对程序的输出进行解析,方便自动化测试脚本进行比对。
95.本发明实施例还提供一种可读存储介质,其上存储有可执行程序,可执行程序被处理器执行时实现上述实施例提供的一种数据生成方法的步骤。
96.可以理解的是,上述提供的系统实施例与上述的方法实施例对应,相应的具体内容可以相互参考,在此不再赘述。
97.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
98.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
99.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令方法的制造品,该指令方法实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
100.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
101.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1