时序数据库测试方法、装置、计算机设备及存储介质与流程

专利2022-05-10  24



1.本技术涉及数据处理领域,特别涉及一种时序数据库测试方法、装置、计算机设备及存储介质。


背景技术:

2.随着物联网技术的快速发展,物联网大数据问题开始凸显,物联网数据的海量特性给数据质量控制、数据存储、数据压缩、数据集成、数据融合、数据查询带来极大挑战,其中,对时序数据库性能的评估是物联网大数据存储的基础。
3.在相关技术中,物联网场景下对时序数据库的测试,通常通过测试工具对时序数据库进行写入读取测试,通过对时序数据库写入和读取过程所消耗的时间,来评定时序数据库的性能优劣。
4.然而,相关技术中,通过测试工具对时序数据库进行写入读取测试时,测试出的性能结果与实际业务处理能力相差较大。


技术实现要素:

5.本技术实施例提供了一种时序数据库测试方法、装置、计算机设备及存储介质,可以根据时序数据库的格式进行时序数据库的测试,提高测试准确性,该技术方案如下:
6.一方面,提供了一种时序数据库测试方法,所述方法包括:
7.接收对时序数据库的测试指令,所述测试指令用于指示对所述时序数据库进行性能测试;所述时序数据库用于存储物联网场景中物联网设备随时间产生的设备数据;
8.获取所述时序数据库的目标格式;所述目标格式是根据所述时序数据库的数据表结构确定的;
9.根据所述目标格式的目标数据,对所述时序数据库进行测试,获取所述时序数据库的性能参数;所述性能参数包括查询性能参数与写入性能参数的至少一者;所述查询性能参数用于指示进行查询测试时,所述时序数据库的性能;所述写入性能参数用于指示进行写入测试时,所述时序数据库的性能。
10.又一方面,提供了一种时序数据库测试装置,所述装置包括:
11.测试指令接收模块,用于接收对时序数据库的测试指令,所述测试指令用于指示对所述时序数据库进行性能测试;所述时序数据库用于存储物联网场景中物联网设备随时间产生的设备数据;
12.目标格式获取模块,用于获取所述时序数据库的目标格式;所述目标格式是根据所述时序数据库的数据表结构确定的;
13.性能参数获取模块,用于根据所述目标格式的目标数据,对所述时序数据库进行测试,获取所述时序数据库的性能参数;所述性能参数包括查询性能参数与写入性能参数的至少一者;所述查询性能参数用于指示进行查询测试时,所述时序数据库的性能;所述写入性能参数用于指示进行写入测试时,所述时序数据库的性能。
14.在一种可能的实现方式中,所述写入性能参数包括存储耗时、错误数量、每秒请求处理次数、内存占用率以及处理器占用率的至少一者;
15.所述查询性能参数包括错误数量、响应时间、每秒请求处理次数、内存占用率以及处理器占用率的至少一者。
16.在一种可能的实现方式中,所述性能参数获取模块,用于对所述时序数据库中,所述目标格式的目标数据进行查询测试,获取所述查询性能参数。
17.在一种可能的实现方式中,所述数据表结构中包含至少一个数据属性类型;所述数据属性类型包含至少一个数据属性;所述数据属性用于对所述目标数据进行分类;所述查询性能参数获取模块,包括:
18.查询标识获取单元,用于根据所述至少一个数据属性类型生成查询标识;所述查询标识用于获取与所述数据属性类型对应的数据;
19.查询性能参数获取单元,用于根据所述查询标识,对所述时序数据库中,所述目标格式的目标数据进行查询,获取所述查询性能参数。
20.在一种可能的实现方式中,所述查询标识获取单元,用于在所述至少一个数据属性类型中,各自随机选择一个数据属性;
21.根据从所述至少一个数据属性类型中选择的数据属性,生成所述查询标识。
22.在一种可能的实现方式中,所述性能参数获取模块,用于根据所述目标格式的目标数据,对所述目标时序数据库进行写入测试,获取所述时序数据库的写入性能参数。
23.在一种可能的实现方式中,所述装置还包括:
24.当所述时序数据库处于测试状态时,获取所述时序数据库的处理器占用率与内存占用率。
25.再一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条计算机指令,所述至少一条计算机指令由所述处理器加载并执行以实现上述的时序数据库测试方法。
26.又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条计算机指令,所述至少一条计算机指令由处理器加载并执行以实现上述时序数据库测试方法。
27.又一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述时序数据库测试方法。
28.本技术提供的技术方案可以包括以下有益效果:
29.在接收到指示对时序数据库进行写入测试与读取测试的测试指令后,获取该时序数据库对应的格式,根据目标格式的数据,对时序数据库进行测试,获得分别指示时序数据库写入性能和查询性能的写入性能参数和查询性能参数。通过上述方案,当接收到对时序数据库的测试指定后,可以根据时序数据库中的数据格式,对时序数据库进行测试,获取时序数据库的查询性能参数与写入性能参数,即同时考虑到时序数据库的数据格式对查询与写入的影响,提高了测试准确度。
30.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不
能限制本技术。
附图说明
31.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
32.图1是根据一示例性实施例示出的一种时序数据库测试系统的结构示意图;
33.图2是根据一示例性实施例示出的一种时序数据库测试方法的流程示意图;
34.图3是根据一示例性实施例提供的一种时序数据库测试方法的方法流程图;
35.图4示出了本技术实施例涉及的一种数据文件格式示意图;
36.图5示出了本技术实施例涉及的一种时序数据库测试方法的流程示意图;
37.图6示出了本技术实施例涉及的一种写入测试方法的流程示意图;
38.图7示出了本技术实施例涉及的一种查询测试方法的流程示意图;
39.图8是根据一示例性实施例示出的一种写入测试方法流程框架图;
40.图9是根据一示例性实施例示出的一种查询测试方法流程框架图;
41.图10是根据一示例性实施例示出的一种时序数据库测试装置的结构方框图;
42.图11是根据一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
43.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
44.在对本技术所示的各个实施例进行说明之前,首先对本技术涉及到的几个概念进行介绍:
45.1)物联网(the internet of things,iot)
46.物联网是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。
47.2)数据库(data compression,dc)
48.数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。数据库是一个按数据结构来存储和管理数据的计算机软件系统。数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。数据库是数据管理
的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
49.图1是根据一示例性实施例示出的一种时序数据库测试系统的结构示意图。该系统包括:数据存储设备120以及测试设备140。
50.其中,数据存储设备120中可以包括数据存储模块(图中未示出),时序数据库中的数据可以预先存储在该数据存储模块中;其中数据存储设备120可以直接连接传感器,该传感器可以是一台传感器,也可以是若干台传感器,传感器通过外界环境的变化产生对应的时序数据,并将该时序数据发送至该数据存储设备中进行存储。
51.其中,测试设备140中可以包括数据传输模块与数据处理模块。数据传输模块用于接收向时序数据库发送查询请求后的数据;或者数据传输模块还用于向时序数据库发送数据处理模块处理后的数据。数据处理模块可以将待传输的数据处理为与时序数据库对应的格式的数据,以传输至数据存储设备的时序数据库中。
52.可选的,该数据存储设备120可以是服务器,可以是一台服务器,或者包括若干台服务器,或者是若干台服务器组成的分布式计算机集群,或者是一个虚拟化平台,或者是一个云计算服务中心等,本技术不做限制。
53.数据存储设备120与测试设备140之间通过通信网络相连。可选的,通信网络是有线网络或无线网络。
54.可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(local area network,lan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(hyper text mark

up language,html)、可扩展标记语言(extensible markup language,xml)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(secure socket layer,ssl)、传输层安全(transport layer security,tls)、虚拟专用网络(virtual private network,vpn)、网际协议安全(internet protocol security,ipsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
55.请参考图2,其是根据一示例性实施例示出的一种时序数据库测试方法的流程示意图。该方法可以由计算机设备执行,该计算机设备可以是图1所示实施例中的测试设备140。如图2所示,该时序数据库测试方法的流程可以包括如下步骤:
56.步骤21,接收对时序数据库的测试指令;该测试指令用于指示对该时序数据库进行性能测试;该时序数据库用于存储物联网场景中物联网设备随时间产生的设备数据。
57.在一种可能的实现方式中,该时序数据库可以在物联网场景下,接收传感器设备产生的带时间标签的时序数据。
58.其中时间序列数据主要是由传感器设备等实时检测、检查与分析设备所采集或产生的数据。通常传感器设备的时间序列数据产生频率快,且每一条数据要求对应唯一的时间戳,测试点多数据量大,因此时序数据库中保存的数据对比关系型时序数据库,更有可能是较大数据量的时序数据库。
59.步骤22,获取该时序数据库的目标格式;该目标格式是根据该时序数据库的数据
表结构确定的。
60.在一种可能的实现方式中,该目标格式是根据该时序数据库构建的数据表结构确定的。
61.其中,同一种时序数据库根据其时序数据库的基本属性,可以构建多种不同的表结构,以influxdb时序数据库为例的时序数据库中,可以根据其时序数据库的基本属性,构建窄表(高表)以及宽表,其中,由于其数据表结构不同的时序数据库对应的业务性能也可以不同。
62.例如,以influxdb时序数据库为例,需要介绍该时序数据库的基本组成概念。
63.对于时序数据库(时间序列时序数据库)而言,其中有一列名为time(时间)的列,其中存储的是utc(coordinated universal time,协调世界时间)时间戳,在该列中用于记录每个时序数据对应的时间信息。对于时序数据库而言,其中有一列数据称为字段(fields),influxdb的字段由field key(字段键)和field value(字段值)组成。其中field key(字段键),它们为string(字符串)类型,用于存储元数据,其中fieldvalue即为该列数据在该字段中的具体取值。在influxdb中,字段必须存在,但字段是没有索引的。如果使用字段作为查询条件,会扫描符合查询条件的所有字段值。而tag(标签)是可选的,标签由tag key(标签键)和tag value(标签值)组成,tagvalue只能string类型,可以将在对该时序数据库进行查询时,使用频率较高的特征设置为tag,以此提高查询效率。
64.而对于时序数据库来说,还具有监控指标(metric)用于指示不同类型的时序数据,从存储上来看所有的监控指标metric都是相同的,但是在不同的场景下这些metric又有一些细微的差异,例如,当获取的时序数据是当前系统的负载情况时,随时间的变化,该指标返回的样本数量时在不断变化的;当获取的时序数据是处理器的累计使用时间时,随时间的变化,该指标返回的样本值是不断增大的。
65.步骤23,根据该目标格式的目标数据,对该时序数据库进行测试,获取该时序数据库的性能参数;该性能参数包括查询性能参数与写入性能参数的至少一者;该查询性能参数用于指示进行查询测试时,该时序数据库的性能;该写入性能参数用于指示进行写入测试时,该时序数据库的性能。
66.在一种可能的实现方式中,对该时序数据库进行测试时,可以根据测试指令,选择对时序数据库进行查询性能测试或者写入性能测试;当测试指令是查询指令时,可以对该时序数据库进行查询测试,获取查询性能参数;当测试指令是写入指令时,可以对该时序数据库进行写入测试,获取写入性能参数;也可以同时通过设立多个线程,同时对该时序数据库进行查询测试与写入测试,获取该时序数据库的查询性能参数与写入性能参数。
67.在一种可能的实现方式中,在对该时序数据库进行测试的过程中,可以对该时序数据库所在的数据存储设备进行性能监控,获取该数据存储设备在测试过程中的内存占用率与cpu(中央处理器,central processing unit)占用率。
68.在一种可能的实现方式中,可以通过时序数据库的数据存储设备直接获取该数据储存设备的内存占用率和cpu占用率;或者可以根据该测试设备向数据存储设备发送获取请求,获取该数据存储设备的内存占用率和cpu占用率。
69.综上所述,在本技术实施例所示的方案中,在接收到指示对时序数据库进行写入测试与读取测试的测试指令后,获取该时序数据库对应的格式,根据目标格式的数据,对时
序数据库进行测试,获得分别指示时序数据库写入性能和查询性能的写入性能参数和查询性能参数。通过上述方案,当接收到对时序数据库的测试指定后,可以根据时序数据库中的数据格式,对时序数据库进行测试,获取时序数据库的查询性能参数与写入性能参数,即同时考虑到时序数据库的数据格式对查询与写入的影响,提高了测试准确度。
70.请参考图3,其是根据一示例性实施例提供的一种时序数据库测试方法的方法流程图。该方法可以由计算机设备执行,该计算机设备可以是图1所示实施例中的测试设备140。如图3所示,该时序数据库测试方法可以包括如下步骤:
71.步骤301,接收对时序数据库的测试指令。
72.其中,该测试指令用于指示对该时序数据库进行性能测试;该时序数据库用于存储物联网场景中物联网设备随时间产生的设备数据。
73.在一种可能的实现方式中,该测试指令是用户通过其他计算机设备发送至该测试设备的;或者,该测试指令是该用户通过该测试设备生成的。
74.在一种可能的实现方式中,该测试指令是查询测试指令,该查询测试指令用于指示对该时序数据库进行查询性能测试。
75.在一种可能的实现方式中,响应于接收到该测试指令,对该时序数据库对应的设备进行性能监控。
76.其中,该时序数据库对应的设备可以是用于存储该时序数据库的设备。
77.在一种可能的实现方式中,该性能监控用于获取该时序数据库在查询性能测试中的每秒处理请求数目、响应时间、错误数量中的至少一者。
78.在一种可能的实现方式中,该性能监控还用于获取该时序数据库对应的设备的内存占用率和处理器占用率随时间的变化情况。
79.在一种可能的实现方式中,由于时序数据库的数据量较大,该时序数据库可能是分布式时序数据库,其存在于多个设备通过网络组成的分布式设备集群上,因此,当接收到对该时序数据库的测试指令后,可以对该分布式设备集群中全部或部分设备进行性能监控。
80.步骤302,获取该时序数据库的目标格式。
81.其中,该目标格式是根据该时序数据库的数据表结构确定的。
82.在对该时序数据库进行测试之前,需要获取该时序数据库对应的数据格式,即数据表的结构,根据该数据表的结构,确定该时序数据库的查询规则,以对该时序数据库进行查询测试。
83.在一种可能的实现方式中,读取时序数据库的数据文件,根据该数据文件的数据格式获取该时序数据库的目标格式。
84.步骤303,根据该目标格式的目标数据,对该时序数据库进行测试,获取该时序数据库的性能参数。
85.在一种可能的实现方式中,对该时序数据库中,该目标格式的目标数据进行查询测试,获取该查询性能参数。
86.在一种可能的实现方式中,根据该至少一个数据属性类型生成查询标识;该查询标识用于获取与该数据属性类型对应的数据;根据该查询标识,对该时序数据库中,该目标格式的目标数据进行查询,获取该查询性能参数。
87.在一种可能的实现方式中,在该至少一个数据属性类型中,各自随机选择一个数据属性;根据从至少一个数据属性类型中选择的数据属性,生成该查询标识。
88.其中,数据表结构中包含至少一个数据属性类型;该数据属性类型包含至少一个数据属性;该数据属性用于对该目标数据进行分类。
89.该数据表结构即为该时序数据库对应的数据文件的存储格式。请参考图4,其示出了本技术实施例涉及的一种数据文件格式示意图。如图4所示,该数据文件401由度量402(metric)、时间403(time)、标签404(tag)以及字段405(field)组成。其中,数据属性类型即为上述度量(metric)、时间(time)、tag(标签)以及field(字段)中的至少一者,也就是说,该数据表结构以及数据的结构类型由上述数据属性类型构成,每个数据属性类型中都至少包含一个与该数据属性类型对应的数据属性,例如,当数据属性类型为tag时,该时序数据库中至少有一个tag1的数据属性与该tag对应,并且在该时序数据库中,可以根据该数据属性将时序数据库中的数据进行分类存储。
90.可以根据从数据属性类型中选择出的数据属性,生成查询标识(即查询语句),以对时序数据库中保存的目标数据进行查询操作。以influxdb时序数据库的查询语句“select"age","value"from"user"”为例,其中“user”为需要查询的时序数据库中的数据表,该语句即为,在表“user”中查询为“age”与“v alue”,其中“age”为tag标签。
91.在一种可能的实现方式中,在该至少一个数据属性类型中,各自随机选择一个数据属性,根据该至少一个数据属性类型对应的属性类型,生成该查询标识。
92.其中,至少一个数据属性类型对应的属性类型,也就是在该至少一个数据属性类型中随机选择的。
93.当根据时序数据库中的数据文件,获取到该时序数据库对应的表结构后,根据该表结构对应的度量(metric)、时间(time)、tag(标签)以及field(字段),中的至少一者,进行随机选择,获取对应的属性类型,并将随机选择的属性类型进行拼接,得到查询测试对应的查询条件。例如,当选择表结构对应的度量以及标签进行随机拼接时,表结构对应的度量类型可以为“a”“b”,而tag类型可以为“tag1”“tag2”“tag3”,其对应的查询条件可以为“metric为a,且ta g为tag1”、“metric为a,且tag为tag2”、“metric为a,且tag为tag3”、“metr ic为b,且tag为tag1”、“metric为b,且tag为tag2”、“metric为c,且tag为tag3”六种情况,并且当选取的数据属性类型越多,且该数据属性类型对应的数据属性数量越大时,可能产生的查询条件越多,并且对应数据表而言,可以同时具有多个tag,例如对于宽表而言,可以将每个数据对应的tag标签全部在表中表示出来,将不同的内容都放在一张表上保存,其查询效率较高。
94.并且,在实际测试中,当根据查询标识对时序数据库中进行查询时,在设备上的实现路径时,时序数据库接收到该查询请求,先将查询请求对应的数据从时序数据库中传输至数据存储设备的缓存中,数据存储设备将缓存中的数据发送至测试设备,以实现对查询请求的数据反馈,因此在实际测试中,通过常用的测试工具对时序数据库进行测试时,通过预定的查询规则进行查询测试,存在对某些数据进行重复请求的情况,可能会导致查询请求对应的数据此时还存在数据存储设备的缓存中,此时数据存储设备会优先将该保存于缓存中的设备发送至测试设备,而不是从时序数据库中查询该数据,其查询结果会与时序数据库的真实性能产生一定的偏差。
95.而通过随机拼接数据属性,从而得到的查询标识(即查询语句),可以尽可能避免该情况的发送,在保存大批量数据的时序数据库中,减少缓存对时序数据库真实性能测试的影响。
96.在一种可能的实现方式中,根据该查询标识,对该时序数据库中,该目标格式的目标数据进行查询,获取该查询性能参数。
97.根据查询标识对应的查询语句,在时序数据库中,获取该查询语句对应的数据,并反馈该查询过程对应的时序数据库性能。
98.在一种可能的实现方式中,该查询性能参数包括错误数量、响应时间、每秒请求处理次数、内存占用率以及处理器占用率的至少一者。
99.其中,错误数量为,该查询测试过程中发生查询错误情况的次数;响应时间是系统对请求作出响应的时间,在查询测试中,响应时间为该系统查询到对应的数据所需要的时间;rps(requests per second,每秒请求处理次数),即为系统每秒能够对接收到的请求进行处理的数量;内存占用率以及处理器占用率用于指示该时序数据库对存储有该时序数据库的数据存储设备的负载要求。
100.在一种可能的实现方式中,根据该目标格式的目标数据,对该目标时序数据库进行写入测试,获取该时序数据库的写入性能参数。
101.在一种可能的实现方式中,该目标格式的目标数据,可以是现有数据根据该时序数据库的目标格式生成的数据文件。
102.即测试设备先获取该时序数据库的数据文件的目标格式,根据该目标格式将该现有数据表换为该目标格式的目标数据。
103.另一种可能的实现方式中,该目标格式的目标数据,可以是根据该时序数据库的目标格式生成的模拟数据文件。
104.其中,该模拟数据文件的生成规则可以是随机生成,即根据该目标格式对应的数据属性类型,随机生成其对应的数据属性,以构成符合该目标格式的目标数据文件。
105.例如,当该时序数据库是opentsdb时,写入语句可以为“put cpu 1434067467000000000 0.64host=servera region=us_west”,即写入度量为cpu,时间戳为1434067467000000000,值为0.64,host对应的tag为servera,region对应的tag为us_west的数据。
106.当时序数据库为influxdb时,写入语句可以为“insert cpu,host=servera,region=us_west value=0.641434067467000000000”,意义与opentsdb的语句相同,即写入度量为cpu,时间戳为1434067467000000000,值为0.64,host对应的tag为servera,region对应的tag为us_west的数据。
107.在一种可能的实现方式中,该写入性能参数包括存储耗时、错误数量、每秒请求处理次数、内存占用率以及处理器占用率的至少一者;其中,存储耗时用于指示将目标数据写入该时序数据库消耗的时间。
108.在一种可能的实现方式中,响应于接收到测试指令,对该时序数据库所在的数据存储设备进行性能监控,对该时序数据库同时进行查询测试与写入测试,获取该时序数据库的查询性能参数与写入性能参数。
109.即在对该时序数据库进行测试时,可以同时获取该时序数据库在查询测试与写入
测试时的查询性能参数与写入性能参数,以及时序数据库所在的数据存储设备对应的cpu占用率以及内存占用率。在时序数据库的实际运用中,当对时序数据库进行查询的过程中,可能传感器等设备仍然在向该时序数据库执行写入操作,此时对该时序数据库同时进行查询测试与写入测试,并获取此时该时序数据库的性能参数,可以尽可能模拟时序数据库在实际运用中的情况。
110.在一种可能的实现方式中,当该时序数据库处于测试状态时,获取该时序数据库的处理器占用率与内存占用率。
111.在一种可能的实现方式中,根据该查询性能参数与写入性能参数,获取该时序数据库的性能评分。
112.当完成查询测试与写入测试后,可以根据获取的查询性能参数和写入性能参数,对时序数据库的性能进行一个评定。其中,该评定方式可以根据该时序数据库的需求进行设定,例如,当该时序数据库需要更好的查询功能,可以将该查询性能参数设立为更高的权重,与写入性能参数进行综合考量,最终得出一个时序数据库的效能评分。
113.请参考图5,其示出了本技术实施例涉及的一种时序数据库测试方法的流程示意图。如图5所示,当接收到测试指令500时,开始执行写入测试501,以及查询测试502。首先对于写入测试501,可以根据现有的数据或者模拟生成的数据,进行目标数据的生成503,生成与该时序数据库相对于的数据文件504,并将该数据文件通过api(application programming interface,应用程序接口)接口或http(hyper text transfer protocol,超文本传输协议)接口505向时序数据库进行传输,得到写入性能参数506,该写入性能参数可以是存储耗时。
114.并且,对于查询测试502而言,根据该数据文件504的目标格式,对该目标格式对应的字段(例如tag、field)进行拼接,根据拼接后得到的查询语句即查询请求507,向时序数据库发送请求,获取与查询语句对应的数据文件,并得到对应的查询性能参数508,该查询性能参数可以包括rps、反应时间以及错误数量。
115.在测试过程中,可以对该时序数据库对应的设备进行全程性能监控,获取该时序数据库对应的设备在测试过程中的cpu占用率和内存占用率509,以确定该时序数据库在运行过程中对设备的负载要求能力。根据该写入性能参数506、查询性能参数508、以及cpu与内存占用率509,可以综合获得该时序数据库的性能结果510。
116.表1是本技术实施例涉及的一种传感器数据窄表。
117.表1
118.温度2020tag1value=1温度2020tag2value=2风速2020tag1value=3
119.其中温度与风速对应的是metric,2020对应time,tag1与tag2为tag标签,value为时序数据库表结构中的字段。
120.表2
121.温度2020

tag1=1,tag2=2,tag3=3

风速2020

tag1=1,tag2=2,tag3=3

122.表2是本技术实施例涉及的一种传感器数据宽表。如表2所示,可以将每个数据对
应的tag标签全部在表中表示出来,将不同的内容都放在一张表上保存,根据对应的tag可以准确的查询数据,其查询效率较高,但是当宽表的宽度达到一定数量后,value的值会变得非常大,会对写入造成很大的影响,每次写入数据都会重新遍历一遍value,影响写入性能。
123.因此不同的表结构对于写入和读取性能的影响不相同,对某一时序数据库进行写入和读取测试,可以更加准确的评估该时序数据库的性能。
124.请参考图6,其示出了本技术实施例涉及的一种写入测试方法的流程示意图。如图6所示,s601,首先配置数据的生成规则,例如根据时序数据库的目标格式随机生成数据文件。s602,根据该数据的生成规则生成数据文件。s603,配置数据文件的写入规则,即配置写入语句。s604,再根据该写入规则执行写入任务,将生成的数据文件写入该时序数据库中。s605,根据写入过程,输出该写入测试对应的写入信息(即写入性能参数)。其中,对于同一类型时序数据库,不同表结构设计的写入规则不同,其对应的写入规则的写入效率也不同。如表3所示,其示出了对于不同表结构执行的写入测试的测试结果不同。同样对于6.4g大小的数据的写入,三种设计方案的写入速度、耗时、与设计的metric数、tag数以及field数有关。
125.表3
126.‑
设计1设计2设计3存储空间(g)6.46.46.4写入point/s8w9w8.5w耗时s3h2.8h2.9hmetric数10010010tag数100001000field数11000100
127.请参考图7,其示出了本技术实施例涉及的一种查询测试方法的流程示意图。s701,首先配置数据的查询规则,例如根据时序数据库的目标格式随机生成查询语句。s702,读取数据文件,根据该数据文件获取该时序数据库的目标格式。s703,根据目标格式,随机拼接生成查询语句。s704,再根据该查询语句执行查询任务,获取查询到的数据结果。s705,根据查询过程,输出该查询测试对应的查询信息(即查询性能参数)。其中,对于同一类型时序数据库的不同表结构,其对应的查询效率也不同。
128.表4
129.‑
设计1设计2设计3存储空间(g)6.46.46.4写入point/s8w9w8.5w耗时s3h2.8h2.9hmetric数10010010tag数100001000field数11000100
130.如表4所示,其示出了对于不同表结构的查询性能不同。不同的表结构对于的每秒请求处理次数,响应时间的中位数、平均数、90%以及99%都不相同,即查询性能有着明显
的区别。
131.当针对时序数据库进行大批量的性能测试,还可以集成jmeter,locust等工具分别用于写入测试和查询测试,测试过程中进行系统资源监控,获取cpu和内存的占用率,作为性能指标的一部分,可灵活调整不同schema(表结构)进行性能测试。
132.综上所述,在本技术实施例所示的方案中,在接收到指示对时序数据库进行写入测试与读取测试的测试指令后,获取该时序数据库对应的格式,根据目标格式的数据,对时序数据库进行测试,获得分别指示时序数据库写入性能和查询性能的写入性能参数和查询性能参数。通过上述方案,当接收到对时序数据库的测试指定后,可以根据时序数据库中的数据格式,对时序数据库进行测试,获取时序数据库的查询性能参数与写入性能参数,即同时考虑到时序数据库的数据格式对查询与写入的影响,提高了测试准确度。
133.请参考图8,其是根据一示例性实施例示出的一种写入测试方法流程框架图。该写入方法由测试设备800以及数据存储设备810共同执行。如图8所示,测试设备800接收到写入测试指令801,触发该测试设备800开始写入测试流程,此时测试设备800向数据存储设备810开始监听,获取该数据存储设备的实时状态信息。
134.并且,此时测试设备,根据测试设备中测试设备中的现有数据,或是根据某一预设规则生成的模拟数据,根据时序数据库对应的目标格式,将现有数据或是模拟数据,生成具有目标格式的目标数据802,并将该具有目标格式的目标数据,根据时序数据库的写入规则进行写入操作,此时,测试设备对该数据存储设备一直处于监听状态。
135.当该测试设备将所有目标格式的目标数据802都写入该时序数据库后,该测试设备停止向时序数据库监听,并获取该写入测试过程中,向时序数据库对应的设备监听得到的写入性能参数803,其中写入性能参数803包括,写入时间、写入速度、设备的内存占用率、cpu占用率等,并根据该写入性能参数803判定该时序数据库的写入性能优劣。
136.请参考图9,其是根据一示例性实施例示出的一种查询测试方法流程框架图。该查询测试方法由测试设备900以及数据存储设备910共同执行,其中测试900与数据存储设备910可以是服务器。如图9所示,测试设备900接收到查询测试指令901,触发该测试设备900开始查询测试流程,此时测试设备900向数据存储设备910开始监听,获取该数据存储设备的实时状态信息。
137.当开始查询测试时,测试设备可以先查询该时序数据库中的数据文件,获取该时序数据库对应的目标格式902,并根据该目标格式中的字段,进行随机拼接,随机生成查询请求903,根据该查询请求903向时序数据库进行数据的查询操作,以获取对应的查询数据904,此时,测试设备对该数据存储设备一直处于监听状态。
138.当该测试设备达到测试停止条件后,停止对该时序数据库进行查询测试,并停止对该时序数据库对应设备的监听,获取该查询测试过程中的查询性能参数905。其中查询性能参数包括,写入时间、写入速度、设备的内存占用率、cpu占用率等,并根据该查询性能参数905判定该时序数据库的查询性能优劣。并且,由于根据该目标格式中的字段进行随机拼接,获取查询请求,对于较大的时序数据库,不易对某一类数据进行重复的查询拼接,减少了在查询过程中由于设备缓存导致测试不准确的情况发生。
139.图10是根据一示例性实施例示出的一种时序数据库测试装置的结构方框图。该时序数据库测试装置可以实现图2或图3所示实施例提供的方法中的全部或者部分步骤。该时
序数据库测试装置可以包括:
140.测试指令接收模块1001,用于接收对时序数据库的测试指令,所述测试指令用于指示对所述时序数据库进行性能测试;所述时序数据库用于存储物联网场景中物联网设备随时间产生的设备数据;
141.目标格式获取模块1002,用于获取所述时序数据库的目标格式;所述目标格式是根据所述时序数据库的数据表结构确定的;
142.性能参数获取模块1003,用于根据所述目标格式的目标数据,对所述时序数据库进行测试,获取所述时序数据库的性能参数;所述性能参数包括查询性能参数与写入性能参数的至少一者;所述查询性能参数用于指示进行查询测试时,所述时序数据库的性能;所述写入性能参数用于指示进行写入测试时,所述时序数据库的性能。
143.在一种可能的实现方式中,所述写入性能参数包括存储耗时、错误数量、每秒请求处理次数、内存占用率以及处理器占用率的至少一者;
144.所述查询性能参数包括错误数量、响应时间、每秒请求处理次数、内存占用率以及处理器占用率的至少一者。
145.在一种可能的实现方式中,所述性能参数获取模块1003,用于对所述时序数据库中,所述目标格式的目标数据进行查询测试,获取所述查询性能参数。
146.在一种可能的实现方式中,所述数据表结构中包含至少一个数据属性类型;所述数据属性类型包含至少一个数据属性;所述数据属性用于对所述目标数据进行分类;所述查询性能参数获取模块,包括:
147.查询标识获取单元,用于根据所述至少一个数据属性类型生成查询标识;所述查询标识用于获取与所述数据属性类型对应的数据;
148.查询性能参数获取单元,用于根据所述查询标识,对所述时序数据库中,所述目标格式的目标数据进行查询,获取所述查询性能参数。
149.在一种可能的实现方式中,所述查询标识获取单元,用于在所述至少一个数据属性类型中,各自随机选择一个数据属性;
150.根据从所述至少一个数据属性类型中选择的数据属性,生成所述查询标识。
151.在一种可能的实现方式中,所述性能参数获取模块1003,用于根据所述目标格式的目标数据,对所述目标时序数据库进行写入测试,获取所述时序数据库的写入性能参数。
152.在一种可能的实现方式中,所述装置还包括:
153.当所述时序数据库处于测试状态时,获取所述时序数据库的处理器占用率与内存占用率。
154.综上所述,在本技术实施例所示的方案中,在接收到指示对时序数据库进行写入测试与读取测试的测试指令后,获取该时序数据库对应的格式,根据目标格式的数据,对时序数据库进行测试,获得分别指示时序数据库写入性能和查询性能的写入性能参数和查询性能参数。通过上述方案,当接收到对时序数据库的测试指定后,可以根据时序数据库中的数据格式,对时序数据库进行测试,获取时序数据库的查询性能参数与写入性能参数,即同时考虑到时序数据库的数据格式对查询与写入的影响,提高了测试准确度。
155.图11是根据一示例性实施例示出的一种计算机设备的结构示意图。该计算机设备可以实现为上述各个方法实施例中的模型搜索设备和/或图像分割设备。所述计算机设备
1100包括中央处理单元(cpu,central processing unit)1101、包括随机存取存储器(random access memory,ram)1102和只读存储器(read

only memory,rom)1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。所述计算机设备1100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
156.所述大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。所述大容量存储设备1107及其相关联的计算机可读介质为计算机设备1100提供非易失性存储。也就是说,所述大容量存储设备1107可以包括诸如硬盘或者光盘只读存储器(compact disc read

only memory,cd

rom)驱动器之类的计算机可读介质(未示出)。
157.不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、闪存或其他固态存储其技术,cd

rom、或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。
158.计算机设备1100可以通过连接在所述系统总线1105上的网络接口单元1111连接到互联网或者其它网络设备。
159.所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器1101通过执行该一个或一个以上程序来实现图3、图4或图9所示的方法的全部或者部分步骤。
160.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由计算机设备的处理器执行以完成本技术各个实施例所示的方法中,由服务器或者用户终端执行的方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd

rom、磁带、软盘和光数据存储设备等。
161.在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例所示的方法。
162.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由权利要求指出。
163.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
转载请注明原文地址:https://doc.8miu.com/index.php/read-1722464.html

最新回复(0)