From edc96c740ca82a9d584d8e5b8391218c49aa963a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 11:56:17 +0800 Subject: [PATCH 01/18] Create sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 253 +++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 docs/zh/openmldb_sql/sql_difference.md diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md new file mode 100644 index 00000000000..d4fb33827e9 --- /dev/null +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -0,0 +1,253 @@ +# OpenMLDB SQL 与标准 SQL 的主要差异 + +本文将 OpenMLDB SQL 的主要使用方式(SELECT 查询语句)与标准 SQL (以 MySQL 支持的语法为例)进行比较,让有 SQL 使用经验的开发者快速上手 OpenMLDB SQL。 + +面向 OpenMLDB 版本:>= v0.7.1 + +## 支持总览 + +下表根据 SELECT 语句元素对 OpenMLDB SQL 在三种执行模式下(关于执行模式参考 [使用流程和执行模式](../quickstart/concepts/modes.md))与标准 SQL 整体性的差异做了汇总。OpenMLDB SQL 目前部分兼容标准 SQL,但考虑实际业务场景需求新增了部分语法,下表加粗部分为新增语法。 + +注:✓ 表示**支持**该语句,✕ 表示**不支持**。 + +| | **OpenMLDB SQL** | **标准 SQL** | **备注** | | | +| -------------- | ---------------- | ---------------- | -------- | ---- | ------------------------------------------------------------ | +| **离线模式** | **在线预览模式** | **在线请求模式** | | | | +| WHERE 子句 | ✓ | ✓ | ✕ | ✓ | | +| HAVING 子句 | ✓ | ✓ | X | ✓ | | +| JOIN 子句 | ✓ | ✕ | ✓ | ✓ | OpenMLDB 仅支持特有的 **LAST JOIN** | +| GROUP BY 分组 | ✓ | ✕ | ✕ | ✓ | | +| ORDER BY 排序 | ✕ | ✕ | ✕ | ✓ | | +| LIMIT 限制行数 | ✓ | ✓ | ✕ | ✓ | | +| WINDOW 子句 | ✓ | ✓ | ✓ | ✓ | OpenMLDB 增加了特有的 **WINDOW ... UNION** 和 **WINDOW ATTRIBUTES** 语法 | +| WITH 子句 | ✕ | ✕ | ✕ | ✓ | OpenMLDB 将会在版本 v0.8.0开始支持 | +| 聚合函数 | ✓ | ✓ | ✓ | ✓ | OpenMLDB 有较多扩展函数,见[详细说明](./functions_and_operators/Files/udfs_8h.md) | + +## 差异详解 + +### 差异维度 + +与标准 SQL 比较,OpenMLDB SQL 的差异性主要会从三个维度进行说明: + +1. 执行模式:在三种不同执行模式下(离线模式,在线预览模式,在线请求模式),不同的 SQL 的支持程度不一样,需要分开考察。普遍的,为了最终可以让 SQL 实现实时计算,**最终需要上线的业务 SQL 需要符合在线请求模式的要求**。 +2. 子句组合:不同子句的组合会带来额外的限制,下文描述形式 A 应用于 B,表示 A 子句在 B 子句的结果上运行。比如 LIMIT 应用于 WHERE,则其 SQL 类似为:`SELECT`` * FROM`` ``(SELECT ``* FROM t1 ``WHERE`` id >= 2``)`` ``LIMIT`` 2` 。 + 1. 下文中的“表引用”是指`FROM TableRef`,不是 subquery 也不是带有 join/union的复杂FROM子句。 +3. 特殊限制:不归于以上两类的特殊限制,会进行单独说明,一般是由于功能支持不完善或者程序已知问题所引起。 + +### 扫描限制的配置 + +为了避免用户误操作而影响到在线性能,OpenMLDB 有相关参数来限制在离线模式和在线预览模式下的全表扫描次数。如果打开了这些参数的限制,将会导致部分涉及到多个记录扫描的操作(比如 SELECT *, 聚合操作等)可能出现结果截断,而最终产生错误结果。注意,这些参数不会影响到在线请求模式的结果正确性。 + +相关参数会在 tablet 配置文件 conf/tablet.flags 里进行配置,详见文档[配置文件](../deploy/conf.md#tablet配置文件-conftabletflags) 。影响到扫描限制的参数为: + +- 最大扫描条数 `--max_traverse_cnt` +- 最大扫描 key 的个数 `--max_traverse_pk_cnt` +- 返回的结果大小限制 `--scan_max_bytes_size` + +预计在 v0.7.3 以及以后版本中,以上参数的默认值都为 0,即不做相关限制。之前的版本需要注意相关参数的设置。 + +### WHERE 子句 + +| **WHERE 应用于** | **离线模式** | **在线预览模式** | **在线请求模式** | +| ------------------ | ------------ | ---------------- | ---------------- | +| 表引用 | ✓ | ✓ | ✕ | +| LAST JOIN | ✓ | ✓ | ✕ | +| 子查询 / WITH 子句 | ✓ | ✓ | ✕ | + +### LIMIT 子句 + +后面跟一个 INT literal, 不支持其它表达式,表示返回数据的最大行数。LIMIT 不支持上线。 + +| **应用于** | **离线模式** | **在线预览模式** | **在线请求模式** | +| ----------------- | ------------ | ---------------- | ---------------- | +| 表引用 | ✓ | ✓ | ✕ | +| WHERE | ✓ | ✓ | ✕ | +| WINDOW | ✓ | ✓ | ✕ | +| LAST JOIN | ✓ | ✓ | ✕ | +| GROUP BY & HAVING | ✕ | ✓ | X | + +### WINDOW 子句 + +WINDOW 子句和 GROUP BY & HAVING 子句不支持同时使用。上线时 WINDOW 的输入表必须是物理表或者对物理表的简单列筛选和 last join 拼接(简单列筛选为 select list 只有列引用或者列的重命名,没有其它表达式),具体支持参照下表,未列出情况均为不支持。 + +| **应用于** | **离线模式** | **在线预览模式** | **在线请求模式** | +| ------------------------------------------------------------ | ------------ | ---------------- | ---------------- | +| 表引用 | ✓ | ✓ | ✓ | +| GROUP BY & HAVING | ✕ | ✕ | ✕ | +| LAST JOIN | ✓ | ✓ | ✓ | +| 子查询,仅以下情况:单表简单列筛选多表 last join双表 last join 后的简单列筛选 | ✓ | ✓ | ✓ | + +特殊限制: + +- 在线请求模式下,WINDOW 的输入是 LAST JOIN 或者子查询内的 LAST JOIN, 注意窗口的定义里 `partition by` & `order by` 的列都必须来自 JOIN 最左边的表。 + +### GROUP BY & HAVING 子句 + +GROUP BY 语句,目前仍为实验性功能,仅支持输入表是一张物理表, 其它情况不支持。GROUP BY 不支持上线。 + +| **应用于** | **离线模式** | **在线预览模式** | **在线请求模式** | +| ---------- | ------------ | ---------------- | ---------------- | +| 表引用 | ✓ | ✓ | ✕ | +| WHERE | ✕ | ✕ | ✕ | +| LAST JOIN | ✕ | ✕ | ✕ | +| 子查询 | ✕ | ✕ | ✕ | + +### JOIN 子句(LAST JOIN) + +OpenMLDB 仅支持 LAST JOIN 一种 JOIN 语法,详细描述参考扩展语法的 LAST JOIN 部分。JOIN 有左右两个输入,在线请求模式下,支持两个输入为物理表,或者特定的子查询,详见表格,未列出情况不支持。 + +| **应用于** | **离线模式** | **在线预览模式** | **在线请求模式** | +| ------------------------------------------------------------ | ------------ | ---------------- | ---------------- | +| 两个表引用 | ✓ | ✕ | ✓ | +| 子查询, 仅包括:左右表均为简单列筛选左右表为 WINDOW 或 LAST JOIN 操作 | ✓ | ✓ | ✓ | + +特殊限制: + +- 关于特定子查询的 LAST JOIN 上线,还有额外要求,详见[上线要求](../openmldb_sql/deployment_manage/ONLINE_REQUEST_REQUIREMENTS.md#在线请求模式下-last-join-的使用规范) 。 +- 在线预览模式下不支持 LAST JOIN, 见 issue: https://github.com/4paradigm/OpenMLDB/issues/2976。 + +### WITH 子句 + +OpenMLDB (>= v0.7.2) 支持非递归的 WITH 子句。WITH 子句等价于其它子句应用于子查询时的语义,WITH 语句的支持情况,可参照其对应子查询写法下,上述表格的说明。 + +特殊限制: + +- 无 + +### 聚合函数 + +聚合函数可应用于全表或窗口。三种模式下均支持窗口聚合查询;全表聚合查询仅在在线预览模式下支持,离线和在线请求模式不支持。 + +特殊限制: + +- OpenMLDB v0.6.0 开始支持在线预览模式的全表聚合,但注意所描述的 [扫描限制配置](https://openmldb.feishu.cn/wiki/wikcnhBl4NsKcAX6BO9NDtKAxDf#doxcnLWICKzccMuPiWwdpVjSaIe)。 +- OpenMLDB 有自己的聚合函数列表,请查看产品文档具体查询所支持的函数 [OpenMLDB 内置函数](../openmldb_sql/functions_and_operators/Files/udfs_8h.md)。 + +## 扩展语法 + +OpenMLDB 主要对 WINDOW 以及 LAST JOIN 语句进行了深度定制化开发,本节将对这两个语法进行详细说明。 + +### WINDOW 子句 + +在 OpenMLDB 里使用到的一个典型的 WINDOW 语句一般会包含以下元素: + +- 数据定义:通过 `PARTITION BY` 定义窗口内数据 +- 数据排序:通过 `ORDER BY` 定义窗口内数据排序 +- 范围定义:通过 `PRECEDING`, `CURRENT ROW`, `UNBOUNDED` 定义时间延展方向 +- 范围单位:通过 `ROWS`, `ROWS_RANGE` 定义窗口滑动范围的单位 +- 窗口属性:OpenMLDB 特有的窗口属性定义,包括 `MAXSIZE`, `EXECLUDE CURRENT_ROW`, `EXCLUDE CURRENT_TIME`, `INSTANCE_NOT_IN_WINDOW` +- 多表定义:通过扩展语法 `WINDOW ... UNION` 定义是否需要进行跨表数据源拼接 + +关于 WINDOW 详细语法,请参考 [WINDOW 文档](../openmldb_sql/dql/WINDOW_CLAUSE.md)。 + +| **语句元素** | **支持语法** | **说明** | **必需 ?** | +| ---------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ----------- | +| 数据定义 | PARTITION BY | 可支持多列支持的列数据类型: bool, int16, int32, int64, string, date, timestamp | ✓ | +| 数据排序 | ORDER BY | 仅支持对单一列排序可支持数据类型: int16, int32, int64, timestamp不支持倒序 `DESC` | ✓ | +| 范围定义 | 基本上下界定义语法:ROWS/ROWS_RANGE BETWEEN ... AND ...支持范围定义关键字 PRECEDING, OPEN PRECEDING, CURRENT ROW, UNBOUNDED | 必须给定上下边界不支持边界关键字 FOLLOWING在线请求模式中,CURRENT ROW 为当前的请求行。在表格视角下,当前行将会被虚拟的插入到表格根据 ORDER BY 排序的正确位置上。 | ✓ | +| 范围单位 | ROWSROWS_RANGE(扩展) | ROWS_RANGE 为扩展语法,其定义的窗口边界属性等价于标准 SQL 的 RANGE 类型窗口,支持用数值或者带时间单位的数值定义窗口边界,后者为拓展语法。带时间单位定义的窗口范围,等价于时间转化成毫秒数值后的窗口定义。例如 `ROWS_RANGE 10s PRCEDING ...` 和 `ROWS_RANGE 10000 PRECEDNG ...` 是等价的。 | ✓ | +| 窗口属性(扩展) | MAXSIZE EXCLUDE CURRENT_ROWEXCLUDE CURRENT_TIMEINSTANCE_NOT_IN_WINDOW | MAXSIZE 只对 ROWS_RANGE 有效 | - | +| 多表定义(扩展) | 实际使用中语法形态较为复杂,参考:[跨表特征开发教程](../tutorial/tutorial_sql_2.md)[WINDOW UNION 语法文档](../openmldb_sql/dql/WINDOW_CLAUSE.md#1-window--union) | 允许合并多个表允许联合简单子查询实践中,一般和聚合函数搭配使用,实现跨表的聚合操作 | - | +| 匿名窗口 | - | 必须包括 PARTITION BY、ORDER BY、以及窗口范围定义 | - | + +#### 特殊限制 + +- 在线预览模式或者离线模式下,WINDOW 的输入是 LIMIT 或者 WHERE 子句,得到的计算结果可能不正确, 不建议使用。 + +#### 窗口定义举例 + +定义 ROWS 类型窗口,窗口范围是前 1000 行到当前行: + +```SQL +SELECT + sum(col2) OVER w1 as w1_col2_sum +FROM + t1WINDOW w1 AS ( + PARTITION BY col1 + ORDER BY + col5 ROWS BETWEEN 1000 PRECEDING + AND CURRENT ROW + ); +``` + +定义 ROWS_RANGE 类型窗口,窗口范围是当前行前 10 秒的所有行,以及当前行: + +```SQL +SELECT + sum(col2) OVER w1 as w1_col2_sum +FROM + t1WINDOW w1 AS ( + PARTITION BY col1 + ORDER BY + col5 ROWS_RANGE BETWEEN 10s PRECEDING + AND CURRENT ROW + ); +``` + +定义一个 ROWS 类型窗口,窗口范围是前1000行到当前行。 除了当前行以外窗口内不包含当前时刻的其他数据: + +```SQL +SELECT + sum(col2) OVER w1 as w1_col2_sum +FROM + t1 WINDOW w1 AS ( + PARTITION BY col1 + ORDER BY + col5 ROWS BETWEEN 1000 PRECEDING + AND CURRENT ROW EXCLUDE CURRENT_TIME + ); +``` + +定义一个 ROWS_RANGE 类型窗口,窗口范围为当前时间到过去 10 秒,但是不包含当前请求行: + +```SQL +SELECT + sum(col2) OVER w1 as w1_col2_sum +FROM + t1 WINDOW w1 AS ( + PARTITION BY col1 + ORDER BY + col5 ROWS_RANGE BETWEEN 10s PRECEDING + AND CURRENT ROW EXCLUDE CURRENT_ROW + ); +``` + +匿名窗口: + +```SQL +SELECT + id, + pk1, + col1, + std_ts, + sum(col1) OVER ( + PARTITION BY pk1 + ORDER BY + std_ts ROWS BETWEEN 1 PRECEDING + AND CURRENT ROW + ) as w1_col1_sumfrom t1; +``` + +#### WINDOW ... UNION 举例 + +在实际开发中,较多的应用的数据是存放在多个表格中,在这种情况下,一般会使用 WINDOW ... UNION 的语法进行跨表的聚合操作。请参考 [跨表特征开发教程](../tutorial/tutorial_sql_2.md) + +### LAST JOIN 子句 + +关于 LAST JOIN 详细语法规范,请参考 [LAST JOIN 文档](../openmldb_sql/dql/JOIN_CLAUSE.md#join-clause)。 + +| **语句元素** | **支持语法** | **说明** | **必需?** | +| ------------ | ------------ | ------------------------------------------------------------ | ---------- | +| ON | ✓ | 列类型支持:BOOL, INT16, INT32, INT64, STRING, DATE, TIMESTAMP | ✓ | +| USING | 不支持 | - | - | +| ORDER BY | ✓ | 后面只能接单列列类型 : INT16, INT32, INT64, TIMESTAMP不支持倒序关键字 DESC | - | + +#### LAST JOIN 举例 + +```SQL +SELECT + * +FROM + t1 +LAST JOIN t2 ON t1.col1 = t2.col1; +``` \ No newline at end of file From f3eeb497139408c65959504a2fcec65cd0fa38e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 11:57:25 +0800 Subject: [PATCH 02/18] Update conf.py --- docs/zh/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/conf.py b/docs/zh/conf.py index d1c6aa699c1..afcaba0b4e4 100644 --- a/docs/zh/conf.py +++ b/docs/zh/conf.py @@ -140,7 +140,7 @@ # Whitelist pattern for branches (set to None to ignore all branches) # include branch that is main or v{X}.{Y} -smv_branch_whitelist = r"^(main|v\d+\.\d+)$" +smv_branch_whitelist = r"^(main|sql-difference)$" # allow remote origin or upstream smv_remote_whitelist = r"^(origin|upstream)$" From 8be00cc6d1b5011708993b7ca6dedc9386787cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 11:58:36 +0800 Subject: [PATCH 03/18] Update index.rst --- docs/zh/openmldb_sql/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/zh/openmldb_sql/index.rst b/docs/zh/openmldb_sql/index.rst index 1e5d832d67b..d220593e2dc 100644 --- a/docs/zh/openmldb_sql/index.rst +++ b/docs/zh/openmldb_sql/index.rst @@ -6,6 +6,7 @@ OpenMLDB SQL .. toctree:: :maxdepth: 1 + sql-difference language_structure/index data_types/index functions_and_operators/index From f4454ef02e9f86a8cf5c53779c027a6bcce8d075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 12:02:06 +0800 Subject: [PATCH 04/18] Update index.rst --- docs/zh/openmldb_sql/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/openmldb_sql/index.rst b/docs/zh/openmldb_sql/index.rst index d220593e2dc..46cb0c6b420 100644 --- a/docs/zh/openmldb_sql/index.rst +++ b/docs/zh/openmldb_sql/index.rst @@ -6,7 +6,7 @@ OpenMLDB SQL .. toctree:: :maxdepth: 1 - sql-difference + sql_difference language_structure/index data_types/index functions_and_operators/index From 46c9bee638453e2dd56f9953a10223c8ce6df8d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 12:18:36 +0800 Subject: [PATCH 05/18] image --- docs/zh/openmldb_sql/image/difference.png | Bin 0 -> 204632 bytes docs/zh/openmldb_sql/sql_difference.md | 22 ++++++++-------------- 2 files changed, 8 insertions(+), 14 deletions(-) create mode 100644 docs/zh/openmldb_sql/image/difference.png diff --git a/docs/zh/openmldb_sql/image/difference.png b/docs/zh/openmldb_sql/image/difference.png new file mode 100644 index 0000000000000000000000000000000000000000..482f8e3e89517f1fdbb34e6e9d5b70442f8424bc GIT binary patch literal 204632 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

