直接安装
在我自己腾讯云服务器(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: