Tdengine 测试

本文档详细记录了在腾讯云服务器和Docker环境下安装TDengine数据库的过程,包括直接安装、Docker版本安装及启动。同时,进行了客户端登录、数据库创建、大数据量插入与查询性能测试,对比了官方宣称的性能与实际测试结果。
摘要由CSDN通过智能技术生成

直接安装

在我自己腾讯云服务器(2c4g)安装,先在官网下载 deb包到服务器,然后设置host名称 为td1,执行命令如下

sudo hostnamectl set-hostname td1

检测是否设置成功

hostname -f

返回为td1为成功。

设置host映射,切换到root用户,编辑**/etc/hosts**文件,在最后加入ip映射

请添加图片描述

参考 https://www.taosdata.com/blog/2019/08/09/566.html 安装 之前下载的安装包,

安装完成后相关信息如下图:

请添加图片描述

启动

sudo systemctl start taosd

查看状态

sudo systemctl status taosd

请添加图片描述

客户端登录

因为我是在服务器上登录,所以不需要在安装单独的客户端。执行

taos -h td1

结果提示不能建立连接,暂未找到原因。

所以利用docker版本来测试。

Docker 版本安装

/home/ubuntu/software/tdengine/tdengine_docker_file 建立三个挂载点,

/etc/taos/ -> 配置文件路径

/var/lib/taos -> 数据路径和

/var/log/taos -> 日志路径

启动容器

执行docker命令,启动容器并挂载,

docker run -d --name tdengine -v $PWD/taos_cfg:/etc/taos -v $PWD/taos_data:/var/lib/taos -v $PWD/taos_log:/var/log/taos -p 6030:6030 -p 6035:6035 -p 6041:6041 -p 6030-6040:6030-6040/udp tdengine/tdengine

注意

1.  -v 挂载时,前一个是宿主机文件位置,后一个是容器内路径,
2.  执行docker命令要在 当前路径下执行,宿主机当前相对路径利用$PWD代替点

进入容器

启动完成后,进入容器

docker exec -it tdengine /bin/bash

请添加图片描述

客户端登录

taos -h

数据库创建测试

taos

请添加图片描述

请添加图片描述

大数据量测试

tdengine自带一个工具,能生成大量数据并插入数据库,用于测试。

请添加图片描述

执行命令

注意:以下每条指令都包含两种,分别对应我第一次在腾讯云docker中进行的测试盒第二次在我本地NUC8电脑中docker做的测试

# 腾讯云用
taosdemo 

# nuc8 用 两者版本不一致,nuc8版本为 taosdemo verison 2.0.20.13-1b7861f
taosdemo -n 100000 -S 1000 # 每个子表10万条记录,每条记录时间戳间隔为1s

请添加图片描述

9秒完成1万张子表

请添加图片描述

官方耗时483秒,我实测1238秒,差不多20分钟完成插入10亿条记录

nuc8(4c16g 256 nvme SSD) docker 测试结果

请添加图片描述

用时472ms

查询测试

1.查询总记录数

select count(*) from test.meters;

官方0.3秒,下图为我自己实测:,下同。

请添加图片描述

nuc8(4c16g 256 nvme SSD) docker 测试结果

请添加图片描述

nuc8验证是否数据间隔为1秒

select * from test.meters limit 100;

请添加图片描述

2.查询 并聚合 最大值 最小值 平均值

select avg(f1),max(f2),min(f3) from test.meters;

select avg(current),max(voltage),min(phase) from test.meters; # 新版本表结构发生了变化

官方0.76秒,我自己实测下图:

请添加图片描述

nuc8

请添加图片描述

3.降采样,每隔10秒进行一次聚合计算

select avg(f1),max(f2),min(f3) from test.meters interval(10s);
select avg(current),max(voltage),min(phase) from test.meters interval(10s); # 新版本表结构发生了变化

请添加图片描述

我自己服务器耗时10分钟,官方耗时0.09秒,难道是ECS太拉胯?

nuc8:

请添加图片描述

耗时5.5分钟,看来不是ECS拉胯,确实达不到官方描述的时间,暂未找到原因。

4.条件查询,这个应该是最常用

select avg(f1),max(f2),min(f3) from test.meters where areaid=10;
select avg(current),max(voltage),min(phase) from test.meters where groupid=0;# 新版本表结构发生了变化

