当前位置: 首页 > news >正文

IoTDB 在国际数据库性能测试排行榜中位居第一?测试环境复现与流程详解第一弹!...

最近我们得知,Apache IoTDB 多项性能表现位居 benchANT 时序数据库排行榜(Time Series: DevOps)性能排行第一名!(榜单地址:https://benchANT.com/ranking/database-ranking)

benchANT 位于德国,是一家专门做云设施和数据库性能评估的测试机构。在用户对数据库选型很难找到以性能、功能表现为参考基准榜单的情况下,benchANT 致力于在统一的硬件资源和系统配置下对各类主流数据库系统做性能测试,并依据各项指标进行排名。

0ece301d719f11a35ef700c189747f9d.png

benchANT 时序数据库排行榜的评估标准基于 TSBS 基准测试套件的 DevOps 场景,在统一的 AWS(Amazon Web Services,是亚马逊公司提供的一套云计算服务)环境中进行测试,并得出了 IoTDB 的写入吞吐、存储占用、查询延迟等性能结果。

那么,这些结果是在什么样的测试环境下得出的?测试过程又应该是什么样的?最终的性能结果是排行榜上面的样子吗?

既然 TSBS 是开源的测试工具,我们决定用这套标准化测试工具进行反推,尝试还原出 benchANT 时序数据库排行榜测评数据的“产出”过程!

此篇会总结榜单的数据对比结果,并介绍 benchANT 排行榜的背景与写入、查询测试环境。下篇我们将展示我们复现的命令集脚本与 IoTDB 建模。

1

结论总结

基于 benchANT 排行榜的评估结果与其提供的测试环境、条件,Apache IoTDB 团队试图还原了 benchANT 排行榜针对 Apache IoTDB 性能与成本指标的测试流程,并与 benchANT 排行榜中囊括的其他时序数据库,InfluxDB、TimescaleDB、QuestDB 等的数据表现进行了对比。

在写入、查询与存储性能方面,Apache IoTDB 均表现优异。Apache IoTDB 的写入吞吐量(Write Throughput)通过导入 2,617,920,000 个数据点所需的耗时计算得到,测试结果可达到 363 万点/秒,与 benchANT 排行榜中的 InfluxDB、TimescaleDB 、QuestDB 对比,IoTDB 的写入吞吐量最多是其 6.9 倍,最少也可达到 1.4 倍

Apache IoTDB 的查询延迟(Read Latency)通过查询“1 个设备的 1 个测点在 1 个小时内按照 1 分钟进行分段聚合的值”这一场景计算得到,测试结果可达到 2 毫秒。与 benchANT 排行榜中的 InfluxDB、TimescaleDB、QuestDB 对比,IoTDB 的查询响应速度最多是其 96.5 倍,最少也可达到 3 倍

Apache IoTDB 的存储占用(Storage Comsumption)通过在查询测试结束时记录存储空间占用得到,测试结果可达到仅占用 2 GiB。与 benchANT 排行榜中的 InfluxDB、TimescaleDB、QuestDB 对比,IoTDB 的存储占用最低是其 1/35

同时,benchANT 排行榜中使用读取吞吐量(Read Throughput)/ 月成本(Monthly Costs),计算出的成本效益(Operations Per Cost),也就是代表“每一美元能够置换多少的读取性能”,进而评估时序数据库的投入性能比。在这一指标中,Apache IoTDB 与排行榜中的 InfluxDB、TimescaleDB、QuestDB 对比,成本效益最多是其 22.2 倍,最少也可达到 1.4 倍,在使用性价比上也存在优势

861beee09d4f289f6996bdce8e3a3543.png

(benchANT 时序数据库排行榜各数据库性能对比)

2

背景介绍

benchANT 是国际知名的数据库评测机构,以可靠、独立及透明的方法对各种数据库进行性能评测。

benchANT 榜单收录了常见的关系型数据库、NoSQL 数据库、NewSQL 数据库及时序数据库等,通过使用固定的测试负载、相同的测试机器来保证测试结果的公平性。

当前 benchANT 收录了如下三种测试场景:

  • "CRUD: General Purpose":该场景主要测试数据库 CRUD 操作的性能,使用的测试工具为 YCSB。benchANT 在该场景测试了 MySQL、PostgreSQL 及 Cassandra 等数据库在不同负载下的性能对比(读写延迟、吞吐等指标)。

  • "OLTP: Mix":该场景主要测试数据库在事务方面的性能,使用的测试工具为 Sysbench。benchANT 在该场景测试了 MySQL 及 PostgreSQL 等数据库在不同负载下的性能对比(每秒执行的事务数量、查询延迟等指标)。

  • "Time Series: DevOps":该场景主要测试时序数据库的读写性能,使用的测试工具为 TSBS,TSBS 是 Timescale 开源的一款时序数据性能基准测评工具,它提供了时序数据生成、数据导入、查询生成、查询执行等功能,并可以自动化统计测试的结果。Apache IoTDB 参与的评测便属于该类别,benchANT 针对时序场景的测试均基于相同的硬件资源和测试负载,性能评估使用的指标具体如下:

    • WRITE THROUGHPUT:写入吞吐,单位时间内处理的写入数据点数量,该数值越高表明数据库写入性能越高。

    • READ THROUGHPUT:查询吞吐,单位时间内处理的查询请求的数量,该数值越高表明数据库处理查询请求的能力越强。

    • READ LATENCY:查询延迟,单个查询的响应时间,该数值越低表明数据库处理单个查询的速度越快。

    • STORAGE CONSUMPTION:存储空间占用,记录测试运行过程中的磁盘平均使用量。

    • MONTHLY COSTS:月度开销,仅与使用的AWS机器费用有关。

    • OPERATIONS PER COST:成本效益,记录单位开销内能够执行的操作数量,该数值越高表明数据库的成本效益越大。

e0a70dffd9f4cacfc9f17da249d9e39b.png

3

测试环境

3.1

写入性能测试

benchANT 的测试选取了 TSBS 中的 DevOps 场景,该场景模拟了服务器运行时的监控数据,每个运行的服务器(设备)均采集 9 大项监控指标(cpu、diskio、disk、kernel、mem、net、nginx、postgresl、redis),其中每项指标下采集不同的测量值,以 cpu 为例,cpu 指标下记录了 10 个测量值,分别为 usage_user、usage_system、usage_idle、usage_nice、usage_iowait、usage_irq、usage_softirq、usage_steal、usage_guest 和usage_guest_nice。9 大项监控指标一共会记录 101 项测量值。

benchANT 生成的测试数据集便基于上文所述的 Devops 场景,共生成 1000 个设备(服务器)、数据范围为 3 天(2022-07-25T00:00:00Z ~ 2022-07-28T00:00:00Z)、数据采集间隔为 10 秒,所以一共包含 1000 * 3 * 24 * 60 * 6 * 101 = 2,617,920,000 个数据点。benchANT 榜单里的写入吞吐,便是通过导入 2,617,920,000 个数据点所需的耗时计算得到。

数据写入阶段包含大量的可调参数,参数不同,数据库的性能也可能有很大不同。为保证测试的公平性,benchANT 测试采用的关键参数如下:

  • "workers": benchANT用于数据导入的并发客户端数量,当数据库部署在 2C8GB 实例时,该值设置为 50;当数据库部署在 4C16GB 实例时,该值设置为 100。

  • "hashWorkers": 控制数据的写入转发规则,当该值设置为 true 时,可以保证相同设备的数据均由同一个客户端进行写入,保证了数据库服务端不会接收到乱序数据;当该值设置为 false 时,则每个设备的数据都会由随机的客户端进行写入,数据库服务端会接收到一定程度的乱序数据。benchANT 在时序场景下的测试,针对所有数据库的测试该值均设置为 false。

  • "batchSize": 单次写入包含的数据点数量,针对所有时序数据库的测试该值均设置为 1000。

3.2

查询性能测试

在数据导入阶段完成后,benchANT 会执行查询性能测试,查询测试用例依然由 TSBS 工具生成,针对 DevOps 场景,TSBS 提供了"single-groupby-1-1-1"、"single-groupby-1-1-12"等多种查询类型,而在 benchANT 的测试框架里,目前只基于最具代表性的"single-groupby-1-1-1"查询类型进行评测。

"single-groupby-1-1-1"查询类型表示的含义是“查询 1 个 metric 中的 1 个 host 在 1 个小时内按照 1 分钟进行分段聚合的值”,针对该类型的 IoTDB 查询示例 SQL 语句为:

SELECT MAX_VALUE(usage_user) FROM root.cpu.host_1 GORUP BY ([2022-07-25 00:00:00, 2022-07-25 01:00:00), 1h)

在 benchANT 的测试中,一共生成了 100000 个"single-groupby-1-1-1"类型的查询语句,每个查询语句会从Metric "CPU"下的1000个设备里随机选择1个设备、从"2022-07-25T00:00:00Z"至"2022-07-28T00:00:00Z"的时间区间内随机选择1个小时作为查询条件。执行完 100000 次查询后,记录整个查询阶段的查询吞吐、查询延迟信息。

查询测试中的关键参数是"workers",表示执行查询测试时并发客户端的数量,该参数与数据写入时指定的"workers"参数保持一致。

3.3

benchANT 运行环境

为保证公平性及可复测性,benchANT 针对数据库的测试均运行在 AWS EC2 上,通过标准化的流程一键评测并生成测评结果。其中针对时序场景的测试,benchANT 通过 Scaling 属性进行区分不同的测试规模,该属性描述了实例规格和测评数据库集群规格的对应关系,集群 small(即 1 节点)+ 实例大小 small = xSmall scaling,集群 small (即1节点)+ 实例大小 medium = small scaling。其中 small, medium 实例的配置如下:

bdb3ff654127cc51ee2074ea85c90677.jpeg

如下图所示:

在 xSmall scaling 下,benchANT 客户端使用 AWS EC2 c5.4xlarge 实例,客户端机器的规格为 16 核 32GB;IoTDB Server 使用 AWS EC2 m5.large 实例,Server 的规格为 2 核 8GB,IoTDB 的部署形态为 1ConfigNode 1DataNode。

在 small scaling 下,benchANT 客户端使用 AWS EC2 c5.4xlarge 实例,客户端机器的规格为 16 核 32GB;IoTDB Server 使用 AWS EC2 m5.xlarge 实例,Server 的规格为 4 核 16GB,IoTDB 的部署形态为 1ConfigNode 1DataNode。

通过构建不同的规模,可以更全面的评测数据库在不同资源下的性能表现。需要说明的是,benchANT 是第三方国外评测机构,其在时序测试场景下构建了 xSmall 与 small 两种规模,这两种规模均非大规模集群,在我们实际的测试中,随着机器规格的提升,IoTDB 对机器资源的调度可以更加精细、具有更大的发挥空间。

26fd4d1837b02c139eeeb24f49e72cbd.png

在接下来的章节,我们将重点介绍基于以上 benchANT 场景,我们复现的测试步骤,分析并对比 Apache IoTDB 及其它时序数据库的性能表现。具体的命令集脚本以及建模方法详见第二弹,敬请关注!

da749ac5c4a10bd68f5365c2cb7c61a6.gif

6f791d3b31c5aa79bff3a1c1ad7c10d2.png

1bcca6aae3418e04abcd767985bddd7e.png

1a57fd9d9189cdda52224d49d9b46d62.png

8dcd2e7f2633b87dbda2b69e1956a9a9.gif

相关文章:

IoTDB 在国际数据库性能测试排行榜中位居第一?测试环境复现与流程详解第一弹!...

最近我们得知,Apache IoTDB 多项性能表现位居 benchANT 时序数据库排行榜(Time Series: DevOps)性能排行第一名!(榜单地址:https://benchANT.com/ranking/database-ranking) benchANT 位于德国&…...

react项目优化

随着项目体积增大,打包的文件体积会越来越大,需要优化,原因无非就是引入的第三方插件比较大导致,下面我们先介绍如何分析各个文件占用体积的大小。 1.webpack-bundle-analyzer插件 如果是webpack作为打包工具的项目可以使用&…...

青藏高原1-km分辨率生态环境质量变化数据集(2000-2020)

青藏高原平均海拔4000米以上,人口1300万,是亚洲九大河流的源头,为超过15亿人口提供淡水、食物和其他生态系统服务,被誉为地球第三极和亚洲水塔。然而,在该地区的人与自然的关系的研究是有限的,尤其是在精细…...

Nature Communications | 张阳实验室:端到端深度学习实现高精度RNA结构预测

RNA分子是基因转录的主要执行者,也是细胞运作的隐形功臣。它们在基因表达调控、支架构建以及催化活性等多个生命过程中都扮演着关键角色。虽然RNA如此重要,但由于实验数据的缺乏,准确预测RNA 的三维空间结构仍然是目前计算生物学面临的重大挑…...

提升您的Mac文件拖拽体验——Dropzone 4 for mac

大家都知道,在Mac上进行文件拖拽是一件非常方便的事情。然而,随着我们在工作和生活中越来越多地使用电脑,我们对于这个简单操作的需求也越来越高。为了让您的文件拖拽体验更加高效和便捷,今天我们向大家介绍一款强大的工具——Dro…...

Vue之transition组件

Vue提供了transition组件,使用户可以更便捷地添加过渡动画效果。 transition组件 transition组件也是一个抽象组件,并不会渲染出真实dom。Vue会在其第一个真实子元素上添加过渡效果。 props render 这里将render分为两部分,第一部分界定真…...

lenovo联想笔记本电脑ThinkPad X13 AMD Gen2(20XH,20XJ)原装出厂Windows10系统镜像

联想原厂Win10系统,自带所有驱动、出厂主题壁纸、系统属性联想LOGO专属标志、Office办公软件、联想电脑管家等预装程序 链接:百度网盘 请输入提取码 提取码:dolg 适用于型号:20XL,20XJ,20XG,21A1,20XK,20XH,20XF,21A0 所需要…...

php导出cvs,excel打开数字超过16变科学计数法

今天使用php导出cvs,在excel中打开,某一个字段是数字,长度高于16位结果就显示科学计数法 超过15位的话从第16位开始就用0代替了 查询了半天总算解决了就是在后面加上"\t" $data[$key][1] " ".$value[1]."\t";…...

CSS 模糊效果 CSS 黑白效果 CSS调整亮度 对比度 饱和度 模糊效果 黑白效果反转颜色

CSS 模糊效果 CSS 黑白效果 CSS调整亮度 饱和度 模糊效果 黑白效果 实现 调整亮度 饱和度 模糊效果 黑白效果 使用 filter1、模糊2、亮度3、对比度4、饱和度5、黑白效果6、反转颜色7、组合使用8、 filer 完整参数 实现 调整亮度 饱和度 模糊效果 黑白效果 使用 filter 1、模糊…...

蓝桥杯 题库 简单 每日十题 day11

01 质数 质数 题目描述 给定一个正整数N,请你输出N以内(不包含N)的质数以及质数的个数。 输入描述 输入一行,包含一个正整数N。1≤N≤10^3 输出描述 共两行。 第1行包含若干个素数,每两个素数之间用一个空格隔开&…...

dart flutter json 转 model 常用库对比 json_serializable json_model JsonToDart

1.对比 我是一个初学者,一直跟着教材用原生的json,最近发现实在太麻烦了.所以搜索了一下,发现真的有很多现成的解决方案. 网页 https://app.quicktype.io/?ldart 这个是测试下来最好用的 有很多选项,可以使用 json_serializable 也可以不使用 json_serializable 这是推荐最…...

nginx启用了自动目录列表功能的安全漏洞修复方法

一、前言 最近被扫描到安全漏洞,说是nginx启用了自动目录列表功能,现象就是访问http://localhost/file就能看到服务器上的目录 二、修复方法 1.把nginx.conf中的autoindex on改为autoindex off location /file {alias /myuser/userfile/file;autoi…...

vector向量类使用

向量是最简单的 STL 容器,其数据结构与数组相似,占据着一个连续的内存块。 由于内存位置是连续的,所以向量中的元素可以随机访问,访问向量中任何一个元素的时间也是固定的。存储空间的管理是自动的,当要将一个元素插入…...

【Java 进阶篇】MySQL多表查询:内连接详解

MySQL是一种强大的关系型数据库管理系统,允许您在多个表之间执行复杂的查询操作。本文将重点介绍MySQL中的多表查询中的一种重要类型:内连接(INNER JOIN)。内连接用于检索满足两个或多个表之间关联条件的行,它能够帮助…...

C理解(四):链表

本文主要探讨单链表与双链表相关知识。 linux内核链表(include/linux/list.h) 内核链表中纯链表封装,纯链表的各种操作函数(节点创建、插入、删除、遍历),纯链表内嵌在驱动结构体中,实现驱动的创建、插入、删除、遍历等 单链表 单链表链表头插…...

新手教程,蛋糕小程序的搭建流程一网打尽

作为一名新手,想要搭建一个蛋糕小程序可能会觉得有些困惑。但是,不用担心!今天我将为大家详细介绍蛋糕小程序的搭建流程,并带大家一步步完成。 首先,我们需要登录乔拓云网的后台。在登录成功后,点击进入商城…...

springcloud之自我介绍

写在前面 在这篇文章 中我们分析了单体应用的问题,以及用来解决这些问题的解决的方案微服务,并接着看了微服务需要考虑的各种,如服务调用,负载均衡,服务治理,链路追踪,分布式事务,等…...

机器学习之神经网络的层次

文章目录 神经网络组成神经网络根据结构分类神经网络的信号传递 神经网络组成 大脑是一个巨大的神经元网络,所以神经网络是一个节点网络。根据节点的连接方式,可以创建多种神经网络。最常用的神经网络类型之一采用了如图所示的节点分层结构 正方形节点组…...

力扣每日一题(+日常水几道题)

每日一题1333. 餐厅过滤器 - 力扣&#xff08;LeetCode&#xff09; 简单的按规则排序,去除几个不满足的条件然后排序返回即可 #include<algorithm> class Solution { public:vector<int> filterRestaurants(vector<vector<int>>& restaurants, …...

百度SEO不稳定的原因及解决方法(百度SEO不稳定因素的5大包括)

百度SEO优化不稳定介绍&#xff1a;蘑菇号-www.mooogu.cn 随着百度SEO算法的不断变化和升级&#xff0c;许多网站的SEO排名经常出现不稳定的情况&#xff0c;这种情况在一定程度上影响了网站的流量和排名&#xff0c;导致网站的质量评分降低。因此&#xff0c;深入分析百度SEO…...

深度学习(1)---卷积神经网络

文章目录 一、发展历史1.1 CNN简要说明1.2 猫的视觉实验1.3 新认知机1.4 LeNet-51.5 AlexNet 二、卷积层2.1 图像识别特点2.2 卷积运算2.3 卷积核2.4 填充和步长2.5 卷积计算公式2.6 多通道卷积 三、池化层 一、发展历史 1.1 CNN简要说明 1. 卷积神经网络&#xff08;Convolut…...

探索社会工程的深度:从定义到高级攻击策略

在广阔的网络安全领域&#xff0c;社会工程作为一种微妙的威胁而出现&#xff0c;它利用人类的漏洞来访问敏感信息或实施欺诈。网络安全背景下的社会工程的定义很明确&#xff1a;它包括使用欺骗手段操纵个人泄露机密或个人信息&#xff0c;然后将这些信息用于欺诈目的。 此类…...

CTF 入门指南:从零开始学习网络安全竞赛

文章目录 写在前面CTF 简介和背景CTF 赛题类型介绍CTF 技能和工具准备好书推荐 写作末尾 写在前面 CTF比赛是快速提升网络安全实战技能的重要途径&#xff0c;已成为各个行业选拔网络安全人才的通用方法。但是&#xff0c;本书作者在从事CTF培训的过程中&#xff0c;发现存在几…...

Spring整合第三方框架

目录 Spring整合第三方框架 加载外部properties文件 自定义命名空间解析原理 自定义命名空间总结和案例需求 总结 案例 Spring整合第三方框架 加载外部properties文件 Spring整合第三方框架不像MyBatis那么简单了&#xff0c;例如Dubbo框架在与Spring框架整合时&#xf…...

Linux Shell 无vi获取文件某行指定内容和修改某行指定内容

注意&#xff1a;操作之前一定要先备份&#xff01;&#xff01;&#xff01;一定要先备份&#xff01;&#xff01;&#xff01;一定要先备份&#xff01;&#xff01;&#xff01; 1. 获取某配置文件中某一行某项的值 cat /sshd_config |grep "PermitRootLogin" …...

在EXCEL中构建加载项之创建加载项的目的及规范要求

【分享成果&#xff0c;随喜正能量】一句南无阿弥陀佛&#xff0c;本是释迦牟尼佛所证的无上正等正觉法&#xff0c;洒在娑婆世界的众生海中&#xff0c;只为末世众生能够以信愿之心抓住此救命稻草&#xff0c;要知道今世人此生的处境&#xff0c;可能只剩这道要么极乐要么三涂…...

Hive【Hive(三)查询语句】

前言 今天是中秋节&#xff0c;早上七点就醒了&#xff0c;干啥呢&#xff0c;大一开学后空教室紧缺&#xff0c;还不趁着假期来学校等啥呢。顺便偷偷许个愿吧&#xff0c;希望在明年的这个时候&#xff0c;秋招不知道赶不赶得上&#xff0c;我希望拿几个国奖&#xff0c;蓝桥杯…...

商场做小程序商城的作用是什么?

商场是众多商家聚集在一起的购物公共场所&#xff0c;大商场也往往入驻着众多行业商家&#xff0c;是每个城市重要的组成部分。 随着互联网电商深入及客户消费行为改变&#xff0c;不少商场如今的客流量非常有限&#xff0c;甚至可以说是员工比客人多&#xff0c;这就导致撤店…...

XPD738协议系列-USB Type-C PD 和 Type-A 双口控制器

产品描述&#xff1a; XPD738 是一款集成 USB Type-C、USB Power Delivery&#xff08;PD&#xff09;2.0/3.0 以及 PPS、QC3.0/QC3.0/QC2.0 快充协议、华为 FCP/SCP/HVSCP 快充协议、三星 AFC 快充协议、BC1.2 DCP 以及苹果设备 2.4A 充电规范的多功能 USB Type-C 和 Type-A …...

【面试八股】IP协议八股

IP协议八股 子网掩码的作用为什么IP协议需要分片IP协议什么时候需要分片IP协议是怎么进行分片的那么IP协议是如果进行标识属于同一个分片呢&#xff1f;TCP协议和UDP协议将数据交给IP协议之后&#xff0c;是否需要分片传输&#xff1f; 子网掩码的作用 用来标识网络号和主机号…...

张店党风廉政建设网站/百度收录刷排名

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2020年美容师&#xff08;中级&#xff09;考试题及美容师&#xff08;中级&#xff09;多少分及格&#xff0c;包含美容师&#xff08;中级&#xff09;考试题答案和解析及美容师&#xff08;中级&#xff09;多少分…...

室内设计3d效果图用什么软件/贵州seo技术查询

摘要&#xff1a;《计算机网络:自顶向下方法(原书第4版)》是当前世界上最为流行的计算机网络教科书之一,采用了作者独创的自顶向下的方法来讲授计算机网络的原理及其协议,即从应用层协议开始沿协议栈向下讲解,强调应用层范例和应用编程接口,使读者尽快进入每天使用的应用程序环…...

为什么网站上传都上传不成功/找小网站的关键词

QString转化为char*问题零、小序一、方法零、小序 今天遇到一个很奇怪的问题&#xff0c;程序运行要生成中间结果&#xff0c;并以xml文件的形式保存起来。但是打包起来之后&#xff0c;死活就是生成不了xml文件。调试代码时发现又没有什么问题&#xff0c;中间结果可以生成。…...

公司做网站比较好/360社区app

这里写自定义目录标题一、实验目的二、实验内容三、实验要求四、实验代码实验结果一、实验目的 理解操作系统的进程调度方法&#xff0c;并通过一个简单的进程调度模拟程序的实现&#xff0c;加深对进程调度算法&#xff0c;进程切换的理解。 二、实验内容 1、采用动态优先数…...

静海的做网站/网络营销成功案例分析

【多选题】地层压力的表示方法有( )。A. 用压力的单位表示B. 用压力梯度表示C. 用当量钻井液密度表示D. 用压力系数表示【填空题】(第六章)现在工业上将黄铜和白铜之外的铜合金均称为 。【判断题】亚马逊服饰鞋包钟表首饰类商品信息检查表规定,Brand Name 是必填项,并且要将Bra…...

vs可以做网站吗/十大中文网站排名

在真实部署环境中&#xff0c;很难将dist生成的内容直接部署到服务器根目录。直接按默认配置build的项目无法在子文件夹中正常运行&#xff0c;需要进行如下配置&#xff1a; 例如&#xff1a; 将项目部署到服务器根目录下的project文件夹下&#xff1a; 修改Router index.js…...