跳到主要内容

语法变更

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 时,超级表的数据会被合并成一条时间线。
11GEOMETRY新增几何类型。

SQL 语句变更

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

#语句
差异性
说明
1ALTER ACCOUNT废除2.x 中为企业版功能,3.0 不再支持。语法暂时保留,执行报 “This statement is no longer supported” 错误。
2ALTER ALL DNODES新增修改所有 DNODE 的参数。
3ALTER DATABASE调整

废除

  • QUORUM:写入需要的副本确认数。3.0 版本默认行为是强一致性,且不支持修改为弱一致性。
  • 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 参数。
  • WAL_RETENTION_PERIOD:v3.0.4.0 新增,WAL 文件的额外保留策略,用于数据订阅。
  • WAL_RETENTION_SIZE:v3.0.4.0 新增,WAL 文件的额外保留策略,用于数据订阅。

调整

  • 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 的数据。
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 文件的额外保留策略,用于数据订阅。

调整

  • 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 可以用于超级表。之前版本,超级表的数据会被合并成一条时间线。
    • STATE_WINDOW 可以用于超级表。之前版本,超级表的数据会被合并成一条时间线。
    • 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 的信息。
    52TRIM DATABASE新增删除过期数据,并根据多级存储的配置归整数据。
    53REDISTRIBUTE VGROUP新增调整 VGROUP 中 VNODE 的分布。
    54BALANCE VGROUP新增自动调整 VGROUP中 VNODE 的分布。

    SQL 函数变更

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

    SCHEMALESS 变更

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