评论

收藏

[Linux] #导入MD文档图片#十分钟上手TDengine大数据平台

服务系统 服务系统 发布于:2021-08-06 11:37 | 阅读数:227 | 评论:0

目录
前言
正文
一、TDengine的优势和特点
1.1 10倍以上的性能提升
1.2 硬件或云服务成本降至1/5
1.3 全栈时序数据处理引擎
1.4 强大的分析功能
1.5 与第三方工具无缝连接
1.6 零运维成本、零学习成本
二、性能数据展示
三、使用Docker模式体验TDengine
3.1 安装Docker
3.2 拉取 TDengine 镜像
3.3 后台启动 TDengine
3.4 查看容器运行状态
3.5 进入容器
3.6 执行 taos shell
3.7 生成测试数据
3.8 查看数据库
3.9 查看数据库表
3.10 测试查询速度
3.11 TDengine支持的系统平台
最后
前言
TDengine是涛思数据专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度,且核心代码,包括集群功能全部开源。
正文
TDengine大数据平台线上实例下载量超过68.8k次,Github上的star数也多达15.5k。可以说是非常热门且使用广泛的大数据平台之一。那么,TDengine大数据平台具备哪些优势和特点呢?另外,我们应该如何使用TDengine大数据平台呢?就是今天讨论的主要内容。本文将分别从这两个方面进行展开讨论。

一、TDengine的优势和特点
我们知道TDengine是一个大数据平台服务,在它广泛使用的背景下,它已经具备一定的优势和特点。换句话说,我们为什么要选择TDengine大数据平台呢?TDengine大数据平台都具备哪些优势和特点呢?接下来,我们一点点分析。
1.1 10倍以上的性能提升
定义了创新的数据存储结构,单核每秒就能处理至少2万次请求,插入数百万个数据点,读出一千万以上数据点,比现有通用数据库快了十倍以上。
1.2 硬件或云服务成本降至1/5
由于超强性能,计算资源不到通用大数据方案的1/5;通过列式存储和先进的压缩算法,存储空间不到通用数据库的1/10。
1.3 全栈时序数据处理引擎
将数据库、消息队列、缓存、流式计算等功能融合一起,应用无需再集成Kafka/Redis/HBase/Spark等软件,大幅降低应用开发和维护成本。
1.4 强大的分析功能
无论是十年前还是一秒钟前的数据,指定时间范围即可查询。数据可在时间轴上或多个设备上进行聚合。即席查询可通过Shell/Python/R/Matlab随时进行。
1.5 与第三方工具无缝连接
不用一行代码,即可与Telegraf, Grafana, EMQ X, Prometheus, Matlab, R集成。后续还将支持MQTT, OPC, Hadoop,Spark等, BI工具也将无缝连接。
1.6 零运维成本、零学习成本
安装、集群一秒搞定,无需分库分表,实时备份。标准SQL,支持JDBC,RESTful,支持Python/Java/C/C++/Go/Node.JS, 与MySQL相似,零学习成本。

二、性能数据展示
为了帮助用户了解 TDengine 的指标,这里将 TDengine 与 MySQL, Cassandra, InfluxDB, OpenTSDB, ClickHouse 做了读写性能对比测试。同时,对 TDengine 单机的其他指标以及集群的水平扩 展性做了测试。
查询速度具体对比测试结果如下:
DSC0000.png

由上图结果,我们可以知道 TDengine 的查询速度和查询能力远远高于 MySQL, Cassandra, InfluxDB, OpenTSDB, ClickHouse。
写入速度具体对比测试结果如下:
DSC0001.png

由上图结果,我们可以知道 TDengine 的写入速度远远高于 MySQL, Cassandra, InfluxDB, OpenTSDB等工具,和 ClickHouse 在客户端连接数为1或2时,不相上下,但是随着客户端连接数的增加写入速度开始甩开 ClickHouse。

