TDengine部署与基本运维

2022-05-16 00:00:00 数据 文件 目录 端口 默认值
简介

TDengine是一个国产时序数据库,由涛思数据打造


以下来自官方简介

TDengine是涛思数据面对高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,它不依赖任何第三方软件,也不是优化或包装了一个开源的数据库或流式计算产品,而是在吸取众多传统关系型数据库、NoSQL数据库、流式计算引擎、消息队列等软件的优点之后自主开发的产品,在时序空间大数据处理上,有着自己独到的优势。

TDengine的模块之一是时序数据库。但除此之外,为减少研发的复杂度、系统维护的难度,TDengine还提供缓存、消息队列、订阅、流式计算等功能,为物联网、工业互联网大数据的处理提供全栈的技术方案,是一个高效易用的物联网大数据平台。与Hadoop等典型的大数据平台相比,它具有如下鲜明的特点:

  • 10倍以上的性能提升:定义了创新的数据存储结构,单核每秒能处理至少2万次请求,插入数百万个数据点,读出一千万以上数据点,比现有通用数据库快十倍以上。
  • 硬件或云服务成本降至1/5:由于超强性能,计算资源不到通用大数据方案的1/5;通过列式存储和先进的压缩算法,存储空间不到通用数据库的1/10。
  • 全栈时序数据处理引擎:将数据库、消息队列、缓存、流式计算等功能融为一体,应用无需再集成Kafka/Redis/HBase/Spark/HDFS等软件,大幅降低应用开发和维护的复杂度成本。
  • 强大的分析功能:无论是十年前还是一秒钟前的数据,指定时间范围即可查询。数据可在时间轴上或多个设备上进行聚合。即席查询可通过Shell, Python, R, MATLAB随时进行。
  • 与第三方工具无缝连接:不用一行代码,即可与Telegraf, Grafana, EMQ, HiveMQ, Prometheus, MATLAB, R等集成。后续将支持OPC, Hadoop, Spark等, BI工具也将无缝连接。
  • 零运维成本、零学习成本:安装集群简单快捷,无需分库分表,实时备份。类似标准SQL,支持RESTful, 支持Python/Java/C/C++/C#/Go/Node.js, 与MySQL相似,零学习成本。

采用TDengine,可将典型的物联网、车联网、工业互联网大数据平台的总拥有成本大幅降低。但需要指出的是,因充分利用了物联网时序数据的特点,它无法用来处理网络爬虫、微-博微-信、电商、ERP、CRM等通用型数据。

TDengine是涛思数据面对高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,

背景信息

操作系统:CentOS8 x64


下载TDengine

下载地址

https://www.taosdata.com/cn/getting-started/#%E9%80%9A%E8%BF%87%E5%AE%89%E8%A3%85%E5%8C%85%E5%AE%89%E8%A3%85

本案例中使用rpm安装包进行演示,

点击目标安装包之后填写自己的邮件地址点击下载,片刻之后邮箱就可以收到下载链接,点击链接将安装包下载到本地。

rpm包安装下载

上传安装包至服务器

使用FTP工具将安装包上传到服务器上,本案例中使用Xftp进行文件的上传;

上传rpm安装包

安装TDengine

安装命令rpm -ivh TDengine-server-2.0.20.9-Linux-x64.rpm
,安装过程会询问是否要加入已有的集群中,直接按回车跳过,之后会索要邮件地址,再次按下回车跳过。

TDengine配置文件目录。

To configure TDengine : edit etc/taos/taos.cfg

安装TDengine

TDengine运维

TDengine服务的基本运维命令

systemctl start taosd #启动 TDengine 服务进程

systemctl stop taosd #停止 TDengine 服务进程

systemctl status taosd #查看 TDengine 服务进程

systemctl restart taosd #重启 TDengine 服务进程

启动TDengine

TDengine成功安装后,主安装目录是/usr/local/taos,默认会在操作系统中生成下列目录或文件:

目录/文件说明
/usr/local/taos/binTDengine可执行文件目录。其中的执行文件都会软链接到/usr/bin目录下。
/usr/local/taos/connectorTDengine各种连接器目录。
/usr/local/taos/driverTDengine动态链接库目录。会软链接到/usr/lib目录下。
/usr/local/taos/examplesTDengine各种语言应用示例目录。
/usr/local/taos/includeTDengine对外提供的C语言接口的头文件。
/etc/taos/taos.cfgTDengine默认[配置文件]
/var/lib/taosTDengine默认数据文件目录,可通过[配置文件]修改位置.
/var/log/taosTDengine默认日志文件目录,可通过[配置文件]修改位置

TDengine主安装目录

可执行文件

