• 0
  • 0
分享
  • 时序数据库性能测试方法
  • 恬恬圈 2020-06-02 13:14:52 字数 0 阅读 3926 收藏 0

一、什么是时序数据库

时序数据库全称为时间序列数据库。时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。

时序数据库全的特点包括一是多源性获取,数据分散,非结构化数据比例大;二是数据蕴含信息复杂,关联性强;三是持续采集,具有鲜明的动态时空特性;四是采集、存贮、处理实时性要求高;五是与具体工业领域密切相关。

  • 时序数据库采用的技术

  • 时序数据库高压缩比存储技术

  • 时序数据库的列存储技术

  • 时序数据库的时间序列技术

  • 时序数据库支持大数据量吞吐处理技术

  • 时序数据库的高聚合查询技术

本文根据时序数据库的技术特点结合实际业务场景,设计如下测试方法:

时序数据库建库测试方法、时序数据库写入测试方法、时序数据库查询测试方法、时序数据库导入\导出测试方法、时序数据库压缩比测试方法等五方面组成。

二、时序数据库性能测试方法

2.1时序数据库建库测试方法

根据时序数据库的需求规格说明书或设计中要求的最大维度数和最大指标数,通过测试脚本或测试工具创建最大维度数或指标数的时序数据库模型。

评价方式是否可以按需求规格说明书或设计中要求的最大维度数和最大指标数创建。

“数据库模型”的建立依据下述数据特征(图2.1):

  1)度量(metric):相当于关系型数据库中的table;

  2)时间戳(timestamp):数据均带有时间戳(单位为ms);

  3)数据点(data point):相当于关系型数据库中的row;

  4)维度列(tag):一般存放的是并不随着时间戳变化的属性信息;

  5)指标列(field):一般情况下存放的是会随着时间戳的变化而变化的数据。

15243603_202005281620081V1T4.png

图2.1  数据库模型

2.2时序数据库写入测试方法

使用时间序列数据生成工具模拟业务场景数据。在实际数据生成中,时序数据库写入能力要求较高,且并发写入和较大数据包写入较多,业务常用场景,设计不同的写入负载模式包装,形成写入负载,然后对目标数据库的写入性能进行评测,通过调整并发线程数、维度数和指标数量,调整负载模式。

写入负载测试模式有两大类:第一类测试固定维度数和指标数,通过不断增加线程数测试时序数据库在不同线程数下的写入性能表现,负载详情如表5.4所示。

2.png 

第二类测试固定线程数,不断增加维度数,测试相应的写入性能,负载详情如表5.3所示。

3.png

应用场景时序数据库的数据写入响应时间要求往往不高,而对其吞吐量的要求较高,更关注每秒钟能写入的线程数和数据点数,因此,写入性能指标设置为吞吐量,计算公式如下:

4.png

2.3时序数据库查询测试方法

实际应用对时序数据库的并发查询请求并不多,更关注的是单个查询请求的响应时间。常用的查询负载包含以下五种:

1)点查询:指定某一字段取值进行查询;例如按设备ID或设备温度等条件查询记录数;

2)范围查询:查询一段时间内,针对单个或多个字段根据时间区间查询数据;例如:查询某段时间内所有设备的所有传感器的所有值;查询一段时间内,指定设备的指定传感器的所有值;

3)精度查询:针对不同的标签维度列进行数据聚合;例如:查询某个维度的某个指标大于某个阈值的维度;

4)聚合查询:是指时序数据库有提供针对字段进行计数、平均值、求和、最大值、最小值、滑动平均值、标准差、归一等聚合类 API支持;例如查询一个月内某一个小时内,指定设备的指定传感器的聚合值(max、min、mean值);

5)经典查询:实际业务中常用的查询,根据实际情况定制查询场景。例如查询某个风场的所有风机的所有传感器在过去某段时间内每个小时的平均值。

在读取数据时,更多的是监控面板和数据分析的场景,对时序数据库服务器的并发要求较低,而对响应时间要求较高,因此,查询场景的评价指标设置为响应时间,计算公式如下:

5.png

2.4时序数据库导入\导出测试方法

为开展时序数据库导入测试,首先准备符合业务场景的数据集,数据集为2个,容量大小分别为百万条数据集(MB级)和千万条数据集(GB级);其次为了避免从硬盘读取数据和网络传输成为测试瓶颈,把数据集装载到内存,然后进行Load(避免硬盘I/O瓶颈),并且在一台测试机器上(避免网络瓶颈)运行数据库服务器和客户机测试程序。最后,把数据装载到内存,进行导入,在测试过程中监控CPU的使用情况。