IC<2>ASbIgVh1wuv8P&gGN>sLhkUW@ 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

Eoo{Hq9p;2lq;X1lRMzR>pEPW`Ye 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 Y#wka>eHObJ>A?U5p00i_>zopr08JinLjV8( literal 0 HcmV?d00001 diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index d4fb33827e9..753591477b4 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -6,22 +6,16 @@ ## 支持总览 -下表根据 SELECT 语句元素对 OpenMLDB SQL 在三种执行模式下(关于执行模式参考 [使用流程和执行模式](../quickstart/concepts/modes.md))与标准 SQL 整体性的差异做了汇总。OpenMLDB SQL 目前部分兼容标准 SQL,但考虑实际业务场景需求新增了部分语法,下表加粗部分为新增语法。 +下表根据 SELECT 语句元素对 OpenMLDB SQL 在三种执行模式下(关于执行模式参考[使用流程和执行模式](../quickstart/concepts/modes.md))与标准 SQL 整体性的差异做了汇总。OpenMLDB SQL 目前部分兼容标准 SQL,但考虑实际业务场景需求新增了部分语法,下表加粗部分为新增语法。 注:✓ 表示**支持**该语句,✕ 表示**不支持**。 -| | **OpenMLDB SQL** | **标准 SQL** | **备注** | | | -| -------------- | ---------------- | ---------------- | -------- | ---- | ------------------------------------------------------------ | -| **离线模式** | **在线预览模式** | **在线请求模式** | | | | -| WHERE 子句 | ✓ | ✓ | ✕ | ✓ | | -| HAVING 子句 | ✓ | ✓ | X | ✓ | | -| JOIN 子句 | ✓ | ✕ | ✓ | ✓ | OpenMLDB 仅支持特有的 **LAST JOIN** | -| GROUP BY 分组 | ✓ | ✕ | ✕ | ✓ | | -| ORDER BY 排序 | ✕ | ✕ | ✕ | ✓ | | -| LIMIT 限制行数 | ✓ | ✓ | ✕ | ✓ | | -| WINDOW 子句 | ✓ | ✓ | ✓ | ✓ | OpenMLDB 增加了特有的 **WINDOW ... UNION** 和 **WINDOW ATTRIBUTES** 语法 | -| WITH 子句 | ✕ | ✕ | ✕ | ✓ | OpenMLDB 将会在版本 v0.8.0开始支持 | -| 聚合函数 | ✓ | ✓ | ✓ | ✓ | OpenMLDB 有较多扩展函数,见[详细说明](./functions_and_operators/Files/udfs_8h.md) | +```{image} image/difference.png +:alt: difference +:class: bg-primary +:width: 700px +:align: center +``` ## 差异详解 @@ -30,7 +24,7 @@ 与标准 SQL 比较,OpenMLDB SQL 的差异性主要会从三个维度进行说明: 1. 执行模式:在三种不同执行模式下(离线模式,在线预览模式,在线请求模式),不同的 SQL 的支持程度不一样,需要分开考察。普遍的,为了最终可以让 SQL 实现实时计算,**最终需要上线的业务 SQL 需要符合在线请求模式的要求**。 -2. 子句组合:不同子句的组合会带来额外的限制,下文描述形式 A 应用于 B,表示 A 子句在 B 子句的结果上运行。比如 LIMIT 应用于 WHERE,则其 SQL 类似为:`SELECT`` * FROM`` ``(SELECT ``* FROM t1 ``WHERE`` id >= 2``)`` ``LIMIT`` 2` 。 +2. 子句组合:不同子句的组合会带来额外的限制,下文描述形式 A 应用于 B,表示 A 子句在 B 子句的结果上运行。比如 LIMIT 应用于 WHERE,则其 SQL 类似为:`SELECT * FROM (SELECT * FROM t1 WHERE id >= 2) LIMIT 2`。 1. 下文中的“表引用”是指`FROM TableRef`,不是 subquery 也不是带有 join/union的复杂FROM子句。 3. 特殊限制:不归于以上两类的特殊限制,会进行单独说明,一般是由于功能支持不完善或者程序已知问题所引起。 From 5fcff0706a6a9792a391316b310bc2f72c65c95d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 12:50:06 +0800 Subject: [PATCH 06/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 31 +++++++++++++------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 753591477b4..06ec40aff0e 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -1,4 +1,4 @@ -# OpenMLDB SQL 与标准 SQL 的主要差异 +# 与标准 SQL 的主要差异 本文将 OpenMLDB SQL 的主要使用方式(SELECT 查询语句)与标准 SQL (以 MySQL 支持的语法为例)进行比较,让有 SQL 使用经验的开发者快速上手 OpenMLDB SQL。 @@ -13,7 +13,7 @@ ```{image} image/difference.png :alt: difference :class: bg-primary -:width: 700px +:width: 800px :align: center ``` @@ -24,8 +24,7 @@ 与标准 SQL 比较,OpenMLDB SQL 的差异性主要会从三个维度进行说明: 1. 执行模式:在三种不同执行模式下(离线模式,在线预览模式,在线请求模式),不同的 SQL 的支持程度不一样,需要分开考察。普遍的,为了最终可以让 SQL 实现实时计算,**最终需要上线的业务 SQL 需要符合在线请求模式的要求**。 -2. 子句组合:不同子句的组合会带来额外的限制,下文描述形式 A 应用于 B,表示 A 子句在 B 子句的结果上运行。比如 LIMIT 应用于 WHERE,则其 SQL 类似为:`SELECT * FROM (SELECT * FROM t1 WHERE id >= 2) LIMIT 2`。 - 1. 下文中的“表引用”是指`FROM TableRef`,不是 subquery 也不是带有 join/union的复杂FROM子句。 +2. 子句组合:不同子句的组合会带来额外的限制,下文描述形式 A 应用于 B,表示 A 子句在 B 子句的结果上运行。比如 LIMIT 应用于 WHERE,则其 SQL 类似为:`SELECT * FROM (SELECT * FROM t1 WHERE id >= 2) LIMIT 2`。下文中的“表引用”是指 `FROM TableRef`,不是 subquery 也不是带有 JOIN/UNION 的复杂 FROM 子句。 3. 特殊限制:不归于以上两类的特殊限制,会进行单独说明,一般是由于功能支持不完善或者程序已知问题所引起。 ### 扫描限制的配置 @@ -69,7 +68,7 @@ WINDOW 子句和 GROUP BY & HAVING 子句不支持同时使用。上线时 WINDO | 表引用 | ✓ | ✓ | ✓ | | GROUP BY & HAVING | ✕ | ✕ | ✕ | | LAST JOIN | ✓ | ✓ | ✓ | -| 子查询,仅以下情况:单表简单列筛选多表 last join双表 last join 后的简单列筛选 | ✓ | ✓ | ✓ | +| 子查询,仅以下情况:1. 单表简单列筛选
2.多表 last join
3.双表 last join 后的简单列筛选 | ✓ | ✓ | ✓ | 特殊限制: @@ -93,12 +92,12 @@ OpenMLDB 仅支持 LAST JOIN 一种 JOIN 语法,详细描述参考扩展语法 | **应用于** | **离线模式** | **在线预览模式** | **在线请求模式** | | ------------------------------------------------------------ | ------------ | ---------------- | ---------------- | | 两个表引用 | ✓ | ✕ | ✓ | -| 子查询, 仅包括:左右表均为简单列筛选左右表为 WINDOW 或 LAST JOIN 操作 | ✓ | ✓ | ✓ | +| 子查询, 仅包括:
左右表均为简单列筛选
左右表为 WINDOW 或 LAST JOIN 操作 | ✓ | ✓ | ✓ | 特殊限制: - 关于特定子查询的 LAST JOIN 上线,还有额外要求,详见[上线要求](../openmldb_sql/deployment_manage/ONLINE_REQUEST_REQUIREMENTS.md#在线请求模式下-last-join-的使用规范) 。 -- 在线预览模式下不支持 LAST JOIN, 见 issue: https://github.com/4paradigm/OpenMLDB/issues/2976。 +- 在线预览模式下不支持 LAST JOIN, 见 issue: https://github.com/4paradigm/OpenMLDB/issues/2976 ### WITH 子句 @@ -114,8 +113,8 @@ OpenMLDB (>= v0.7.2) 支持非递归的 WITH 子句。WITH 子句等价于其它 特殊限制: -- OpenMLDB v0.6.0 开始支持在线预览模式的全表聚合,但注意所描述的 [扫描限制配置](https://openmldb.feishu.cn/wiki/wikcnhBl4NsKcAX6BO9NDtKAxDf#doxcnLWICKzccMuPiWwdpVjSaIe)。 -- OpenMLDB 有自己的聚合函数列表,请查看产品文档具体查询所支持的函数 [OpenMLDB 内置函数](../openmldb_sql/functions_and_operators/Files/udfs_8h.md)。 +- OpenMLDB v0.6.0 开始支持在线预览模式的全表聚合,但注意所描述的[扫描限制配置](https://openmldb.feishu.cn/wiki/wikcnhBl4NsKcAX6BO9NDtKAxDf#doxcnLWICKzccMuPiWwdpVjSaIe)。 +- OpenMLDB 有自己的聚合函数列表,请查看产品文档具体查询所支持的函数[OpenMLDB 内置函数](../openmldb_sql/functions_and_operators/Files/udfs_8h.md)。 ## 扩展语法 @@ -134,15 +133,15 @@ OpenMLDB 主要对 WINDOW 以及 LAST JOIN 语句进行了深度定制化开发 关于 WINDOW 详细语法,请参考 [WINDOW 文档](../openmldb_sql/dql/WINDOW_CLAUSE.md)。 -| **语句元素** | **支持语法** | **说明** | **必需 ?** | +

| 语句元素 | 支持语法 | 说明 | 必需 ? | | ---------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ----------- | | 数据定义 | PARTITION BY | 可支持多列支持的列数据类型: bool, int16, int32, int64, string, date, timestamp | ✓ | -| 数据排序 | ORDER BY | 仅支持对单一列排序可支持数据类型: int16, int32, int64, timestamp不支持倒序 `DESC` | ✓ | -| 范围定义 | 基本上下界定义语法:ROWS/ROWS_RANGE BETWEEN ... AND ...支持范围定义关键字 PRECEDING, OPEN PRECEDING, CURRENT ROW, UNBOUNDED | 必须给定上下边界不支持边界关键字 FOLLOWING在线请求模式中,CURRENT ROW 为当前的请求行。在表格视角下,当前行将会被虚拟的插入到表格根据 ORDER BY 排序的正确位置上。 | ✓ | -| 范围单位 | ROWSROWS_RANGE(扩展) | ROWS_RANGE 为扩展语法,其定义的窗口边界属性等价于标准 SQL 的 RANGE 类型窗口,支持用数值或者带时间单位的数值定义窗口边界,后者为拓展语法。带时间单位定义的窗口范围,等价于时间转化成毫秒数值后的窗口定义。例如 `ROWS_RANGE 10s PRCEDING ...` 和 `ROWS_RANGE 10000 PRECEDNG ...` 是等价的。 | ✓ | -| 窗口属性(扩展) | MAXSIZE EXCLUDE CURRENT_ROWEXCLUDE CURRENT_TIMEINSTANCE_NOT_IN_WINDOW | MAXSIZE 只对 ROWS_RANGE 有效 | - | -| 多表定义(扩展) | 实际使用中语法形态较为复杂,参考:[跨表特征开发教程](../tutorial/tutorial_sql_2.md)[WINDOW UNION 语法文档](../openmldb_sql/dql/WINDOW_CLAUSE.md#1-window--union) | 允许合并多个表允许联合简单子查询实践中,一般和聚合函数搭配使用,实现跨表的聚合操作 | - | -| 匿名窗口 | - | 必须包括 PARTITION BY、ORDER BY、以及窗口范围定义 | - | +| 数据排序 | ORDER BY | 仅支持对单一列排序可支持数据类型: int16, int32, int64, timestamp不支持倒序 DESC | ✓ | +| 范围定义 | 基本上下界定义语法:ROWS/ROWSRANGE BETWEEN ... AND ...支持范围定义关键字 PRECEDING, OPEN PRECEDING, CURRENT ROW, UNBOUNDED | 必须给定上下边界不支持边界关键字 FOLLOWING在线请求模式中,CURRENT ROW 为当前的请求行。在表格视角下,当前行将会被虚拟的插入到表格根据 ORDER BY 排序的正确位置上。 | ✓ | +| 范围单位 | ROWSROWSRANGE(扩展) | ROWSRANGE 为扩展语法,其定义的窗口边界属性等价于标准 SQL 的 RANGE 类型窗口,支持用数值或者带时间单位的数值定义窗口边界,后者为拓展语法。带时间单位定义的窗口范围,等价于时间转化成毫秒数值后的窗口定义。例如 ROWS_RANGE 10s PRCEDING ...ROWS_RANGE 10000 PRECEDNG ... 是等价的。 | ✓ | +| 窗口属性(扩展) | MAXSIZE EXCLUDE CURRENTROWEXCLUDE CURRENTTIMEINSTANCENOTINWINDOW | MAXSIZE 只对 ROWS_RANGE 有效 | - | +| 多表定义(扩展) | 实际使用中语法形态较为复杂,参考:跨表特征开发教程WINDOW UNION 语法的产品文档 | 允许合并多个表允许联合简单子查询实践中,一般和聚合函数搭配使用,实现跨表的聚合操作 | - | +| 匿名窗口 | - | 必须包括 PARTITION BY、ORDER BY、以及窗口范围定义 | - |

#### 特殊限制 From 85835aa20ba520bd745afaa6fc7abeec7a844883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 12:59:15 +0800 Subject: [PATCH 07/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 06ec40aff0e..213dfa1f251 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -133,15 +133,15 @@ OpenMLDB 主要对 WINDOW 以及 LAST JOIN 语句进行了深度定制化开发 关于 WINDOW 详细语法,请参考 [WINDOW 文档](../openmldb_sql/dql/WINDOW_CLAUSE.md)。 -

| 语句元素 | 支持语法 | 说明 | 必需 ? | +| **语句元素** | **支持语法** | **说明** | **必需 ?** | | ---------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ----------- | -| 数据定义 | PARTITION BY | 可支持多列支持的列数据类型: bool, int16, int32, int64, string, date, timestamp | ✓ | -| 数据排序 | ORDER BY | 仅支持对单一列排序可支持数据类型: int16, int32, int64, timestamp不支持倒序 DESC | ✓ | -| 范围定义 | 基本上下界定义语法:ROWS/ROWSRANGE BETWEEN ... AND ...支持范围定义关键字 PRECEDING, OPEN PRECEDING, CURRENT ROW, UNBOUNDED | 必须给定上下边界不支持边界关键字 FOLLOWING在线请求模式中,CURRENT ROW 为当前的请求行。在表格视角下,当前行将会被虚拟的插入到表格根据 ORDER BY 排序的正确位置上。 | ✓ | -| 范围单位 | ROWSROWSRANGE(扩展) | ROWSRANGE 为扩展语法,其定义的窗口边界属性等价于标准 SQL 的 RANGE 类型窗口,支持用数值或者带时间单位的数值定义窗口边界,后者为拓展语法。带时间单位定义的窗口范围,等价于时间转化成毫秒数值后的窗口定义。例如 ROWS_RANGE 10s PRCEDING ...ROWS_RANGE 10000 PRECEDNG ... 是等价的。 | ✓ | -| 窗口属性(扩展) | MAXSIZE EXCLUDE CURRENTROWEXCLUDE CURRENTTIMEINSTANCENOTINWINDOW | MAXSIZE 只对 ROWS_RANGE 有效 | - | -| 多表定义(扩展) | 实际使用中语法形态较为复杂,参考:跨表特征开发教程WINDOW UNION 语法的产品文档 | 允许合并多个表允许联合简单子查询实践中,一般和聚合函数搭配使用,实现跨表的聚合操作 | - | -| 匿名窗口 | - | 必须包括 PARTITION BY、ORDER BY、以及窗口范围定义 | - |

+| 数据定义 | PARTITION BY | 可支持多列
支持的列数据类型: bool, int16, int32, int64, string, date, timestamp | ✓ | +| 数据排序 | ORDER BY | 仅支持对单一列排序
可支持数据类型: int16, int32, int64, timestamp
不支持倒序 `DESC` | ✓ | +| 范围定义 |
基本上下界定义语法:ROWS/ROWS_RANGE BETWEEN ... AND ...
支持范围定义关键字 PRECEDING, OPEN PRECEDING, CURRENT ROW, UNBOUNDED | 必须给定上下边界
不支持边界关键字 FOLLOWING
在线请求模式中,CURRENT ROW 为当前的请求行。在表格视角下,当前行将会被虚拟的插入到表格根据 ORDER BY 排序的正确位置上。 | ✓ | +| 范围单位 | ROWS
ROWSROWS_RANGE(扩展) | ROWS_RANGE 为扩展语法,其定义的窗口边界属性等价于标准 SQL 的 RANGE 类型窗口,支持用数值或者带时间单位的数值定义窗口边界,后者为拓展语法。
带时间单位定义的窗口范围,等价于时间转化成毫秒数值后的窗口定义。例如 `ROWS_RANGE 10s PRCEDING ...` 和 `ROWS_RANGE 10000 PRECEDNG ...` 是等价的。 | ✓ | +| 窗口属性(扩展) | MAXSIZE
EXCLUDE CURRENT_ROW
EXCLUDE CURRENT_TIME
INSTANCE_NOT_IN_WINDOW | MAXSIZE 只对 ROWS_RANGE 有效 | - | +| 多表定义(扩展) | 实际使用中语法形态较为复杂,参考:
[跨表特征开发教程](../tutorial/tutorial_sql_2.md)
[WINDOW UNION 语法文档](../openmldb_sql/dql/WINDOW_CLAUSE.md#1-window--union) | 允许合并多个表
允许联合简单子查询
实践中,一般和聚合函数搭配使用,实现跨表的聚合操作 | - | +| 匿名窗口 | - | 必须包括 PARTITION BY、ORDER BY、以及窗口范围定义 | - | #### 特殊限制 From 6d75dd7595865eb862e1726c878fda2572e5733a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 13:07:01 +0800 Subject: [PATCH 08/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 213dfa1f251..23f5fba6c0c 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -61,18 +61,18 @@ ### WINDOW 子句 -WINDOW 子句和 GROUP BY & HAVING 子句不支持同时使用。上线时 WINDOW 的输入表必须是物理表或者对物理表的简单列筛选和 last join 拼接(简单列筛选为 select list 只有列引用或者列的重命名,没有其它表达式),具体支持参照下表,未列出情况均为不支持。 +WINDOW 子句和 GROUP BY & HAVING 子句不支持同时使用。上线时 WINDOW 的输入表必须是物理表或者对物理表的简单列筛选和 LAST JOIN 拼接(简单列筛选为 select list 只有列引用或者列的重命名,没有其它表达式),具体支持参照下表,未列出情况均为不支持。 | **应用于** | **离线模式** | **在线预览模式** | **在线请求模式** | | ------------------------------------------------------------ | ------------ | ---------------- | ---------------- | | 表引用 | ✓ | ✓ | ✓ | | GROUP BY & HAVING | ✕ | ✕ | ✕ | | LAST JOIN | ✓ | ✓ | ✓ | -| 子查询,仅以下情况:1. 单表简单列筛选
2.多表 last join
3.双表 last join 后的简单列筛选 | ✓ | ✓ | ✓ | +| 子查询,仅以下情况:
1. 单表简单列筛选
2.多表 LAST JOIN
3.双表 LAST JOIN 后的简单列筛选 | ✓ | ✓ | ✓ | 特殊限制: -- 在线请求模式下,WINDOW 的输入是 LAST JOIN 或者子查询内的 LAST JOIN, 注意窗口的定义里 `partition by` & `order by` 的列都必须来自 JOIN 最左边的表。 +- 在线请求模式下,WINDOW 的输入是 LAST JOIN 或者子查询内的 LAST JOIN, 注意窗口的定义里 `PARTITION BY` & `ORDER BY` 的列都必须来自 JOIN 最左边的表。 ### GROUP BY & HAVING 子句 @@ -138,7 +138,7 @@ OpenMLDB 主要对 WINDOW 以及 LAST JOIN 语句进行了深度定制化开发 | 数据定义 | PARTITION BY | 可支持多列
支持的列数据类型: bool, int16, int32, int64, string, date, timestamp | ✓ | | 数据排序 | ORDER BY | 仅支持对单一列排序
可支持数据类型: int16, int32, int64, timestamp
不支持倒序 `DESC` | ✓ | | 范围定义 |
基本上下界定义语法:ROWS/ROWS_RANGE BETWEEN ... AND ...
支持范围定义关键字 PRECEDING, OPEN PRECEDING, CURRENT ROW, UNBOUNDED | 必须给定上下边界
不支持边界关键字 FOLLOWING
在线请求模式中,CURRENT ROW 为当前的请求行。在表格视角下,当前行将会被虚拟的插入到表格根据 ORDER BY 排序的正确位置上。 | ✓ | -| 范围单位 | ROWS
ROWSROWS_RANGE(扩展) | ROWS_RANGE 为扩展语法,其定义的窗口边界属性等价于标准 SQL 的 RANGE 类型窗口,支持用数值或者带时间单位的数值定义窗口边界,后者为拓展语法。
带时间单位定义的窗口范围,等价于时间转化成毫秒数值后的窗口定义。例如 `ROWS_RANGE 10s PRCEDING ...` 和 `ROWS_RANGE 10000 PRECEDNG ...` 是等价的。 | ✓ | +| 范围单位 | ROWS
ROWS_RANGE(扩展) | ROWS_RANGE 为扩展语法,其定义的窗口边界属性等价于标准 SQL 的 RANGE 类型窗口,支持用数值或者带时间单位的数值定义窗口边界,后者为拓展语法。
带时间单位定义的窗口范围,等价于时间转化成毫秒数值后的窗口定义。例如 `ROWS_RANGE 10s PRCEDING ...` 和 `ROWS_RANGE 10000 PRECEDNG ...` 是等价的。 | ✓ | | 窗口属性(扩展) | MAXSIZE
EXCLUDE CURRENT_ROW
EXCLUDE CURRENT_TIME
INSTANCE_NOT_IN_WINDOW | MAXSIZE 只对 ROWS_RANGE 有效 | - | | 多表定义(扩展) | 实际使用中语法形态较为复杂,参考:
[跨表特征开发教程](../tutorial/tutorial_sql_2.md)
[WINDOW UNION 语法文档](../openmldb_sql/dql/WINDOW_CLAUSE.md#1-window--union) | 允许合并多个表
允许联合简单子查询
实践中,一般和聚合函数搭配使用,实现跨表的聚合操作 | - | | 匿名窗口 | - | 必须包括 PARTITION BY、ORDER BY、以及窗口范围定义 | - | From de1dee052dd2527a95e91ed0be6e8f1eb38fb1d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 13:11:28 +0800 Subject: [PATCH 09/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 23f5fba6c0c..5979e759e2c 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -41,7 +41,7 @@ ### WHERE 子句 -| **WHERE 应用于** | **离线模式** | **在线预览模式** | **在线请求模式** | +| **应用于** | **离线模式** | **在线预览模式** | **在线请求模式** | | ------------------ | ------------ | ---------------- | ---------------- | | 表引用 | ✓ | ✓ | ✕ | | LAST JOIN | ✓ | ✓ | ✕ | @@ -114,7 +114,7 @@ OpenMLDB (>= v0.7.2) 支持非递归的 WITH 子句。WITH 子句等价于其它 特殊限制: - OpenMLDB v0.6.0 开始支持在线预览模式的全表聚合,但注意所描述的[扫描限制配置](https://openmldb.feishu.cn/wiki/wikcnhBl4NsKcAX6BO9NDtKAxDf#doxcnLWICKzccMuPiWwdpVjSaIe)。 -- OpenMLDB 有自己的聚合函数列表,请查看产品文档具体查询所支持的函数[OpenMLDB 内置函数](../openmldb_sql/functions_and_operators/Files/udfs_8h.md)。 +- OpenMLDB 有自己的聚合函数列表,请查看产品文档具体查询所支持的函数 [OpenMLDB 内置函数](../openmldb_sql/functions_and_operators/Files/udfs_8h.md)。 ## 扩展语法 @@ -223,7 +223,7 @@ SELECT #### WINDOW ... UNION 举例 -在实际开发中,较多的应用的数据是存放在多个表格中,在这种情况下,一般会使用 WINDOW ... UNION 的语法进行跨表的聚合操作。请参考 [跨表特征开发教程](../tutorial/tutorial_sql_2.md) +在实际开发中,较多的应用的数据是存放在多个表格中,在这种情况下,一般会使用 WINDOW ... UNION 的语法进行跨表的聚合操作。请参考[跨表特征开发教程](../tutorial/tutorial_sql_2.md)。 ### LAST JOIN 子句 @@ -233,7 +233,7 @@ SELECT | ------------ | ------------ | ------------------------------------------------------------ | ---------- | | ON | ✓ | 列类型支持:BOOL, INT16, INT32, INT64, STRING, DATE, TIMESTAMP | ✓ | | USING | 不支持 | - | - | -| ORDER BY | ✓ | 后面只能接单列列类型 : INT16, INT32, INT64, TIMESTAMP不支持倒序关键字 DESC | - | +| ORDER BY | ✓ | 后面只能接单列列类型 : INT16, INT32, INT64, TIMESTAMP
不支持倒序关键字 DESC | - | #### LAST JOIN 举例 From 3f1d4af29d4531ad318647b0caf1ec8d1fcb55cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Wed, 1 Mar 2023 13:11:38 +0800 Subject: [PATCH 10/18] Update conf.py --- docs/zh/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/conf.py b/docs/zh/conf.py index afcaba0b4e4..d1c6aa699c1 100644 --- a/docs/zh/conf.py +++ b/docs/zh/conf.py @@ -140,7 +140,7 @@ # Whitelist pattern for branches (set to None to ignore all branches) # include branch that is main or v{X}.{Y} -smv_branch_whitelist = r"^(main|sql-difference)$" +smv_branch_whitelist = r"^(main|v\d+\.\d+)$" # allow remote origin or upstream smv_remote_whitelist = r"^(origin|upstream)$" From f0181df2ace1f3b332d1a565cb0e950c6f8d2786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Thu, 2 Mar 2023 11:27:14 +0800 Subject: [PATCH 11/18] ll --- docs/zh/conf.py | 2 +- docs/zh/openmldb_sql/sql_difference.md | 19 +++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/docs/zh/conf.py b/docs/zh/conf.py index d1c6aa699c1..afcaba0b4e4 100644 --- a/docs/zh/conf.py +++ b/docs/zh/conf.py @@ -140,7 +140,7 @@ # Whitelist pattern for branches (set to None to ignore all branches) # include branch that is main or v{X}.{Y} -smv_branch_whitelist = r"^(main|v\d+\.\d+)$" +smv_branch_whitelist = r"^(main|sql-difference)$" # allow remote origin or upstream smv_remote_whitelist = r"^(origin|upstream)$" diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 5979e759e2c..55b7862b254 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -10,12 +10,19 @@ 注:✓ 表示**支持**该语句,✕ 表示**不支持**。 -```{image} image/difference.png -:alt: difference -:class: bg-primary -:width: 800px -:align: center -``` +| | **OpenMLDB SQL****离线模式** | **OpenMLDB SQL****在线预览模式** | **OpenMLDB SQL****在线请求模式** | **标准 SQL** | **备注** | +| -------------- | ---------------------------- | -------------------------------- | -------------------------------- | ------------ | ------------------------------------------------------------ | +| WHERE 子句 | ✓ | ✓ | ✕ | ✓ | | +| HAVING 子句 | ✓ | ✓ | X | ✓ | | +| JOIN 子句 | ✓ | ✕ | ✓ | ✓ | OpenMLDB 仅支持特有的 **LAST JOIN** | +| GROUP BY 分组 | ✓ | ✕ | ✕ | ✓ | | +| ORDER BY 排序 | ✕ | ✕ | ✕ | ✓ | | +| LIMIT 限制行数 | ✓ | ✓ | ✕ | ✓ | | +| WINDOW 子句 | ✓ | ✓ | ✓ | ✓ | OpenMLDB 增加了特有的 **WINDOW ... UNION** 和 **WINDOW ATTRIBUTES** 语法 | +| WITH 子句 | ✕ | ✕ | ✕ | ✓ | OpenMLDB 将会在版本 v0.8.0开始支持 | +| 聚合函数 | ✓ | ✓ | ✓ | ✓ | OpenMLDB 有较多扩展函数 | + + ## 差异详解 From 2ff43f80c557e713a37604fac4fcfc19b36452b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Thu, 2 Mar 2023 11:41:01 +0800 Subject: [PATCH 12/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 55b7862b254..9d8f3d0abab 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -10,7 +10,7 @@ 注:✓ 表示**支持**该语句,✕ 表示**不支持**。 -| | **OpenMLDB SQL****离线模式** | **OpenMLDB SQL****在线预览模式** | **OpenMLDB SQL****在线请求模式** | **标准 SQL** | **备注** | +| | **OpenMLDB SQL**
**离线模式** | **OpenMLDB SQL**
**在线预览模式** | **OpenMLDB SQL**
**在线请求模式** | **标准 SQL** | **备注** | | -------------- | ---------------------------- | -------------------------------- | -------------------------------- | ------------ | ------------------------------------------------------------ | | WHERE 子句 | ✓ | ✓ | ✕ | ✓ | | | HAVING 子句 | ✓ | ✓ | X | ✓ | | From ec46329ab28ecffd187e5a45b78219c76eceac99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=99=AF=E6=AC=A3?= Date: Thu, 2 Mar 2023 11:42:18 +0800 Subject: [PATCH 13/18] Update conf.py --- docs/zh/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/conf.py b/docs/zh/conf.py index afcaba0b4e4..d1c6aa699c1 100644 --- a/docs/zh/conf.py +++ b/docs/zh/conf.py @@ -140,7 +140,7 @@ # Whitelist pattern for branches (set to None to ignore all branches) # include branch that is main or v{X}.{Y} -smv_branch_whitelist = r"^(main|sql-difference)$" +smv_branch_whitelist = r"^(main|v\d+\.\d+)$" # allow remote origin or upstream smv_remote_whitelist = r"^(origin|upstream)$" From 8dfe7d91aee0094eb7665b548ebaf80677580e62 Mon Sep 17 00:00:00 2001 From: LU MIAN Date: Fri, 3 Mar 2023 10:09:01 +0800 Subject: [PATCH 14/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 9d8f3d0abab..163b34fc67d 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -19,7 +19,7 @@ | ORDER BY 排序 | ✕ | ✕ | ✕ | ✓ | | | LIMIT 限制行数 | ✓ | ✓ | ✕ | ✓ | | | WINDOW 子句 | ✓ | ✓ | ✓ | ✓ | OpenMLDB 增加了特有的 **WINDOW ... UNION** 和 **WINDOW ATTRIBUTES** 语法 | -| WITH 子句 | ✕ | ✕ | ✕ | ✓ | OpenMLDB 将会在版本 v0.8.0开始支持 | +| WITH 子句 | ✕ | ✕ | ✕ | ✓ | OpenMLDB 从版本 v0.7.2 开始支持 | | 聚合函数 | ✓ | ✓ | ✓ | ✓ | OpenMLDB 有较多扩展函数 | @@ -250,4 +250,4 @@ SELECT FROM t1 LAST JOIN t2 ON t1.col1 = t2.col1; -``` \ No newline at end of file +``` From 31d0dfd3fe6874ef5eb84cf5ac7ea06a3557e546 Mon Sep 17 00:00:00 2001 From: LU MIAN Date: Fri, 3 Mar 2023 10:10:02 +0800 Subject: [PATCH 15/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 163b34fc67d..9446cdc7098 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -2,7 +2,7 @@ 本文将 OpenMLDB SQL 的主要使用方式(SELECT 查询语句)与标准 SQL (以 MySQL 支持的语法为例)进行比较,让有 SQL 使用经验的开发者快速上手 OpenMLDB SQL。 -面向 OpenMLDB 版本:>= v0.7.1 +以下如无特殊说明,默认均为 OpenMLDB 版本:>= v0.7.1 ## 支持总览 From d86ca227b9ceaa3d1f4518f78d9291c8f87ced4a Mon Sep 17 00:00:00 2001 From: LU MIAN Date: Fri, 3 Mar 2023 10:14:24 +0800 Subject: [PATCH 16/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 9446cdc7098..255f94df7cd 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -104,7 +104,7 @@ OpenMLDB 仅支持 LAST JOIN 一种 JOIN 语法,详细描述参考扩展语法 特殊限制: - 关于特定子查询的 LAST JOIN 上线,还有额外要求,详见[上线要求](../openmldb_sql/deployment_manage/ONLINE_REQUEST_REQUIREMENTS.md#在线请求模式下-last-join-的使用规范) 。 -- 在线预览模式下不支持 LAST JOIN, 见 issue: https://github.com/4paradigm/OpenMLDB/issues/2976 +- 在线预览模式下暂不支持 LAST JOIN ### WITH 子句 @@ -121,11 +121,11 @@ OpenMLDB (>= v0.7.2) 支持非递归的 WITH 子句。WITH 子句等价于其它 特殊限制: - OpenMLDB v0.6.0 开始支持在线预览模式的全表聚合,但注意所描述的[扫描限制配置](https://openmldb.feishu.cn/wiki/wikcnhBl4NsKcAX6BO9NDtKAxDf#doxcnLWICKzccMuPiWwdpVjSaIe)。 -- OpenMLDB 有自己的聚合函数列表,请查看产品文档具体查询所支持的函数 [OpenMLDB 内置函数](../openmldb_sql/functions_and_operators/Files/udfs_8h.md)。 +- OpenMLDB 有较多的聚合函数扩展,请查看产品文档具体查询所支持的函数 [OpenMLDB 内置函数](../openmldb_sql/functions_and_operators/Files/udfs_8h.md)。 ## 扩展语法 -OpenMLDB 主要对 WINDOW 以及 LAST JOIN 语句进行了深度定制化开发,本节将对这两个语法进行详细说明。 +OpenMLDB 主要对 `WINDOW` 以及 `LAST JOIN` 语句进行了深度定制化开发,本节将对这两个语法进行详细说明。 ### WINDOW 子句 @@ -152,11 +152,11 @@ OpenMLDB 主要对 WINDOW 以及 LAST JOIN 语句进行了深度定制化开发 #### 特殊限制 -- 在线预览模式或者离线模式下,WINDOW 的输入是 LIMIT 或者 WHERE 子句,得到的计算结果可能不正确, 不建议使用。 +- 在线预览模式或者离线模式下,WINDOW 的输入是 LIMIT 或者 WHERE 子句时,得到的计算结果可能不正确, 不建议使用。 #### 窗口定义举例 -定义 ROWS 类型窗口,窗口范围是前 1000 行到当前行: +定义 `ROWS` 类型窗口,窗口范围是前 1000 行到当前行: ```SQL SELECT @@ -170,7 +170,7 @@ FROM ); ``` -定义 ROWS_RANGE 类型窗口,窗口范围是当前行前 10 秒的所有行,以及当前行: +定义 `ROWS_RANGE` 类型窗口,窗口范围是当前行前 10 秒的所有行,以及当前行: ```SQL SELECT @@ -184,7 +184,7 @@ FROM ); ``` -定义一个 ROWS 类型窗口,窗口范围是前1000行到当前行。 除了当前行以外窗口内不包含当前时刻的其他数据: +定义一个 `ROWS` 类型窗口,窗口范围是前1000行到当前行。 除了当前行以外窗口内不包含当前时刻的其他数据: ```SQL SELECT @@ -198,7 +198,7 @@ FROM ); ``` -定义一个 ROWS_RANGE 类型窗口,窗口范围为当前时间到过去 10 秒,但是不包含当前请求行: +定义一个 `ROWS_RANGE` 类型窗口,窗口范围为当前时间到过去 10 秒,但是不包含当前请求行: ```SQL SELECT From f67b46473da2e80a7f3d7fce33bb08e4e6839a49 Mon Sep 17 00:00:00 2001 From: LU MIAN Date: Fri, 3 Mar 2023 10:18:07 +0800 Subject: [PATCH 17/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 255f94df7cd..42f42fe8386 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -230,7 +230,7 @@ SELECT #### WINDOW ... UNION 举例 -在实际开发中,较多的应用的数据是存放在多个表格中,在这种情况下,一般会使用 WINDOW ... UNION 的语法进行跨表的聚合操作。请参考[跨表特征开发教程](../tutorial/tutorial_sql_2.md)。 +在实际开发中,较多的应用的数据是存放在多个表格中,在这种情况下,一般会使用 WINDOW ... UNION 的语法进行跨表的聚合操作。请参考[跨表特征开发教程](../tutorial/tutorial_sql_2.md)关于“ 副表多行聚合特征”部分。 ### LAST JOIN 子句 From 6b4a812d674967e70d974a5aea73588dbcd0e5c4 Mon Sep 17 00:00:00 2001 From: LU MIAN Date: Fri, 3 Mar 2023 10:26:59 +0800 Subject: [PATCH 18/18] Update sql_difference.md --- docs/zh/openmldb_sql/sql_difference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/openmldb_sql/sql_difference.md b/docs/zh/openmldb_sql/sql_difference.md index 42f42fe8386..8692ad2a5e6 100644 --- a/docs/zh/openmldb_sql/sql_difference.md +++ b/docs/zh/openmldb_sql/sql_difference.md @@ -152,7 +152,7 @@ OpenMLDB 主要对 `WINDOW` 以及 `LAST JOIN` 语句进行了深度定制化开 #### 特殊限制 -- 在线预览模式或者离线模式下,WINDOW 的输入是 LIMIT 或者 WHERE 子句时,得到的计算结果可能不正确, 不建议使用。 +- 在线预览模式或者离线模式下,WINDOW 的输入是 LIMIT 或者 WHERE 子句时,在某些情况下目前有已知问题, 不建议使用。 #### 窗口定义举例