TDengine 参数限制与保留关键字

名称命名规则

  1. 合法字符:英文字符、数字和下划线

  2. 允许英文字符或下划线开头,不允许以数字开头

  3. 不区分大小写

  4. 转义后表(列)名规则: 为了兼容支持更多形式的表(列)名,TDengine 引入新的转义符 “`“。可用让表名与关键词不冲突,同时不受限于上述表名称合法性约束检查。 转义后的表(列)名同样受到长度限制要求,且长度计算的时候不计算转义符。使用转义字符以后,不再对转义字符中的内容进行大小写统一。

    例如:`aBc` 和 `abc` 是不同的表(列)名,但是 abc 和 aBc 是相同的表(列)名。 需要注意的是转义字符中的内容必须是可打印字符。 支持转义符的功能从 2.3.0.1 版本开始。

密码合法字符集

[a-zA-Z0-9!?$%^&*()_–+={[}]:;@~#|<,>.?/]

去掉了 ‘“`\ (单双引号、撇号、反斜杠、空格)

  • 数据库名:不能包含“.”以及特殊字符,不能超过 32 个字符
  • 表名:不能包含“.”以及特殊字符,与所属数据库名一起,不能超过 192 个字节 ,每行数据最大长度 48KB
  • 表的列名:不能包含特殊字符,不能超过 64 个字节
  • 数据库名、表名、列名,都不能以数字开头,合法的可用字符集是“英文字符、数字和下划线”
  • 表的列数:不能超过 1024 列,最少需要 2 列,第一列必须是时间戳(从 2.1.7.0 版本开始,改为最多支持 4096 列)
  • 记录的最大长度:包括时间戳 8 字节,不能超过 48KB(每个 BINARY/NCHAR 类型的列还会额外占用 2 个 字节 的存储位置)
  • 单条 SQL 语句默认最大字符串长度:1048576 字节,但可通过系统配置参数 maxSQLLength 修改,取值范围 65480 ~ 1048576 字节
  • 数据库副本数:不能超过 3
  • 用户名:不能超过 23 个 字节
  • 用户密码:不能超过 15 个 字节
  • 标签(Tags)数量:不能超过 128 个,可以 0 个
  • 标签的总长度:不能超过 16KB
  • 记录条数:仅受存储空间限制
  • 表的个数:仅受节点个数限制
  • 库的个数:仅受节点个数限制
  • 单个库上虚拟节点个数:不能超过 64 个
  • 库的数目,超级表的数目、表的数目,系统不做限制,仅受系统资源限制
  • SELECT 语句的查询结果,最多允许返回 1024 列(语句中的函数调用可能也会占用一些列空间),超限时需要显式指定较少的返回数据列,以避免语句执行报错。(从 2.1.7.0 版本开始,改为最多允许 4096 列)

保留关键字

目前 TDengine 有将近 200 个内部保留关键字,这些关键字无论大小写均不可以用作库名、表名、STable 名、数据列名及标签列名等。这些关键字列表如下:

A

  • ABORT
  • ACCOUNT
  • ACCOUNTS
  • ADD
  • AFTER
  • ALL
  • ALTER
  • AND
  • AS
  • ASC
  • ATTACH

B

  • BEFORE
  • BEGIN
  • BETWEEN
  • BIGINT
  • BINARY
  • BITAND
  • BITNOT
  • BITOR
  • BLOCKS
  • BOOL
  • BY

C

  • CACHE
  • CACHELAST
  • CASCADE
  • CHANGE
  • CLUSTER
  • COLON
  • COLUMN
  • COMMA
  • COMP
  • COMPACT
  • CONCAT
  • CONFLICT
  • CONNECTION
  • CONNECTIONS
  • CONNS
  • COPY
  • CREATE
  • CTIME

D

  • DATABASE
  • DATABASES
  • DAYS
  • DBS
  • DEFERRED
  • DELIMITERS
  • DESC
  • DESCRIBE
  • DETACH
  • DISTINCT
  • DIVIDE
  • DNODE
  • DNODES
  • DOT
  • DOUBLE
  • DROP