三、使用Docker模式体验TDengine
好了,讲了这么多关于 TDengine 的理论知识,我们接下来开始实际动手操作。为了能够达到题目要求的时间限制,最快的部署方式就是Docker模式。虽然并不推荐在生产环境中通过 Docker 来部署 TDengine 服务,但 Docker 工具能够很好地屏蔽底层操作系统的环境差异,很适合在开发测试或者初次体验时用于安装运行 TDengine 的工具集。借助 Docker 模式能够比较方便地在 Mac OSX 和 Windows 系统上尝试 TDengine 服务,而无需安装虚拟机或额外租用 Linux 服务器。
3.1 安装Docker
因为我们想要使用 Docker 的模式跑 TDengine 服务,首先需要我们在机器上安装了 Docker 依赖环境。
使用如下命令:
yum install docker-ce 
具体操作步骤可以参考文章《linux系统中解决docker: command not found》。
安装成功后,我们可以如下命令查看 Docker 的版本:
docker -v
输入如下信息,表示安装成功:
root@ubuntu ~# docker -v
Docker version 20.10.5, build 55c4c88
3.2 拉取 TDengine 镜像
使用命令拉取 TDengine 镜像,默认是最新镜像,我们也可以指定版本。
docker pull tdengine/tdengine 
执行结果如下,表示拉取镜像成功。
root@ubuntu ~# docker pull tdengine/tdengine
Using default tag: latest
latest: Pulling from tdengine/tdengine
4bbfd2c87b75: Pull complete 
d2e110be24e1: Pull complete 
889a7173dcfe: Pull complete 
4710c122052d: Pull complete 
d5c1a989e6cb: Pull complete 
809ba0c8d80f: Pull complete 
0cc2cd9b7023: Pull complete 
9f78a6051779: Pull complete 
Digest: sha256:4e3660c40d374ed8c7e316707470e96d53321c6d98d8ad188a09e2bcc2cb83a0
Status: Downloaded newer image for tdengine/tdengine:latest
docker.io/tdengine/tdengine:latest
3.3 后台启动 TDengine
完成拉取镜像后,我们可以使用如下命令在后台启动 TDengine 服务。其实,我们可以跳过上一步拉取镜像的操作,如果我们直接执行如下命令,当本地不存在对应的 TDengine 镜像时,也会自动下载拉取对应的镜像。
docker run -d tdengine/tdengine
执行结果如下,返回的是对应的 TDengine 容器ID。
root@ubuntu ~# docker run -d tdengine/tdengine
d7fc8faa2549798533cf3fd0e5411e335d4cdf39174020c69c24b336e3a301ae
3.4 查看容器运行状态
使用如下命令可以查看 TDengine 服务是否已经正常启动,“Up About a minute”表示服务已经启动一分钟左右。
root@ubuntu ~# docker container ls | grep tdengine
d7fc8faa2549   tdengine/tdengine        "taosd"                  About a minute ago   Up About a minute     6030-6042/tcp              bold_dewdney
3.5 进入容器
可以使用如下命令进入到容器内部:
root@ubuntu ~# docker exec -it d7fc8faa2549 bash
root@d7fc8faa2549:~/TDengine-server-2.1.3.2# ls
connector  driver  examples  install.sh  taos.tar.gz
3.6 执行 taos shell
在服务器 shell 中执行 taos 命令,TDengine 终端成功连接服务端,打印出了欢迎消息和版本信息。如果失败,会有错误信息打印出来。在 TDengine 终端中,可以通过 SQL 命令来创建/删除数据库、表、超级表等,并可以进行插入和查询操作。
具体执行结果如下:
root@d7fc8faa2549:~/TDengine-server-2.1.3.2# taos
Welcome to the TDengine shell from Linux, Client Version:2.1.3.2
Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.
3.7 生成测试数据
使用 taosdemo 命令生成测试数据,执行晚命令,回车,将新建一个数据库 test,并且自动创建一张超级表 meters,并以超级表 meters 为模版创建了 1 万张表,表名从 "t0" 到 "t9999"。每张表有 10 万条记录,每条记录有 f1,f2,f3 三个字段,时间戳 ts 字段从 "2017-07-14 10:40:00 000" 到 "2017-07-14 10:41:39 999"。每张表带有 areaid 和 loc 两个标签 TAG,areaid 被设置为 1 到 10,loc 被设置为 "beijing" 或 "shanghai"。
执行结果如下:
root@d7fc8faa2549:~/TDengine-server-2.1.3.2# taosdemo
interface:                  taosc
host:                       127.0.0.1:6030
user:                       root
password:                   taosdata
configDir:                  
resultFile:                 ./output.txt
thread num of insert data:  10
thread num of create table: 10
top insert interval:        0
number of records per req:  30000
max sql length:             1048576
database count:             1
database[0]:
database[0] name:      test
drop:                  yes
replica:               1
precision:             ms
super table count:     1
super table[0]:
stbName:           meters
autoCreateTable:   no
childTblExists:    no
childTblCount:     10000
childTblPrefix:    t
dataSource:        rand
iface:             taosc
insertRows:        10000
interlaceRows:     0
disorderRange:     1000
disorderRatio:     0
maxSqlLen:         1048576
timeStampStep:     1
startTimestamp:    2017-07-14 10:40:00.000
sampleFormat:      
sampleFile:        
tagsFile:          
columnCount:       4
column[0]:INT column[1]:INT column[2]:INT column[3]:INT 
tagCount:            2
tag[0]:INT tag[1]:BINARY(16) 
Press enter key to continue or Ctrl-C to stop
create database test success!
Spent 6.2820 seconds to create 10000 tables with 10 thread(s)
3.8 查看数据库
使用如下命令查看数据库,一共有两个,分别是test和log。其中,test库有10000张数据表,log库有4张数据表。注意:taos 语句必须带分号!
执行结果如下:
taos> show databases;
name              |      created_time       |   ntables   |   vgroups   | replica | quorum |  days  |           keep           |  cache(MB)  |   blocks    |   minrows   |   maxrows   | wallevel |    fsync    | comp | cachelast | precision | update |   status   |
\====================================================================================================================================================================================================================================================================================
test                           | 2021-07-11 14:52:11.845 |       10000 |          10 |       1 |      1 |     10 | 3650                     |          16 |           6 |         100 |        4096 |        1 |        3000 |    2 |         0 | ms        |      0 | ready      |
log                            | 2021-07-11 14:43:17.324 |           4 |           1 |       1 |      1 |     10 | 30                       |           1 |           3 |         100 |        4096 |        1 |        3000 |    2 |         0 | us        |      0 | ready      |
Query OK, 2 row(s) in set (0.001062s)
3.9 查看数据库表
使用 use test 命令选择数据库,再使用如下命令查看数据库表,一共10000张表,终端瞬间被刷屏。
taos> use test;
Database changed.
taos> show tables;
......
3.10 测试查询速度
好啦,我们现在测试一下 TDengine 的查询速度,我们查找第100张表的前15条数据,具体命令和执行结果如下:
taos> select * from test.t99 limit 15;
ts            |    col0     |    col1     |    col2     |    col3     |
\==================================================================================
2017-07-14 10:40:00.000 |       46128 |       43635 |       43635 |       47625 |
2017-07-14 10:40:00.001 |       48767 |       23015 |       38987 |       60167 |
2017-07-14 10:40:00.002 |       25223 |       18686 |       18686 |       56218 |
2017-07-14 10:40:00.003 |       27975 |       59365 |       37706 |       17246 |
2017-07-14 10:40:00.004 |       33828 |       33828 |       65500 |       43519 |
2017-07-14 10:40:00.005 |       12169 |       39308 |       62496 |       33360 |
2017-07-14 10:40:00.006 |        1370 |       21448 |       23940 |       15708 |
2017-07-14 10:40:00.007 |       37875 |       47965 |       39073 |       11296 |
2017-07-14 10:40:00.008 |       56074 |       58317 |       13196 |       26983 |
2017-07-14 10:40:00.009 |       14746 |       51094 |       26880 |       21838 |
2017-07-14 10:40:00.010 |       53468 |       60227 |       19184 |       28709 |
2017-07-14 10:40:00.011 |       54294 |       25317 |       60700 |        8795 |
2017-07-14 10:40:00.012 |       19892 |       19892 |       47551 |       15622 |
2017-07-14 10:40:00.013 |       14187 |       27385 |       64117 |       63378 |
2017-07-14 10:40:00.014 |        7355 |       37160 |       21846 |       21846 |
Query OK, 15 row(s) in set (0.003815s)
执行时发现,查询结果几乎是瞬时出来的,说明TDengine的查询速度还是非常快的。
3.11 TDengine支持的系统平台
这么强大的 TDengine 都支持哪些平台呢,最后让我们一起看一下。
DSC0002.png

由上图可知,TDengine服务基本上覆盖了我们常用的平台和系统。
最后
TDengine社区版是一开源版本,采用的是AGPL许可证,是一个处理中小规模的物联网数据平台。TDengine企业版是一个运营商级别的分布式版本,它具备超高的可靠性,超强的水平扩展能力,以应对大数据的挑战,包含社区版所有功能。TDengine云服务版是将TDengine企业版运行公有云上,具备弹性伸缩、零管理的特点,通过专业的技术服务团队,提供运营商级的物联网大数据平台服务。

关注下面的标签,发现更多相似文章