TDengine实战

快速体验的步骤

服务器部署TDenginge

  1. 下载最新rpm
  2. rpm -ivh TDengine-server-1.6.5.7-Linux-x64.rpm
  3. 卸载TDenginge rpm -e TDengine

关于如何快速体验和使用TDengine:
1、快速安装和上手(安装、运行、体验demo,基本半个小时之内完成): https://www.taosdata.com/cn/getting-started/
2、进阶:了解具体的建模、SQL语句、高级应用等(有基础的大概1-2天): https://www.taosdata.com/cn/documentation/
3、具体的一些Case应用详细指导: https://www.taosdata.com/cn/blog/
推荐2个:
( 1)、快速数据导入:https://www.taosdata.com/blog/2020/01/18/1166.html
(2)、用Docker容器快速搭建一个Devops监控Demo https://www.taosdata.com/blog/2020/02/03/1189.html
4、第三方测试对比工具和方法: https://www.taosdata.com/blog/2020/01/13/1105.html
5、 也可以直接参考我们自己的对比测试报表和测试方案、环境、源代码
(1)、TDengine与OpenTSDB对比测试
https://www.taosdata.com/blog/2019/08/21/621.html
(2)、TDengine与Cassandra对比测试
https://www.taosdata.com/blog/2019/08/14/573.html
(3)、TDengine与InfluxDB对比测试
https://www.taosdata.com/blog/2019/07/19/419.html

细节:

  1. 表名和列名不能跟关键字和函数名冲突。如avg等。
  2. TDengine的异步API均采用非阻塞调用模式。应用程序可以用多线程同时打开多张表,并可以同时对每张打开的表进行查询或者插入操作。需要指出的是,客户端应用必须确保对同一张表的操作完全串行化,即对同一个表的插入或查询操作未完成时(未返回时),不能够执行第二个插入或查询操作。
  3. TAG 里面的字符串 一定要带 ' ' 。
  4. 写数据的时候,发现盘写满了,忘记换数据目录了。赶紧把配置表的数据目录路径一改,再把原来的数据一迁移。发现不行。这是因为/var/lib/taos/tsdb 里面的软链接还没有改过来,所以找不到数据节点。
    5.对于一个应用场景,可能有多种数据特征的数据并存,最佳的设计是将具有相同数据特征的表放在一个库里,这样一个应用有多个库,而每个库可以配置不同的存储参数,从而保证系统有最优的性能。TDengine容许应用在创建库时指定上述存储参数,如果指定,该参数就将覆盖对应的系统配置参数。举例,有下述SQL:
create database demo days 10 cache 16000 ablocks 4

该SQL创建了一个库demo, 每个数据文件保留10天数据,内存块为16000字节,每个表平均占用4个内存块,而其他参数与系统配置完全一致。

  1. 导出数据时,可以使用taosdump 工具。慎用 -M 参数。这个参数会导出表或者库的结构。如果你不想使用库原来的配置,如cache,ablocks,tblocks 等参数,就不要加这个参数。
  2. 服务端写数据比客户端写数据快。我这边的数据是2倍左右。
  3. 有条件的话可以重写数据,没条件的话再选择导出数据,导出再导入还不如重写。
  4. 重点。如何根据自己的业务场景优化自己的数据库结构
    可以修改的参数配置有

days:数据文件存储数据的时间跨度,单位为天
keep:数据保留的天数
rows: 文件块中记录条数
comp: 文件压缩标志位,0:关闭,1:一阶段压缩,2:两阶段压缩
ctime:数据从写入内存到写入硬盘的最长时间间隔,单位为秒
clog:数据提交日志(WAL)的标志位,0为关闭,1为打开
tables:每个vnode允许创建表的最大数目
cache: 内存块的大小(字节数)
tblocks: 每张表最大的内存块数
ablocks: 每张表平均的内存块数
precision:时间戳为微秒的标志位,ms表示毫秒,us表示微秒

最有用的几个参数:days, ctime, tables, cache,ablokcs,tblocks。
这几个参数需要在创建库的时候就要配置好,否则会用系统默认配置。
占用总内存 = cache * ablocks * 你的总表数
TDengine里的vnode概念,主要是为了提高查询速度,有点map/reduce的感觉。因此,我们如果想要提高查询效率,可以想办法增加vnode的数量。tables参数可以用来调节vnode参数。tables越小,vnode就越多。但是也不能太小,这是一个工程问题。把vnode控制在10-100之间为最佳。
TDengine将一个vnode保存在持久化存储的数据切分成多个文件,每个文件只保存固定天数的数据,这个天数由系统配置参数days决定。切分成多个文件后,给定查询的起止日期,无需任何索引,就可以立即定位需要打开哪些数据文件,大大加快读取速度

  1. python安装问题
    服务器上安装python版taos驱动
pip3 install src/connector/python/linux/python3/

导入后,报错,找不到libtaos.so,是因为系统环境变量没有配。看下面的解决方案
https://github.com/taosdata/TDengine/issues/193

—————以上都是1.6版本的内容,由于TDengine已经更新到2.0,改动比较大,下面的内容都是2.0的——————

  1. TDengine 支持修改的数据库配置参数已经改变。

days:一个数据文件存储数据的时间跨度,单位为天,默认值:10。
keep:数据库中数据保留的天数,单位为天,默认值:3650。
minRows: 文件块中记录的最小条数,单位为条,默认值:100。
maxRows: 文件块中记录的最大条数,单位为条,默认值:4096。
comp: 文件压缩标志位,0:关闭,1:一阶段压缩,2:两阶段压缩。默认值:2。
walLevel:WAL级别。1:写wal, 但不执行fsync; 2:写wal, 而且执行fsync。默认值:1。
fsync:当wal设置为2时,执行fsync的周期。设置为0,表示每次写入,立即执行fsync。单位为毫秒,默认值:3000。
cache: 内存块的大小,单位为兆字节(MB),默认值:16。
blocks: 每个VNODE(TSDB)中有多少cache大小的内存块。因此一个VNODE的用的内存大小粗略为(cache * blocks)。单位为块,默认值:4。
replica:副本个数,取值范围:1-3。单位为个,默认值:1
precision:时间戳精度标识,ms表示毫秒,us表示微秒。默认值:ms

你可能感兴趣的:(TDengine实战)