官方0.09秒,我自己
请添加图片描述

nuc8
请添加图片描述

5. 条件计数

select count(*) from test.meters where areaid=10;
select count(*) from test.meters where groupid=0;# 新版本表结构发生了变化

官方0.29s,我自己下图

请添加图片描述

nuc8:

请添加图片描述

### 回答1: Spring Boot是一个快速开发框架,可以帮助我们快速搭建一个基于Java的Web应用程序。而TDengine是一个高性能的时序数据库,可以用于存储和分析大量的时间序列数据。将Spring Boot和TDengine整合起来,可以实现一个高效、可靠的时序数据存储和分析系统。 要实现Spring Boot和TDengine的整合,需要进行以下步骤: 1. 添加TDengine的依赖:在pom.xml文件中添加TDengine的依赖,可以使用官方提供的Java客户端或者第三方的TDengine客户端。 2. 配置TDengine连接信息:在application.properties文件中配置TDengine的连接信息,包括IP地址、端口号、用户名和密码等。 3. 编写数据访问层:使用TDengine客户端提供的API,编写数据访问层,实现数据的读写操作。 4. 编写业务逻辑层和控制层:根据具体的业务需求,编写业务逻辑层和控制层,调用数据访问层提供的接口,实现业务逻辑的处理和数据的展示。 5. 测试和部署:进行单元测试和集成测试,确保系统的稳定性和可靠性。最后将系统部署到生产环境中,提供服务。 总之,Spring Boot和TDengine的整合可以帮助我们快速搭建一个高效、可靠的时序数据存储和分析系统,为企业的业务发展提供有力的支持。 ### 回答2: Spring Boot是一个用于构建基于Spring框架的应用程序的开源框架,它提供了自动配置和快速启动功能,可以让开发人员更快地开发应用程序。TDengine是一个高性能、高可靠性的时序数据库,主要用于大数据分析和物联网应用。 Spring Boot和TDengine之间实现整合主要有以下几种方法: 1.使用JDBC连接 Spring Boot提供了许多关于JDBC连接的依赖,可以用于连接到各种关系型数据库,包括TDengine。通过在Spring Boot项目中添加TDengine驱动程序,开发人员可以使用JDBC连接来访问TDengine数据库。需要注意的是,TDengine需要先创建好相应的表才能使用JDBC进行连接。 2.使用Spring Data TDengine Spring Data是Spring框架的一个模块,可用于简化数据访问层的开发。Spring Data TDengine可用于将TDengine集成到Spring Boot应用程序中。使用此方式进行整合,需要在Spring Boot项目中添加Spring Data TDengine的依赖,并进行相应的配置。 3.使用自定义API 开发人员可以使用自定义的API与TDengine进行交互。主要包括以下步骤:首先需要添加TDengine SDK的依赖,然后编写自定义API来访问TDengine数据库。 总之,Spring Boot和TDengine之间的整合可以根据具体业务场景采用不同的方式进行。通过将两者进行整合,开发人员可以更加高效地处理时序数据,提高业务处理效率和准确性。 ### 回答3: Spring Boot是一个非常流行的Java开发框架,它提供了一种轻量级、快速开发Web应用程序的方式。而TDengine是一款高性能的时序数据库,它的存储和查询能力非常强大,特别适用于处理海量数据场景。那么,如何将这两个工具整合起来呢? 首先,我们需要在pom.xml文件中添加TDengine驱动的依赖。在这个过程中,我们可以使用Maven、Gradle等构建工具来管理项目的依赖。 接下来,我们需要编写Spring Boot应用程序的代码。一般来说,我们需要定义一个Controller,以便前端或其他程序能够访问我们的应用程序。对于这个Controller的代码,我们需要编写一些TDengine查询语句,以便从TDengine中获取所需的数据。 在这个过程中,我们需要注意许多细节。例如,我们需要确保TDengine服务器的地址和端口号正确,同时我们需要对查询结果做好错误处理,以便在出现错误时及时做出相应的处理。 总的来说,整合Spring Boot和TDengine并不是一件非常困难的事情,但是需要一定的Java编程知识和对TDengine的了解。通过这种整合,我们可以将Spring Boot的快速开发能力和TDengine的存储和查询能力结合起来,从而更加高效地处理大量的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值