Configuration Parameters

Configuration File on Server Side

On the server side, the actual service of TDengine is provided by an executable taosd whose parameters can be configured in file taos.cfg to meet the requirements of different use cases. The default location of taos.cfg is /etc/taos, but can be changed by using -c parameter on the CLI of taosd. For example, the configuration file can be put under /home/user and used like below

  1. taosd -c /home/user

Parameter -C can be used on the CLI of taosd to show its configuration, like below:

  1. taosd -C

Configuration File on Client Side

TDengine CLI taos is the tool for users to interact with TDengine. It can share same configuration file as taosd or use a separate configuration file. When launching taos, parameter -c can be used to specify the location where its configuration file is. For example taos -c /home/cfg means /home/cfg/taos.cfg will be used. If -c is not used, the default location of the configuration file is /etc/taos. For more details please use taos --help to get.

  1. taos -C
  1. taos --dump-config

Configuration Parameters

Configuration - 图1note

The parameters described in this document by the effect that they have on the system.

Configuration - 图2note

taosd needs to be restarted for the parameters changed in the configuration file to take effect.

Connection Parameters

firstEp

AttributeDescription
ApplicableServer and Client
MeaningThe end point of the first dnode in the cluster to be connected to when taosd or taos is started
Defaultlocalhost:6030

secondEp

AttributeDescription
ApplicableServer and Client
MeaningThe end point of the second dnode to be connected to if the firstEp is not available when taosd or taos is started
DefaultNone

fqdn

AttributeDescription
ApplicableServer Only
MeaningThe FQDN of the host where taosd will be started. It can be IP address
Default ValueThe first hostname configured for the host
NoteIt should be within 96 bytes

serverPort

AttributeDescription
ApplicableServer Only
MeaningThe port for external access after taosd is started
Default Value6030
Configuration - 图3note
  • Ensure that your firewall rules do not block TCP port 6042 on any host in the cluster. Below table describes the ports used by TDengine in details.
ProtocolDefault PortDescriptionHow to configure
TCP6030Communication between client and server. In a multi-node cluster, communication between nodes. serverPort
TCP6041REST connection between client and serverPrior to 2.4.0.0: serverPort+11; After 2.4.0.0 refer to taosAdapter
TCP6043Service Port of TaosKeeperThe parameter of TaosKeeper
TCP6044Data access port for StatsDConfigurable through taosAdapter parameters.
UDP6045Data access for statsdConfigurable through taosAdapter parameters.
TCP6060Port of Monitoring Service in Enterprise version

maxShellConns

AttributeDescription
ApplicableServer Only
MeaningThe maximum number of connections a dnode can accept
Value Range10-50000000
Default Value5000

Monitoring Parameters

monitor

AttributeDescription
ApplicableServer only
MeaningThe switch for monitoring inside server. The main object of monitoring is to collect information about load on physical nodes, including CPU usage, memory usage, disk usage, and network bandwidth. Monitoring information is sent over HTTP to the taosKeeper service specified by monitorFqdn and monitorProt.
Value Range0: monitoring disabled, 1: monitoring enabled
Default1

monitorFqdn

AttributeDescription
ApplicableServer Only
MeaningFQDN of taosKeeper monitoring service
DefaultNone

monitorPort

AttributeDescription
ApplicableServer Only
MeaningPort of taosKeeper monitoring service
Default Value6043

monitorInterval

AttributeDescription
ApplicableServer Only
MeaningThe interval of collecting system workload
Unitsecond
Value Range1-200000
Default Value30

telemetryReporting

AttributeDescription
ApplicableServer Only
MeaningSwitch for allowing TDengine to collect and report service usage information
Value Range0: Not allowed; 1: Allowed
Default Value1

Query Parameters

queryPolicy

AttributeDescription
ApplicableClient only
MeaningExecution policy for query statements
UnitNone
Default1
Value Range1: Run queries on vnodes and not on qnodes

2: Run subtasks without scan operators on qnodes and subtasks with scan operators on vnodes.

3: Only run scan operators on vnodes; run all other operators on qnodes. |

querySmaOptimize

AttributeDescription
ApplicableClient only
MeaningSMA index optimization policy
UnitNone
Default Value0
Notes

