语法变更

SQL 基本元素变更

#元素
差异性
说明
1VARCHAR新增BINARY类型的别名。
2TIMESTAMP字面量新增新增支持 TIMESTAMP ‘timestamp format’ 语法。
3_ROWTS伪列新增表示时间戳主键。是_C0伪列的别名。
4_IROWTS伪列新增用于返回 interp 函数插值结果对应的时间戳列。
5INFORMATION_SCHEMA新增包含各种SCHEMA定义的系统数据库。
6PERFORMANCE_SCHEMA新增包含运行信息的系统数据库。
7连续查询废除不再支持连续查询。相关的各种语法和接口废除。
8混合运算增强查询中的混合运算(标量运算和矢量运算混合)全面增强,SELECT的各个子句均全面支持符合语法语义的混合运算。
9标签运算新增在查询中,标签列可以像普通列一样参与各种运算,用于各种子句。
10时间线子句和时间函数用于超级表查询增强没有PARTITION BY时,超级表的数据会被合并成一条时间线。

SQL 语句变更

在 TDengine 中,普通表的数据模型中可使用以下数据类型。

#语句
差异性
说明
1ALTER ACCOUNT废除2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。
2ALTER ALL DNODES新增修改所有DNODE的参数。
3ALTER DATABASE调整废除
  • QUORUM:写入需要的副本确认数。3.0版本使用STRICT来指定强一致还是弱一致。3.0.0版本STRICT暂不支持修改。
  • BLOCKS:VNODE使用的内存块数。3.0版本使用BUFFER来表示VNODE写入内存池的大小。
  • UPDATE:更新操作的支持模式。3.0版本所有数据库都支持部分列更新。
  • CACHELAST:缓存最新一行数据的模式。3.0版本用CACHEMODEL代替。
  • COMP:3.0版本暂不支持修改。
    新增
  • CACHEMODEL:表示是否在内存中缓存子表的最近数据。
  • CACHESIZE:表示缓存子表最近数据的内存大小。
  • WAL_FSYNC_PERIOD:代替原FSYNC参数。
  • WAL_LEVEL:代替原WAL参数。
    调整
  • REPLICA:3.0.0版本暂不支持修改。
  • KEEP:3.0版本新增支持带单位的设置方式。
4ALTER STABLE调整废除
  • CHANGE TAG:修改标签列的名称。3.0版本使用RENAME TAG代替。
    新增
  • RENAME TAG:代替原CHANGE TAG子句。
  • COMMENT:修改超级表的注释。
5ALTER TABLE调整废除
  • CHANGE TAG:修改标签列的名称。3.0版本使用RENAME TAG代替。
    新增
  • RENAME TAG:代替原CHANGE TAG子句。
  • COMMENT:修改表的注释。
  • TTL:修改表的生命周期。
6ALTER USER调整废除
  • PRIVILEGE:修改用户权限。3.0版本使用GRANT和REVOKE来授予和回收权限。
    新增
  • ENABLE:启用或停用此用户。
  • SYSINFO:修改用户是否可查看系统信息。
7COMPACT VNODES暂不支持整理指定VNODE的数据。3.0.0版本暂不支持。
8CREATE ACCOUNT废除2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。
9CREATE DATABASE调整废除
  • BLOCKS:VNODE使用的内存块数。3.0版本使用BUFFER来表示VNODE写入内存池的大小。
  • CACHE:VNODE使用的内存块的大小。3.0版本使用BUFFER来表示VNODE写入内存池的大小。
  • CACHELAST:缓存最新一行数据的模式。3.0版本用CACHEMODEL代替。
  • DAYS:数据文件存储数据的时间跨度。3.0版本使用DURATION代替。
  • FSYNC:当 WAL 设置为 2 时,执行 fsync 的周期。3.0版本使用WAL_FSYNC_PERIOD代替。
  • QUORUM:写入需要的副本确认数。3.0版本使用STRICT来指定强一致还是弱一致。
  • UPDATE:更新操作的支持模式。3.0版本所有数据库都支持部分列更新。
  • WAL:WAL 级别。3.0版本使用WAL_LEVEL代替。
    新增
  • BUFFER:一个 VNODE 写入内存池大小。
  • CACHEMODEL:表示是否在内存中缓存子表的最近数据。
  • CACHESIZE:表示缓存子表最近数据的内存大小。
  • DURATION:代替原DAYS参数。新增支持带单位的设置方式。
  • PAGES:一个 VNODE 中元数据存储引擎的缓存页个数。
  • PAGESIZE:一个 VNODE 中元数据存储引擎的页大小。
  • RETENTIONS:表示数据的聚合周期和保存时长。
  • STRICT:表示数据同步的一致性要求。
  • SINGLE_STABLE:表示此数据库中是否只可以创建一个超级表。
  • VGROUPS:数据库中初始VGROUP的数目。
  • WAL_FSYNC_PERIOD:代替原FSYNC参数。
  • WAL_LEVEL:代替原WAL参数。
  • WAL_RETENTION_PERIOD:wal文件的额外保留策略,用于数据订阅。
  • WAL_RETENTION_SIZE:wal文件的额外保留策略,用于数据订阅。
  • WAL_ROLL_PERIOD:wal文件切换时长。
  • WAL_SEGMENT_SIZE:wal单个文件大小。
    调整
  • KEEP:3.0版本新增支持带单位的设置方式。
