一、来吧,展示,按照博客潜规则,先来一段简介(可忽略):

       TDengine是涛思数据专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码,包括集群功能全部开源。

二、官网copy的性能测试对比数据(与InfluxDB)

功能对比

       TDengine与InfluxDB都能用于时序数据的处理,两者在数据库层面上功能接近。但TDengine还具备消息队列、缓存、消息订阅等大数据平台所需要的功能。使用InfluxDB,还需要集成Kafka, Redis或其他类似软件。具体对比如下:

tdengine支持java tdengine性能_tdengine支持java

tdengine支持java tdengine性能_数据_02

总结

       此次测试,从数据库的读、写、查询、压缩比等方面对TDengine和InfluxDB进行了对比测试。测试用数据集、测试程序源码、执行的SQL语句都可以从https://github.com/taosdata/TDengine/tree/master/tests/comparisonTest/下载,测试具备可重复性。

从测试结果上看,TDengine的性能远超InfluxDB,写入性能约为5倍,读取性能约为35倍,聚合函数性能约为140倍,按标签分组查询性能约为250倍,按时间分组查询性能约为12倍,压缩比约为1.8倍,具体见下表:

tdengine支持java tdengine性能_tdengine支持java_03

废话我也不多说,请客官们原谅,码字太累了,网上百度资料也不是特别多,需要具体了解的可参见官网:https://www.taosdata.com/cn/

下面主要介绍1、下载安装;2、TDengine数据库的常用结构概念;3、支持的数据类型;

三、下载安装:

常见情况基本上是windows上面码代码,部署到linux上,且TDengine暂无windows服务端,所以需要在linux(centos7.0及以上版本)上面安装TDengine的服务端,在windows上面安装TDengine的客户端,以进行TDengine的通信。

第一步:进入官网点击文档 —》点击快速安装

tdengine支持java tdengine性能_tdengine支持java_04

第二步:点击“这里”(你也可以直接点击安装包下载,但是建议点击“这里”进入历史版本下载页)

tdengine支持java tdengine性能_数据_05

注意:你可以下载linux的rpm包等等进行安装,这里我就不演示了,我用的是docker进行安装启动,由于TDengine对于版本要求较严格,且windows客户端版本更新较慢,所以在这个历史版本下载页面,你只需要关注“TDengine Windows Client”这一栏,看你需要的windows client 的版本进行下载,下载时需要你提供邮箱地址进行下载,放心提供,很安全0.0,然后,linux服务端进行对应版本的下载或者docker镜像安装;如果使用docker,切记,不要下载TDengine-client-1.6.6.1-Windows-x64.exe的window版本,因为docker中没有1.6.6.1的对应服务端镜像,至少我现在没看到。

tdengine支持java tdengine性能_数据_06

3.1、windows客户端安装:

我windows下载的是:TDengine-client-1.6.5.9-Windows-x64.exe;

下载完成直接点击安装,一切默认即可,安装后在C盘可以看到有一个TDengine文件夹,至此,客户端的傻瓜式安装即完成,无需其他操作。

3.2、linux服务端安装(docker):

a、docker命令安装镜像:一定要网络情况良好,如果网络不好,建议用手机流量开热点下载,不然卡到哭。

docker pull tdengine/tdengine:1.6.5.9

b、启动容器:

docker run --name taos1659  -d -v /etc/taos:/etc/taos   -v  /var/lib/taos:/var/lib/taos  -v  /var/log/taos:/var/log/taos   -p 6020:6020 -p 6035:6035 -p 6041:6041 -p 6030-6040:6030-6040/udp tdengine/tdengine:1.6.5.9

启动之后,利用:“docker ps ” 看看容器是否启动成功,对于启动命令的一些解释:

--name taos1659 是对容器起名称,方便后续操作,另外TDengine 1.6.x.x版本需要用到 6020, 6030-6040 的端口。因此,在Docker容器需要与外部建立连接时,请绑定相应端口。其中,6030到6040的端口会用到UDP协议,6030,6035和6041这三个端口同时还需要用到TCP协议,因此,在端口映射时需要注意指定协议。

c、进入容器:

docker exec -it taos1659 bash

d、输入taos命令进入taos数据库:

taos

成功进入数据库之后,你会看到下图样子,证明你成功了:

tdengine支持java tdengine性能_tdengine支持java_07

四、一切准备就绪,我们先来普及TDengine的一些基本概念以及建库建表:

TDengine大部分语法其实与mysql一样,但是,形如select 1 这种sql语句mysql支持,TDengine不支持。

a、数据库:TDengine的数据库就和我们平时见到的mysql的数据库概念一样,没有其他区别,但是,由于TDengine数据库天生为了物联网服务,在设计时,并没有设计数据删除的功能,所以,如果你需要进行数据删除,可以对数据库进行数据过期删除的时间策略进行设置,如:CREATE DATABASE test KEEP 365 DAYS;表示创建数据库test,这个库的数据将保留365天(超过365天将被自动删除);注意:2.0.x以上版本才支持过期删除,1.6.x及其以下版本暂不支持;

利用命令创建数据库test:(我的是1.6.5.9,所以没法设置过期时间)

create database if not exists test;

然后输入:"use test;" 进入该数据库;

use test;

b、超级表:超级表简单理解就是一系列表的分类,如果你的业务不需要分类,其实不用超级表也可以,下面是官方对于超级表的定义:(我没有用到超级表,所以没有建立超级表)

tdengine支持java tdengine性能_数据库_08

c、表:最好是每一个相同的业务类型或者是设备建立一张表

利用命令建立表weather,有3个字段:ts 时间戳,temperature 温度,humidity 湿度:

create table if not exists weather(ts timestamp, temperature int, humidity float);

利用insert命令加入数据:

insert into weather (ts, temperature, humidity) values (now, 25, 26.3);

插入完成,select * from weather; 结果如下:

tdengine支持java tdengine性能_docker_09

总结:

1、创建库: create database if not exists test;

2、创建表:create table if not exists weather(ts timestamp, temperature int, humidity float);

3、插入数据(时间函数是 now 不是mysql的 now() ):insert into weather (ts, temperature, humidity) values (now, 25, 26.3); 

4、查询数据:select * from weather;

五、TDengine数据结构:

其中BINARY类型对应数据库的varchar,如 BINARY(255) = varchar(255)。注意图片中红框的tips:

tdengine支持java tdengine性能_数据库_10

六、TDengine客户端Linux环境安装:

由于windows开发项目,最终还是要部署到Linux上面,所以,Linux上面也需要进行客户端的安装。根据上面下载步骤,下载

TDengine-client-1.6.5.9-Linux-x64.tar.gz

1、下载好之后,丢到Linux环境上面自己觉得合适的文件夹中,进入该文件夹,通过命令解压:

tar xvzf TDengine-client-1.6.5.9-Linux-x64.tar.gz

2、进入解压后的TDengine-client文件夹,会看到 install_client.sh 文件,执行命令:

sh install_client.sh

3、执行完成之后,即可完成Linux端客户端的安装,成功如下图所示:

tdengine支持java tdengine性能_tdengine支持java_11

至此完成所有环境的搭建,下一篇介绍springboot结合TDengine以及mysql双数据源搭建,springboot与TDengine单数据源的demo在C:\TDengine\examples\JDBC里面有,我就不进行介绍了;