0: Disable SMA indexing and perform all queries on non-indexed data.

1: Enable SMA indexing and perform queries from suitable statements on precomputation results.|

countAlwaysReturnValue

AttributeDescription
ApplicableServer only
Meaningcount()/hyperloglog() return value or not if the result data is NULL
Vlue Range0:Return empty line,1:Return 0
Default1

maxNumOfDistinctRes

AttributeDescription
ApplicableServer Only
MeaningThe maximum number of distinct rows returned
Value Range[100,000 - 100,000,000]
Default Value100,000

keepColumnName

AttributeDescription
ApplicableClient only
MeaningWhen the Last, First, LastRow function is queried, whether the returned column name contains the function name.
Value Range0 means including the function name, 1 means not including the function name.
Default Value0

Locale Parameters

timezone

AttributeDescription
ApplicableServer and Client
MeaningTimeZone
Default ValueTimeZone configured in the host
Configuration - 图4info

To handle the data insertion and data query from multiple timezones, Unix Timestamp is used and stored in TDengine. The timestamp generated from any timezones at same time is same in Unix timestamp. Note that Unix timestamps are converted and recorded on the client side. To make sure the time on client side can be converted to Unix timestamp correctly, the timezone must be set properly.

On Linux/macOS, TDengine clients automatically obtain timezone from the host. Alternatively, the timezone can be configured explicitly in configuration file taos.cfg like below. For example:

  1. timezone UTC-8
  2. timezone GMT-8
  3. timezone Asia/Shanghai

The above examples are all proper configuration for the timezone of UTC+8. On Windows system, however, timezone Asia/Shanghai is not supported, it must be set as timezone UTC-8.

The setting for timezone impacts strings that are not in Unix timestamp format and keywords or functions related to date/time. For example:

  1. SELECT count(*) FROM table_name WHERE TS<'2019-04-11 12:01:08';

If the timezone is UTC+8, the above SQL statement is equal to:

  1. SELECT count(*) FROM table_name WHERE TS<1554955268000;

If the timezone is UTC, it’s equal to

  1. SELECT count(*) FROM table_name WHERE TS<1554984068000;

To avoid the problems of using time strings, Unix timestamp can be used directly. Furthermore, time strings with timezone can be used in SQL statements. For example “2013-04-12T15:52:01.123+08:00” in RFC3339 format or “2013-04-12T15:52:01.123+0800” in ISO-8601 format are not influenced by timezone setting when converted to Unix timestamp.

locale

AttributeDescription
ApplicableServer and Client
MeaningLocation code
Default ValueLocale configured in host
Configuration - 图5info

A specific type “nchar” is provided in TDengine to store non-ASCII characters such as Chinese, Japanese, and Korean. The characters to be stored in nchar type are firstly encoded in UCS4-LE before sending to server side. Note that the correct encoding is determined by the user. To store non-ASCII characters correctly, the encoding format of the client side needs to be set properly.

The characters input on the client side are encoded using the default system encoding, which is UTF-8 on Linux/macOS, or GB18030 or GBK on some systems in Chinese, POSIX in docker, CP936 on Windows in Chinese. The encoding of the operating system in use must be set correctly so that the characters in nchar type can be converted to UCS4-LE.

The locale definition standard on Linux/macOS is: <Language>_<Region>.<charset>, for example, in “zh_CN.UTF-8”, “zh” means Chinese, “CN” means China mainland, “UTF-8” means charset. The charset indicates how to display the characters. On Linux/macOS, the charset can be set by locale in the system. On Windows system another configuration parameter charset must be used to configure charset because the locale used on Windows is not POSIX standard. Of course, charset can also be used on Linux/macOS to specify the charset.

charset

AttributeDescription
ApplicableServer and Client
MeaningCharacter
Default Valuecharset set in the system
Configuration - 图6info

On Linux/macOS, if charset is not set in taos.cfg, when taos is started, the charset is obtained from system locale. If obtaining charset from system locale fails, taos would fail to start.

So on Linux/macOS, if system locale is set properly, it’s not necessary to set charset in taos.cfg. For example:

  1. locale zh_CN.UTF-8