时序数据库导出测试,通过测试脚本将导入的大、小数据集分别导出到本地硬盘,在测试过程中监控CPU的使用情况。

导入\导出测试最终评价指标为成功数据点数、导入\导出的成功率、导入\导出的消耗时间、导入\导出速度等。

2.5时序数据库压缩性能测试方法

数据压缩能力测试是在导入测试结束后,统计数据库文件所占磁盘空间大小,将数据库文件总大小与原始数据进行对比,并计算压缩比:

6.png


版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 线上化、移动化的银行金融服务方兴未艾、持续深化,一个显著的标志就是手机银行成为银行领域金融科技发力的重点。整体页面文字的易读性、页面跳转的合理性、操作的便利性、功能响应的敏捷性、页面色彩和排版的美观性等,都是使用过程中用户视角下手机银行是否好用的评价对象。手机银行用户体验的重要性日益提升,但是目前体验性评价还存在方法、度量、标准上的一些不成熟之处。本文提出一种手机银行体验是否良好的量化评价方法,通过设置激励机制引导用户对手机银行的的业务模块或产品功能进行评分,支持对收集到的大量数据进行整体分析和分类分析,形成量化的用户体验评价指标,改善手机银行体验性测试中偏重于定性分析的现状。一、背景定量的体...
            0 0 1504
            分享
          •   苹果公司暂时停止了即将推出的 iOS、iPadOS、macOS、watchOS 和 visionOS 更新的新功能开发工作,以便集中精力提高质量和消除错误。软件工程主管克雷格-费德里吉(Craig Federighi)上周下令暂停开发一周,因为内部测试发现早期版本的软件存在太多"逃逸"的问题或错误。  据彭博社记者马克-古尔曼(Mark Gurman)报道,所有负责明年软件更新的苹果开发人员的任务都是修复已知问题和提高性能,而不是增加新功能。这次暂停将影响 iOS 18 和 iPadOS 18 的代号为"Crystal"的操作系统版本、macOS 1...
            0 0 437
            分享
          • 前言HTTP接口测试很简单,不管工具、框架、还是平台,只要很的好的几个点就是好工具。测试数据问题:比如删除接口,重复执行还能保持结果一致,必定要做数据初始化。接口依赖问题:B接口依赖A的返回值,C接口依赖B接口的返回值。加密问题:不同的接口加密规则不一样。有些用到时间戳、md5、base64、AES,如何提供种能力。断言问题:有些接口返回的结构体很复杂,如何灵活的做到断言。对于以上问题,工具和平台要么不支持,要么很麻烦,然而框架是最灵活的。unittest/pytest + requests/https 直接上手写代码就好了,既简单又灵活。那么同样是写代码,A框架...
            9 9 1003
            分享
          • 在 Postman 中,用 Environments 来管理环境变量。我们在开发的过程中,往往会用到多个环境:开发环境,测试环境,UAT 环境,生产环境等。我们要调用不同环境的 API 时,只需切换 Postman 的 Environment 即可。下面,我们来具体说下 Postman 环境变量的使用方法。知识扩展:Postman 环境设置介绍第 1 步 创建环境在 Environments 选项卡中,点击 + 号按钮来创建环境。在环境中,创建变量。其中,列中 INITIAL VALUE 和 CURRENT VALUE 的区别是&nb...
            0 0 589
            分享
          • 从测试leader的角度如何保障质量交付?聊的第一个话题就是测试leader如何保障团队的质量交付,这个话题最近在很多地方,听很多人聊过。我会尝试从以下几点来做阐述说明,观点仅代表个人看法。流程管理问:流程是什么?为什么要有流程?流程能解决什么问题?流程能带来什么保障?流程是什么?流程是保障团队目标达成的最佳实践,因人/团队/业务类型/迭代速度/资源紧张程度而异。为什么要有流程?没有流程会导致团队中的个体各自为战,目标不统一,进度不协调,资源配给失衡而导致交付质量下降。流程能解决什么问题?流程能保障团队或者群体在大方向上保持协调一致,尽可能降低由于团队人员能力、认知水平、资源不足、意外情况导致...
            0 0 778
            分享
      • 51testing软件测试圈微信