10CREATE DNODE调整新增主机名和端口号分开指定语法
  • CREATE DNODE dnode_host_name PORT port_val
11CREATE INDEX新增创建SMA索引。
12CREATE MNODE新增创建管理节点。
13CREATE QNODE新增创建查询节点。
14CREATE STABLE调整新增表参数语法
  • COMMENT:表注释。
  • 15CREATE STREAM新增创建流。
    16CREATE TABLE调整新增表参数语法
    • COMMENT:表注释。
    • WATERMARK:指定窗口的关闭时间。
    • MAX_DELAY:用于控制推送计算结果的最大延迟。
    • ROLLUP:指定的聚合函数,提供基于多层级的降采样聚合结果。
    • SMA:提供基于数据块的自定义预计算功能。
    • TTL:用来指定表的生命周期的参数。
    17CREATE TOPIC新增创建订阅主题。
    18DROP ACCOUNT废除2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。
    19DROP CONSUMER GROUP新增删除消费组。
    20DROP INDEX新增删除索引。
    21DROP MNODE新增创建管理节点。
    22DROP QNODE新增创建查询节点。
    23DROP STREAM新增删除流。
    24DROP TABLE调整新增批量删除语法
    25DROP TOPIC新增删除订阅主题。
    26EXPLAIN新增查看查询语句的执行计划。
    27GRANT新增授予用户权限。
    28KILL TRANSACTION新增终止管理节点的事务。
    29KILL STREAM废除终止连续查询。3.0版本不再支持连续查询,而是用更通用的流计算来代替。
    31REVOKE新增回收用户权限。
    32SELECT调整
    • SELECT关闭隐式结果列,输出列均需要由SELECT子句来指定。
    • DISTINCT功能全面支持。2.x版本只支持对标签列去重,并且不可以和JOIN、GROUP BY等子句混用。
    • JOIN功能增强。增加支持:JOIN后WHERE条件中有OR条件;JOIN后的多表运算;JOIN后的多表GROUP BY。
    • FROM后子查询功能大幅增强。不限制子查询嵌套层数;支持子查询和UNION ALL混合使用;移除其他一些之前版本的语法限制。
    • WHERE后可以使用任意的标量表达式。
    • GROUP BY功能增强。支持任意标量表达式及其组合的分组。
    • SESSION可以用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    • STATE_WINDOW可以用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    • ORDER BY功能大幅增强。不再必须和GROUP BY子句一起使用;不再有排序表达式个数的限制;增加支持NULLS FIRST/LAST语法功能;支持符合语法语义的任意表达式。
    • 新增PARTITION BY语法。替代原来的GROUP BY tags。
    33SHOW ACCOUNTS废除2.x中为企业版功能,3.0不再支持。语法暂时保留了,执行报“This statement is no longer supported”错误。
    34SHOW APPS新增显示接入集群的应用(客户端)信息。
    35SHOW CONSUMERS新增显示当前数据库下所有活跃的消费者的信息。
    36SHOW DATABASES调整3.0版本只显示数据库名。
    37SHOW FUNCTIONS调整3.0版本只显示自定义函数名。
    38SHOW LICENCE新增和SHOW GRANTS 命令等效。
    39SHOW INDEXES新增显示已创建的索引。
    40SHOW LOCAL VARIABLES新增显示当前客户端配置参数的运行值。
    41SHOW MODULES废除显示当前系统中所安装的组件的信息。
    42SHOW QNODES新增显示当前系统中QNODE的信息。
    43SHOW STABLES调整3.0版本只显示超级表名。
    44SHOW STREAMS调整2.x版本此命令显示系统中已创建的连续查询的信息。3.0版本废除了连续查询,用流代替。此命令显示已创建的流。
    45SHOW SUBSCRIPTIONS新增显示当前数据库下的所有的订阅关系
    46SHOW TABLES调整3.0版本只显示表名。
    47SHOW TABLE DISTRIBUTED新增显示表的数据分布信息。代替2.x版本中的SELECT _block_dist() FROM { tb_name
    48SHOW TOPICS新增显示当前数据库下的所有订阅主题。
    49SHOW TRANSACTIONS新增显示当前系统中正在执行的事务的信息。
    50SHOW DNODE VARIABLES新增显示指定DNODE的配置参数。
    51SHOW VNODES暂不支持显示当前系统中VNODE的信息。3.0.0版本暂不支持。
    52TRIM DATABASE新增删除过期数据,并根据多级存储的配置归整数据。
    53REDISTRIBUTE VGROUP新增调整VGROUP中VNODE的分布。
    54BALANCE VGROUP新增自动调整VGROUP中VNODE的分布。

    SQL 函数变更

    #函数
    差异性
    说明
    1TWA增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    2IRATE增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    3LEASTSQUARES增强可以用于超级表了。
    4ELAPSED增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    5DIFF增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    6DERIVATIVE增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    7CSUM增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    8MAVG增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    9SAMPLE增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    10STATECOUNT增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    11STATEDURATION增强可以直接用于超级表了。没有PARTITION BY时,超级表的数据会被合并成一条时间线。
    12TIMETRUNCATE增强增加ignore_timezone参数,可选是否使用,默认值为1.

    SCHEMALESS 变更

    #元素
    差异性
    说明
    1主键ts 变更为 ts变更schemaless自动建的列名用 开头,不同于2.x。