E

  • END
  • EQ
  • EXISTS
  • EXPLAIN

F

  • FAIL
  • FILE
  • FILL
  • FLOAT
  • FOR
  • FROM
  • FSYNC

G

  • GE
  • GLOB
  • GRANTS
  • GROUP
  • GT

H

  • HAVING

I

  • ID
  • IF
  • IGNORE
  • IMMEDIA
  • IMPORT
  • IN
  • INITIAL
  • INSERT
  • INSTEAD
  • INT
  • INTEGER
  • INTERVA
  • INTO
  • IS
  • ISNULL

J

  • JOIN

K

  • KEEP
  • KEY
  • KILL

L

  • LE
  • LIKE
  • LIMIT
  • LINEAR
  • LOCAL
  • LP
  • LSHIFT
  • LT

M

  • MATCH
  • MAXROWS
  • MINROWS
  • MINUS
  • MNODES
  • MODIFY
  • MODULES

N

  • NE
  • NONE
  • NOT
  • NOTNULL
  • NOW
  • NULL

O

  • OF
  • OFFSET
  • OR
  • ORDER

P

  • PARTITION
  • PASS
  • PLUS
  • PPS
  • PRECISION
  • PREV
  • PRIVILEGE

Q

  • QTIME
  • QUERIE
  • QUERY
  • QUORUM

R

  • RAISE
  • REM
  • REPLACE
  • REPLICA
  • RESET
  • RESTRIC
  • ROW
  • RP
  • RSHIFT

S

  • SCORES
  • SELECT
  • SEMI
  • SESSION
  • SET
  • SHOW
  • SLASH
  • SLIDING
  • SLIMIT
  • SMALLIN
  • SOFFSET
  • STable
  • STableS
  • STAR
  • STATE
  • STATEMEN
  • STATE_WI
  • STORAGE
  • STREAM
  • STREAMS
  • STRING
  • SYNCDB

T

  • TABLE
  • TABLES
  • TAG
  • TAGS
  • TBNAME
  • TIMES
  • TIMESTAMP
  • TINYINT
  • TOPIC
  • TOPICS
  • TRIGGER
  • TSERIES

U

  • UMINUS
  • UNION
  • UNSIGNED
  • UPDATE
  • UPLUS
  • USE
  • USER
  • USERS
  • USING

V

  • VALUES
  • VARIABLE
  • VARIABLES
  • VGROUPS
  • VIEW
  • VNODES

W

  • WAL
  • WHERE

_

  • _C0
  • _QSTART
  • _QSTOP
  • _QDURATION
  • _WSTART
  • _WSTOP
  • _WDURATION

特殊说明

TBNAME

TBNAME 可以视为超级表中一个特殊的标签,代表子表的表名。

获取一个超级表所有的子表名及相关的标签信息:

  1. SELECT TBNAME, location FROM meters;

统计超级表下辖子表数量:

  1. SELECT COUNT(TBNAME) FROM meters;

以上两个查询均只支持在WHERE条件子句中添加针对标签(TAGS)的过滤条件。例如:

  1. taos> SELECT TBNAME, location FROM meters;
  2. tbname | location |
  3. ==================================================================
  4. d1004 | California.SanFrancisco |
  5. d1003 | California.SanFrancisco |
  6. d1002 | California.LosAngeles |
  7. d1001 | California.LosAngeles |
  8. Query OK, 4 row(s) in set (0.000881s)
  9. taos> SELECT COUNT(tbname) FROM meters WHERE groupId > 2;
  10. count(tbname) |
  11. ========================
  12. 2 |
  13. Query OK, 1 row(s) in set (0.001091s)

_QSTART/_QSTOP/_QDURATION

表示查询过滤窗口的起始,结束以及持续时间 (从2.6.0.0版本开始支持)

_WSTART/_WSTOP/_WDURATION

窗口切分聚合查询(例如 interval/session window/state window)中表示每个切分窗口的起始,结束以及持续时间(从 2.6.0.0 版本开始支持)

_c0

表示表或超级表的第一列