TDengine的所有可执行文件默认存放在 /usr/local/taos/bin 目录下。其中包括:

  • taosd:TDengine服务端可执行文件
  • taos:TDengine Shell可执行文件
  • taosdump:数据导入导出工具

您可以通过修改系统配置文件taos.cfg来配置不同的数据目录和日志目录。

直接在shell中执行taosd将会输出TDengine数据库的配置以及操作系统的信息。

另外可以在taos shell中使用 “-C” 显示当前服务器配置参数,示例:taos -C


在shell中执行taos将进入TDengine Shell,用户可以在CLI中直接使用标准的SQL语句管理TDengine数据库。


TDengine 配置选项说明:

配置文件的缺省位置在/etc/taos目录,而且这些参数的缺省配置都是工作的,一般无需设置。

注意配置修改后,需要重启taosd服务才能生效。

建议使用vim编辑器打开/etc/taos/taos.cfg
按需配置参数

  • firstEp: taosd启动时,主动连接的集群中dnode的end point, 默认值为localhost:6030。
  • fqdn:数据节点的FQDN,缺省为操作系统配置的个hostname。如果习惯IP地址访问,可设置为该节点的IP地址。这个参数值的长度需要控制在 96 个字符以内。
  • serverPort:taosd启动后,对外服务的端口号,默认值为6030。(RESTful服务使用的端口号是在此基础上+11,即默认值为6041。)
  • dataDir: 数据文件目录,所有的数据文件都将写入该目录。默认值:/var/lib/taos。
  • logDir:日志文件目录,客户端和服务器的运行日志文件将写入该目录。默认值:/var/log/taos。
  • arbitrator:系统中裁决器的end point, 缺省值为空。
  • role:dnode的可选角色。0-any; 既可作为mnode,也可分配vnode;1-mgmt;只能作为mnode,不能分配vnode;2-dnode;不能作为mnode,只能分配vnode
  • debugFlag:运行日志开关。131(输出错误和警告日志),135( 输出错误、警告和调试日志),143( 输出错误、警告、调试和跟踪日志)。默认值:131或135(不同模块有不同的默认值)。
  • numOfLogLines:单个日志文件允许的大行数。默认值:10,000,000行。
  • logKeepDays:日志文件的长保存时间。大于0时,日志文件会被重命名为taosdlog.xxx,其中xxx为日志文件后修改的时间戳,单位为秒。默认值:0天。
  • maxSQLLength:单条SQL语句允许长限制。默认值:65380字节。
  • telemetryReporting: 是否允许 TDengine 采集和上报基本使用信息,0表示不允许,1表示允许。默认值:1。
  • stream: 是否启用连续查询(流计算功能),0表示不允许,1表示允许。默认值:1。
  • queryBufferSize: 为所有并发查询占用保留的内存大小。计算规则可以根据实际应用可能的大并发数和表的数字相乘,再乘 170 。单位为 MB(2.0.15 以前的版本中,此参数的单位是字节)。
  • ratioOfQueryCores: 设置查询线程的大数量。小值0 表示只有1个查询线程;大值2表示大建立2倍CPU核数的查询线程。默认为1,表示大和CPU核数相等的查询线程。该值可以为小数,即0.5表示大建立CPU核数一半的查询线程。
  • days:一个数据文件存储数据的时间跨度。单位为天,默认值:10。
  • keep:数据库中数据保留的天数。单位为天,默认值:3650。(可通过 alter database 修改)
  • minRows:文件块中记录的小条数。单位为条,默认值:100。
  • maxRows:文件块中记录的大条数。单位为条,默认值:4096。
  • comp:文件压缩标志位。0:关闭;1:一阶段压缩;2:两阶段压缩。默认值:2。(可通过 alter database 修改)
  • wal:WAL级别。1:写wal,但不执行fsync;2:写wal, 而且执行fsync。默认值:1。(在 taos.cfg 中参数名需要写作 walLevel)
  • fsync:当wal设置为2时,执行fsync的周期。设置为0,表示每次写入,立即执行fsync。单位为毫秒,默认值:3000。
  • cache:内存块的大小。单位为兆字节(MB),默认值:16。
  • blocks:每个VNODE(TSDB)中有多少cache大小的内存块。因此一个VNODE的用的内存大小粗略为(cache * blocks)。单位为块,默认值:4。(可通过 alter database 修改)
  • replica:副本个数。取值范围:1-3,单位为个,默认值:1。(可通过 alter database 修改)
  • quorum:多副本环境下指令执行的确认数要求。取值范围:1、2,单位为个,默认值:1。(可通过 alter database 修改)
  • precision:时间戳精度标识。ms表示毫秒,us表示微秒,默认值:ms。(2.1.2.0 版本之前、2.0.20.7 版本之前在 taos.cfg 文件中不支持此参数。)
  • cacheLast:是否在内存中缓存子表的近数据。0:关闭;1:缓存子表近一行数据;2:缓存子表每一列的近的非NULL值;3:同时打开缓存近行和列功能。默认值:0。(可通过 alter database 修改)(从 2.1.2.0 版本开始此参数支持 0~3 的取值范围,在此之前取值只能是 [0, 1];而 2.0.11.0 之前的版本在 SQL 指令中不支持此参数。)(2.1.2.0 版本之前、2.0.20.7 版本之前在 taos.cfg 文件中不支持此参数。)
  • update:是否允许更新。0:不允许;1:允许。默认值:0。