On Windows system, it’s not possible to obtain charset from system locale. If it’s not set in configuration file taos.cfg, it would be default to CP936, same as set as below in taos.cfg. For example

  1. charset CP936

Refer to the documentation for your operating system before changing the charset.

On a Linux/macOS, if the charset contained in locale is not consistent with that set by charset, the later setting in the configuration file takes precedence.

  1. locale zh_CN.UTF-8
  2. charset GBK

The charset that takes effect is GBK.

  1. charset GBK
  2. locale zh_CN.UTF-8

The charset that takes effect is UTF-8.

Storage Parameters

dataDir

AttributeDescription
ApplicableServer Only
MeaningAll data files are stored in this directory
Default Value/var/lib/taos

tempDir

AttributeDescription
ApplicableServer only
MeaningThe directory where to put all the temporary files generated during system running
Default/tmp

minimalTmpDirGB

AttributeDescription
ApplicableServer and Client
MeaningWhen the available disk space in tmpDir is below this threshold, writing to tmpDir is suspended
UnitGB
Default Value1.0

minimalDataDirGB

AttributeDescription
ApplicableServer Only
MeaningWhen the available disk space in dataDir is below this threshold, writing to dataDir is suspended
UnitGB
Default Value2.0

Cluster Parameters

supportVnodes

AttributeDescription
ApplicableServer Only
MeaningMaximum number of vnodes per dnode
Value Range0-4096
Default Value2x the CPU cores

Log Parameters

logDir

AttributeDescription
ApplicableServer and Client
MeaningThe directory for writing log files
Default Value/var/log/taos

minimalLogDirGB

AttributeDescription
ApplicableServer and Client
MeaningWhen the available disk space in logDir is below this threshold, writing to log files is suspended
UnitGB
Default Value1.0

numOfLogLines

AttributeDescription
ApplicableServer and Client
MeaningMaximum number of lines in single log file
Default Value10000000

asyncLog

AttributeDescription
ApplicableServer and Client
MeaningThe mode of writing log file
Value Range0: sync way; 1: async way
Default Value1

logKeepDays

AttributeDescription
ApplicableServer and Client
MeaningThe number of days for log files to be kept
Unitday
Default Value0
NoteWhen it’s bigger than 0, the log file would be renamed to “taosdlog.xxx” in which “xxx” is the timestamp when the file is changed last time

debugFlag

AttributeDescription
ApplicableServer and Client
MeaningLog level
Value Range131: INFO/WARNING/ERROR; 135: plus DEBUG; 143: plus TRACE
Default Value131 or 135, depending on the module

tmrDebugFlag

AttributeDescription
ApplicableServer and Client
MeaningLog level of timer module
Value Rangesame as debugFlag
Default Value

uDebugFlag

AttributeDescription
ApplicableServer and Client
MeaningLog level of common module
Value Rangesame as debugFlag
Default Value

rpcDebugFlag

AttributeDescription
ApplicableServer and Client
MeaningLog level of rpc module
Value Rangesame as debugFlag
Default Value

jniDebugFlag

AttributeDescription
ApplicableClient Only
MeaningLog level of jni module
Value Rangesame as debugFlag
Default Value

qDebugFlag

AttributeDescription
ApplicableServer and Client
MeaningLog level of query module
Value Rangesame as debugFlag
Default Value

cDebugFlag

AttributeDescription
ApplicableClient Only
MeaningLog level of Client
Value Rangesame as debugFlag
Default Value

dDebugFlag

AttributeDescription
ApplicableServer Only
MeaningLog level of dnode
Value Rangesame as debugFlag
Default Value135

vDebugFlag

AttributeDescription
ApplicableServer Only
MeaningLog level of vnode
Value Rangesame as debugFlag
Default Value

mDebugFlag

AttributeDescription
ApplicableServer Only
MeaningLog level of mnode module
Value Rangesame as debugFlag
Default Value135

wDebugFlag

AttributeDescription
ApplicableServer Only
MeaningLog level of WAL module
Value Rangesame as debugFlag
Default Value135

sDebugFlag

