如何理解时序数据库 TDengine 3.0 的参数体系

如何理解时序数据库 TDengine 3.0 的参数体系 - TDengine Database 时序数据库

在日常使用 TDengine 时序数据库(TSDB) 时,参数是用户们无法绕开的重要一环。深入了解参数的属性,生效范围,查询更改方式等会让我们在使用数据库的过程中更加节时高效,也有助于我们更加深入地理解数据库的架构体系。

在 3.0 版本中,TDengine 对参数做了更好的分类,也提供了几个十分方便的查询入口。首先,我们来看下它们的使用方式——

参数分级

集群级别参数:

SHOW CLUSTER VARIABLES;

代表集群搭建时,必须要保证相同的一组参数。

如何理解时序数据库 TDengine 3.0 的参数体系 - TDengine Database 时序数据库

客户端级别参数:

SHOW LOCAL VARIABLES;

代表当前客户端配置参数的运行值。

如何理解时序数据库 TDengine 3.0 的参数体系 - TDengine Database 时序数据库

数据节点级别参数:

SHOW DNODE dnode_id VARIABLES;
SHOW DNODE dnode_id VARIABLES like "xxxxxxxxx";

代表该数据节点上所有参数当前配置值

(包含集群变量、客户端变量),支持 like 子句检索具体的变量值。

如何理解时序数据库 TDengine 3.0 的参数体系 - TDengine Database 时序数据库

数据库级别变量:

数据库级别的变量不是通过 show 命令查询的,它需要通过元数据库 information_schema 的系统表以 SQL 形式查询得出,例如:

select * from information_schema.ins_databases\G;(\G方便展示)
如何理解时序数据库 TDengine 3.0 的参数体系 - TDengine Database 时序数据库

参数具体含义

TDengine 的集群、客户端、数据节点(即上文 1-3 )的参数具体含义如下:

https://docs.taosdata.com/reference/config/

注意:部分参数默认是不暴露在配置文件中的,但手动配置它们也可以使用,目的是希望用户不要随意修改它们从而造成不好的影响。

数据库级别的参数具体含义如下:

https://docs.taosdata.com/taos-sql/database/#参数说明

参数修改方式

不论是数据库的服务端还是客户端,它们在启动的初始化阶段都需要调用相同的函数读取 /etc/taos/taos.cfg(默认路径)加载所需参数。因此,参数的更新方式以冷更新为主,对于上述集群、客户端、数据节点(即上文 1-3 )的参数,具体更新方式如下:

  • 打开 /etc/taos/taos.cfg;
  • 删除参数前的注释符 #(若不删除,则修改无效,仍然使用默认值);
  • 修改参数值 ;
  • 保存退出;
  • 重启数据库服务端/客户端;
如何理解时序数据库 TDengine 3.0 的参数体系 - TDengine Database 时序数据库

以上范围的参数中,只有日志参数是支持热更新的。如果需要动态调整日志级别用于诊断分析数据库状态,可以通过 alter dnode命令来完成,具体细节可参考:

https://docs.taosdata.com/taos-sql/node/#修改数据节点配置

如果要修改客户端的变量,可以通过alter local 命令来完成,具体细节可参考:

https://docs.taosdata.com/taos-sql/node/#修改客户端配置

数据库级别变量不支持冷更新,只支持部分参数的热更,具体细节可参考:

https://docs.taosdata.com/taos-sql/database/#修改数据库参数

这里就引申出了另一个问题,针对部分不可修改的参数,即在时序数据库部署的前期,我们需要注意哪些地方呢?在后续的文章中,我会继续和大家分享内容,一起迅速掌握 TDengine 这款开源、高性能、云原生的时序数据库(Time Series Database)。