修改存储期限

服务端口

TDengine会使用从serverPort
起13个连续的TCP和UDP端口号,请务必在防火墙打开。因此如果是缺省配置,需要打开从6030到6042共13个端口,而且必须TCP和UDP都打开。

在 TDengine 2.0 版本中,会用到以下这些网络端口(以默认端口 6030 为前提进行说明,如果修改了配置文件中的设置,那么这里列举的端口都会出现变化),管理员可以参考这里的信息调整防火墙设置:

协议默认端口用途说明修改方法
TCP6030客户端与服务端之间通讯。由配置文件设置 serverPort 决定。
TCP6035多节点集群的节点间通讯。随 serverPort 端口变化。
TCP6040多节点集群的节点间数据同步。随 serverPort 端口变化。
TCP6041客户端与服务端之间的 RESTful 通讯。随 serverPort 端口变化。
TCP6042Arbitrator 的服务端口。因 Arbitrator 启动参数设置变化。
TCP6060企业版内 Monitor 服务的网络端口。
UDP6030-6034客户端与服务端之间通讯。随 serverPort 端口变化。
UDP6035-6039多节点集群的节点间通讯。随 serverPort 端口变化。

用户管理

系统管理员可以在CLI界面里添加、删除用户,也可以修改密码。CLI里SQL语法如下:

  • 创建用户,并制定用户名和密码,密码需要用单引号引起来
CREATE USER user_name PASS ‘password’;

  • 删除用户,限root用户使用
DROP USER user_name;
  • 显示所有用户
SHOW USERS;

  • 修改用户密码,为避免被转换为小写,密码需要用单引号引用,单引号为英文半角
ALTER USER user_name PASS 'new_password';

  • 修改用户权限为:write 或 read,不需要添加单引号

    说明:系统内共有 super/write/read 三种权限级别,但目前不允许通过 alter 指令把 super 权限赋予用户。

ALTER USER user_name PRIVILEGE <write|read>;

注意: SQL 语法中,< >表示需要用户输入的部分,请不要输入< >本身.


Python连接器

TDengine提供了丰富的应用程序开发接口,其中包括C/C++、Java、Python、Go、Node.js、C# 、RESTful 等,便于用户快速开发应用。

这里只演示Linux下的Python连接器的基本使用;

首先要确认我们的服务器已经安装了python3,在这里我的版本是:3.6.8

python3  #查看Linux服务器的python版本;

当您在Linux服务器上安装部署好TDengine之后,各种语言的连接器(库)也会被复制到您服务器本地的/usr/local/taos/connector
目录中,我们只需要进入到目录安装即可

# 进入python库文件目录
cd /usr/local/taos/connector/python/  #
# 执行安装命令
python3 setup.py install

python库安装

TDengine的开发人员在/usr/local/taos/connector/python/examples
目录下准备了一个demo.py文件方便运维人员做测试。

在这里先将demo.py拷贝到别处,原文件当作备份。

使用vim编辑器打开之后可以看到demo.py的内容

demo程序
#导入TDengin的库模块
import taos
#创建连接
'''   #相关参数
host:  TDengine服务器主机地址
user:  TDengine数据库默认用户名 root
passworkd: TDengine数据库root账户密码 默认:taodata
database: TDengine数据库 库名 log = 日志库
'''

conn = taos.connect(host='127.0.0.1',
                    user='root',
                    passworkd='taodata',
                    database='log')
# 创建游标
cursor = conn.cursor()
# SQL语句 查询log库log表的前10行内容
sql = "select * from log.log limit 10"
#执行 SQL 语句
cursor.execute(sql)
#将游标返回的数据按行输出
for row in cursor:
    print(row)
~                

执行demo.py后该示例程序打印出log库log表的前10条记录。

运行demo.py

有了Python连接器我们就可以非常容易的将业务数据保存到TDengine。

更多示例代码请参照官方Github页面:

https://github.com/taosdata/TDengine/blob/master/tests/examples/python/read_example.py

来源 https://www.modb.pro/db/89176

相关文章