语法变更
SQL 基本元素变更
| # | 元素 | 差异性 | 说明 |
|---|---|---|---|
| 1 | VARCHAR | 新增 | BINARY 类型的别名。 |
| 2 | TIMESTAMP 字面量 | 新增 | 新增支持 TIMESTAMP 'timestamp format' 语法。 |
| 3 | _ROWTS 伪列 | 新增 | 表示时间戳主键。是 _C0 伪列的别名。 |
| 4 | _IROWTS 伪列 | 新增 | 用于返回 INTERP 函数插值结果对应的时间戳列。 |
| 5 | INFORMATION_SCHEMA | 新增 | 包含各种 SCHEMA 定义的系统数据库。 |
| 6 | PERFORMANCE_SCHEMA | 新增 | 包含运行信息的系统数据库。 |
| 7 | 连续查询 | 废除 | 不再支持连续查询。相关的各种语法和接口废除。 |
| 8 | 混合运算 | 增强 | 查询中的混合运算(标量运算和矢量运算混合)全面增强,SELECT 的各个子句均全面支持符合语法语义的混合运算。 |
| 9 | 标签运算 | 新增 | 在查询中,标签列可以像普通列一样参与各种运算,用于各种子句。 |
| 10 | 时间线子句和时间函数用于超级表查询 | 增强 | 没有 PARTITION BY 时,超级表的数据会被合并成一条时间线。 |
| 11 | GEOMETRY | 新增 | 几何类型。 |
SQL 语句变更
以下列出相对 2.x 有变更的 SQL 语句(新增、废除、调整或暂不支持)。
| # | 语句 | 差异性 | 说明 |
|---|---|---|---|
| 1 | ALTER ACCOUNT | 废除 | 2.x 中为企业版功能,3.0 不再支持。语法暂时保留,执行报 This statement is no longer supported 错误。 |
| 2 | ALTER ALL DNODES | 新增 | 修改所有 dnode 的参数。 |
| 3 | ALTER 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 版本新增支持带单位的设置方式。 |
| 4 | ALTER STABLE | 调整 | 废除 - CHANGE TAG:修改标签列的名称。3.0 版本使用 RENAME TAG 代替。新增 - RENAME TAG:代替原 CHANGE TAG 子句。- COMMENT:修改超级表的注释。 |
| 5 | ALTER TABLE | 调整 | 废除 - CHANGE TAG:修改标签列的名称。3.0 版本使用 RENAME TAG 代替。新增 - RENAME TAG:代替原 CHANGE TAG 子句。- COMMENT:修改表的注释。- TTL:修改表的生命周期。 |
| 6 | ALTER USER | 调整 | 废除 - PRIVILEGE:修改用户权限。3.0 版本使用 GRANT 和 REVOKE 来授予和回收权限。新增 - ENABLE:启用或停用此用户。- SYSINFO:修改用户是否可查看系统信息。 |
| 7 | COMPACT VNODES | 暂不支持 | 整理指定 vnode 的数据。 |
| 8 | CREATE ACCOUNT | 废除 | 2.x 中为企业版功能,3.0 不再支持。语法暂时保留,执行报 This statement is no longer supported 错误。 |
| 9 | CREATE 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 版本新增支持带单位的设置方式。 |
| 10 | CREATE DNODE | 调整 | 新增主机名和端口号分开指定语法:CREATE DNODE dnode_host_name PORT port_val。 |
| 11 | CREATE INDEX | 新增 | 创建 SMA 索引。 |
| 12 | CREATE MNODE | 新增 | 创建管理节点。 |
| 13 | CREATE QNODE | 新增 | 创建查询节点。 |
| 14 | CREATE STABLE | 调整 | 新增表参数语法:COMMENT(表注释)。 |
| 15 | CREATE STREAM | 新增 | 创建流。 |
| 16 | CREATE TABLE | 调整 | 新增表参数语法: - COMMENT:表注释。- WATERMARK:指定窗口的关闭时间。- MAX_DELAY:用于控制推送计算结果的最大延迟。- ROLLUP:指定的聚合函数,提供基于多层级的降采样聚合结果。- SMA:提供基于数据块的自定义预计算功能。- TTL:用来指定表的生命周期的参数。 |
| 17 | CREATE TOPIC | 新增 | 创建订阅主题。 |
| 18 | DROP ACCOUNT | 废除 | 2.x 中为企业版功能,3.0 不再支持。语法暂时保留,执行报 This statement is no longer supported 错误。 |
| 19 | DROP CONSUMER GROUP | 新增 | 删除消费组。 |
| 20 | DROP INDEX | 新增 | 删除索引。 |
| 21 | DROP MNODE | 新增 | 删除管理节点。 |
| 22 | DROP QNODE | 新增 | 删除查询节点。 |
| 23 | DROP STREAM | 新增 | 删除流。 |
| 24 | DROP TABLE | 调整 | 新增批量删除语法。 |
| 25 | DROP TOPIC | 新增 | 删除订阅主题。 |
| 26 | EXPLAIN | 新增 | 查看查询语句的执行计划。 |
| 27 | GRANT | 新增 | 授予用户权限。 |
| 28 | KILL TRANSACTION | 新增 | 终止管理节点的事务。 |
| 29 | KILL STREAM | 废除 | 终止连续查询。3.0 版本不再支持连续查询,而是用更通用的流式计算来代替。 |
| 30 | REVOKE | 新增 | 回收用户权限。 |
| 31 | SELECT | 调整 | - 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。 |
| 32 | SHOW ACCOUNTS | 废除 | 2.x 中为企业版功能,3.0 不再支持。语法暂时保留,执行报 This statement is no longer supported 错误。 |
| 33 | SHOW APPS | 新增 | 显示接入集群的应用(客户端)信息。 |
| 34 | SHOW CONSUMERS | 新增 | 显示当前数据库下所有活跃的消费者的信息。 |
| 35 | SHOW DATABASES | 调整 | 3.0 版本只显示数据库名。 |
| 36 | SHOW FUNCTIONS | 调整 | 3.0 版本只显示自定义函数名。 |
| 37 | SHOW LICENCE | 新增 | 和 SHOW GRANTS 命令等效。 |
| 38 | SHOW INDEXES | 新增 | 显示已创建的索引。 |
| 39 | SHOW LOCAL VARIABLES | 新增 | 显示当前客户端配置参数的运行值。 |
| 40 | SHOW MODULES | 废除 | 显示当前系统中所安装的组件的信息。 |
| 41 | SHOW QNODES | 新增 | 显示当前系统中 qnode 的信息。 |
| 42 | SHOW STABLES | 调整 | 3.0 版本只显示超级表名。 |
| 43 | SHOW STREAMS | 调整 | 2.x 版本此命令显示系统中已创建的连续查询的信息。3.0 版本废除了连续查询,用流代替。此命令显示已创建的流。 |
| 44 | SHOW SUBSCRIPTIONS | 新增 | 显示当前数据库下的所有的订阅关系。 |
| 45 | SHOW TABLES | 调整 | 3.0 版本只显示表名。 |
| 46 | SHOW TABLE DISTRIBUTED | 新增 | 显示表的数据分布信息。代替 2.x 版本中的 SELECT _block_dist() FROM tb_name 方式。 |
| 47 | SHOW TOPICS | 新增 | 显示当前数据库下的所有订阅主题。 |
| 48 | SHOW TRANSACTIONS | 新增 | 显示当前系统中正在执行的事务的信息。 |
| 49 | SHOW DNODE VARIABLES | 新增 | 显示指定 dnode 的配置参数。 |
| 50 | SHOW VNODES | 暂不支持 | 显示当前系统中 vnode 的信息。 |
| 51 | TRIM DATABASE | 新增 | 删除过期数据,并根据多级存储的配置归整数据。 |
| 52 | REDISTRIBUTE VGROUP | 新增 | 调整 vgroup 中 vnode 的分布。 |
| 53 | BALANCE VGROUP | 新增 | 自动调整 vgroup 中 vnode 的分布。 |
SQL 函数变更
| # | 函数 | 差异性 | 说明 |
|---|---|---|---|
| 1 | TWA | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 2 | IRATE | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 3 | LEASTSQUARES | 增强 | 可以用于超级表。 |
| 4 | ELAPSED | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 5 | DIFF | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 6 | DERIVATIVE | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 7 | CSUM | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 8 | MAVG | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 9 | SAMPLE | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 10 | STATECOUNT | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 11 | STATEDURATION | 增强 | 可以直接用于超级表。之前版本,超级表的数据会被合并成一条时间线。 |
| 12 | TIMETRUNCATE | 增强 | 增加 ignore_timezone 参数,可选是否使用,默认值为 1。 |
SCHEMALESS 变更
| # | 元素 | 差异性 | 说明 |
|---|---|---|---|
| 1 | 主键 ts 变更为 _ts | 变更 | Schemaless 自动创建的列名以 _ 开头,不同于 2.x。 |