AttributeDescription
ApplicableServer and Client
MeaningLog level of sync module
Value Rangesame as debugFlag
Default Value135

tsdbDebugFlag

AttributeDescription
ApplicableServer Only
MeaningLog level of TSDB module
Value Rangesame as debugFlag
Default Value

tqDebugFlag

AttributeDescription
ApplicableServer only
MeaningLog level of TQ module
Value Rangesame as debugFlag
Default Value

fsDebugFlag

AttributeDescription
ApplicableServer only
MeaningLog level of FS module
Value Rangesame as debugFlag
Default Value

udfDebugFlag

AttributeDescription
ApplicableServer Only
MeaningLog level of UDF module
Value Rangesame as debugFlag
Default Value

smaDebugFlag

AttributeDescription
ApplicableServer Only
MeaningLog level of SMA module
Value Rangesame as debugFlag
Default Value

idxDebugFlag

AttributeDescription
ApplicableServer Only
MeaningLog level of index module
Value Rangesame as debugFlag
Default Value

tdbDebugFlag

AttributeDescription
ApplicableServer Only
MeaningLog level of TDB module
Value Rangesame as debugFlag
Default Value

Schemaless Parameters

smlChildTableName

AttributeDescription
ApplicableClient only
MeaningCustom subtable name for schemaless writes
TypeString
Default ValueNone

smlTagName

AttributeDescription
ApplicableClient only
MeaningDefault tag for schemaless writes without tag value specified
TypeString
Default Value_tag_null

smlDataFormat

AttributeDescription
ApplicableClient only
MeaningWhether schemaless columns are consistently ordered
Value Range0: not consistent; 1: consistent.
Default1

Compress Parameters

compressMsgSize

AttributeDescription
ApplicableBoth Client and Server side
MeaningWhether RPC message is compressed
Value Range-1: none message is compressed; 0: all messages are compressed; N (N>0): messages exceeding N bytes are compressed
Default-1

Other Parameters

enableCoreFile

AttributeDescription
ApplicableServer and Client
MeaningWhether to generate core file when server crashes
Value Range0: false, 1: true
Default Value1
NoteThe core file is generated under root directory systemctl start taosd/launchctl start com.tdengine.taosd is used to start, or under the working directory if taosd is started directly on Linux/macOS Shell.

udf

AttributeDescription
ApplicableServer Only
MeaningWhether the UDF service is enabled
Value Range0: disable UDF; 1: enabled UDF
Default Value1

3.0 Parameters

#参数Applicable to 2.xApplicable to 3.0Current behavior in 3.0
1firstEpYesYes
2secondEpYesYes
3fqdnYesYes
4serverPortYesYes
5maxShellConnsYesYes
6monitorYesYes
7monitorFqdnNoYes
8monitorPortNoYes
9monitorIntervalYesYes
10queryPolicyNoYes
11querySmaOptimizeNoYes
12maxNumOfDistinctResYesYes
15countAlwaysReturnValueYesYes
16dataDirYesYes
17minimalDataDirGBYesYes
18supportVnodesNoYes
19tempDirYesYes
20minimalTmpDirGBYesYes
21smlChildTableNameYesYes
22smlTagNameYesYes
23smlDataFormatNoYes
24statusIntervalYesYes
25logDirYesYes
26minimalLogDirGBYesYes
27numOfLogLinesYesYes
28asyncLogYesYes
29logKeepDaysYesYes
30debugFlagYesYes
31tmrDebugFlagYesYes
32uDebugFlagYesYes
33rpcDebugFlagYesYes
34jniDebugFlagYesYes
35qDebugFlagYesYes
36cDebugFlagYesYes
37dDebugFlagYesYes
38vDebugFlagYesYes
39mDebugFlagYesYes
40wDebugFlagYesYes
41sDebugFlagYesYes
42tsdbDebugFlagYesYes
43tqDebugFlagNoYes
44fsDebugFlagYesYes
45udfDebugFlagNoYes
46smaDebugFlagNoYes
47idxDebugFlagNoYes
48tdbDebugFlagNoYes
49metaDebugFlagNoYes
50timezoneYesYes
51localeYesYes
52charsetYesYes
53udfYesYes
54enableCoreFileYesYes