Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4abedc2f
TDengine
项目概览
taosdata
/
TDengine
接近 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
4abedc2f
编写于
4月 12, 2022
作者:
W
wade zhang
提交者:
GitHub
4月 12, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #11384 from taosdata/docs/TD-14651
docs: refine a series of documents
上级
214cbcfb
ed66ea1a
变更
8
展开全部
隐藏空白更改
内联
并排
Showing
8 changed file
with
393 addition
and
321 deletion
+393
-321
docs-cn/01-intro/01-intro.md
docs-cn/01-intro/01-intro.md
+1
-1
docs-cn/05-model/index.mdx
docs-cn/05-model/index.mdx
+4
-4
docs-cn/14-reference/01-taos-sql/01-data-type.md
docs-cn/14-reference/01-taos-sql/01-data-type.md
+8
-8
docs-cn/14-reference/01-taos-sql/04-stable.md
docs-cn/14-reference/01-taos-sql/04-stable.md
+4
-1
docs-cn/14-reference/01-taos-sql/06-select.md
docs-cn/14-reference/01-taos-sql/06-select.md
+49
-42
docs-cn/14-reference/01-taos-sql/07-function.md
docs-cn/14-reference/01-taos-sql/07-function.md
+285
-264
docs-cn/14-reference/01-taos-sql/index.md
docs-cn/14-reference/01-taos-sql/index.md
+1
-1
docs-cn/14-reference/12-directory.md
docs-cn/14-reference/12-directory.md
+41
-0
未找到文件。
docs-cn/01-intro/01-intro.md
浏览文件 @
4abedc2f
...
...
@@ -32,7 +32,7 @@ TDengine 是一款高性能、分布式、支持 SQL 的时序数据库。而且
## TDengine 总体适用场景
作为一个
IoT 大数据平台,TDengine 的典型适用场景是在 IoT 范畴,而且用户有一定的数据量。本文后续的介绍主要针对这个范畴里面的系统。范畴之外的系统,比如 CRM,ERP 等,不在本文讨论范围内
。
作为一个
高性能、分布式、支持 SQL 的时序数据库,TDengine 的典型适用场景包括但不限于 IoT 和 DevOps,尤其是在大数据量的情况下。本文后续的介绍主要针对这些应用场景
。
### 数据源特点和需求
...
...
docs-cn/05-model/index.mdx
浏览文件 @
4abedc2f
...
...
@@ -9,7 +9,7 @@ TDengine 采用关系型数据模型,需要建库、建表。因此对于一
## 创建库
不同类型的数据采集点往往具有不同的数据特征,包括数据采集频率的高低,数据保留时间的长短,副本的数目,数据块的大小,是否允许更新数据等等。为了在各种场景下 TDengine 都能最大效率的工作,TDengine 建议将不同数据特征的表创建在不同的库里,因为每个库可以配置不同的存储策略。创建一个库时,除 SQL 标准的选项外,
应用
还可以指定保留时长、副本数、内存块个数、时间精度、文件块里最大最小记录条数、是否压缩、一个数据文件覆盖的天数等多种参数。比如:
不同类型的数据采集点往往具有不同的数据特征,包括数据采集频率的高低,数据保留时间的长短,副本的数目,数据块的大小,是否允许更新数据等等。为了在各种场景下 TDengine 都能最大效率的工作,TDengine 建议将不同数据特征的表创建在不同的库里,因为每个库可以配置不同的存储策略。创建一个库时,除 SQL 标准的选项外,还可以指定保留时长、副本数、内存块个数、时间精度、文件块里最大最小记录条数、是否压缩、一个数据文件覆盖的天数等多种参数。比如:
```sql
CREATE DATABASE power KEEP 365 DAYS 10 BLOCKS 6 UPDATE 1;
...
...
@@ -27,7 +27,7 @@ USE power;
:::note
- 任何一张表或超级表
是属于一个库的
,在创建表之前,必须先创建库。
- 任何一张表或超级表
必须属于某个库
,在创建表之前,必须先创建库。
- 处于两个不同库的表是不能进行 JOIN 操作的。
- 创建并插入记录、查询历史记录的时候,均需要指定时间戳。
...
...
@@ -45,9 +45,9 @@ CREATE STABLE meters (ts timestamp, current float, voltage int, phase float) TAG
这一指令中的 STABLE 关键字,在 2.0.15 之前的版本中需写作 TABLE 。
:::
与创建普通表一样,创建表时,需要提供表名(示例中为 meters),表结构 Schema,即数据列的定义。第一列必须为时间戳(示例中为 ts),其他列为采集的物理量(示例中为 current, voltage, phase),数据类型可以为整型、浮点型、字符串等。除此之外,还需要提供标签的 schema (示例中为 location, groupId),标签的数据类型可以为整型、浮点型、字符串等。采集点的静态属性往往可以作为标签,比如采集点的地理位置、设备型号、设备组 ID、管理员 ID 等等。标签的 schema 可以事后增加、删除、修改。具体定义以及细节请见 [TAOS SQL 的超级表管理](/reference/taos-sql/stable) 章节。
与创建普通表一样,创建
超级
表时,需要提供表名(示例中为 meters),表结构 Schema,即数据列的定义。第一列必须为时间戳(示例中为 ts),其他列为采集的物理量(示例中为 current, voltage, phase),数据类型可以为整型、浮点型、字符串等。除此之外,还需要提供标签的 schema (示例中为 location, groupId),标签的数据类型可以为整型、浮点型、字符串等。采集点的静态属性往往可以作为标签,比如采集点的地理位置、设备型号、设备组 ID、管理员 ID 等等。标签的 schema 可以事后增加、删除、修改。具体定义以及细节请见 [TAOS SQL 的超级表管理](/reference/taos-sql/stable) 章节。
每一种类型的数据采集点需要建立一个超级表,因此一个物联网系统,往往会有多个超级表。对于电网,我们就需要对智能电表、变压器、母线、开关等都建立一个超级表。在物联网中,一个设备就可能有多个数据采集点(比如一台风力发电的风机,有的采集点采集电流、电压等电参数,有的采集点采集温度、湿度、风向等环境参数),这个时候,对这一类型的设备,需要建立多张超级表。
一张超级表里包含的采集物理量必须是同时采集的(时间戳是一致的)。
每一种类型的数据采集点需要建立一个超级表,因此一个物联网系统,往往会有多个超级表。对于电网,我们就需要对智能电表、变压器、母线、开关等都建立一个超级表。在物联网中,一个设备就可能有多个数据采集点(比如一台风力发电的风机,有的采集点采集电流、电压等电参数,有的采集点采集温度、湿度、风向等环境参数),这个时候,对这一类型的设备,需要建立多张超级表。
一张超级表最多容许 1024 列,如果一个采集点采集的物理量个数超过 1024,需要建多张超级表来处理。一个系统可以有多个 DB,一个 DB 里可以有一到多个超级表。(从 2.1.7.0 版本开始,列数限制由 1024 列放宽到了 4096 列。)
...
...
docs-cn/14-reference/01-taos-sql/01-data-type.md
浏览文件 @
4abedc2f
...
...
@@ -8,10 +8,10 @@ title: 支持的数据类型
-
时间格式为
`YYYY-MM-DD HH:mm:ss.MS`
,默认时间分辨率为毫秒。比如:
`2017-08-12 18:25:58.128`
-
内部函数 now 是客户端的当前时间
-
插入记录时,如果时间戳为 now,插入数据时使用提交这条记录的客户端的当前时间
-
Epoch Time:时间戳也可以是一个长整数,表示从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的毫秒数(相应地,如果所在 Database 的时间精度设置为“微秒”,则长整型格式的时间戳含义也就对应于从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的微秒数;纳秒精度
的逻辑也是类似的
。)
-
时间可以加减,比如 now-2h,表明查询时刻向前推 2 个小时(最近 2 小时)。数字后面的时间单位可以是 b(纳秒)、u(微秒)、a(毫秒)、s(秒)、m(分)、h(小时)、d(天)、w(周)。 比如
`select * from t1 where ts > now-2w and ts <= now-1w`
,表示查询两周前整整一周的数据。在指定降采样操作(down sampling)的时间窗口(interval)时,时间单位还可以使用 n
(自然月) 和 y
(自然年)。
-
Epoch Time:时间戳也可以是一个长整数,表示从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的毫秒数(相应地,如果所在 Database 的时间精度设置为“微秒”,则长整型格式的时间戳含义也就对应于从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始的微秒数;纳秒精度
逻辑类似
。)
-
时间可以加减,比如 now-2h,表明查询时刻向前推 2 个小时(最近 2 小时)。数字后面的时间单位可以是 b(纳秒)、u(微秒)、a(毫秒)、s(秒)、m(分)、h(小时)、d(天)、w(周)。 比如
`select * from t1 where ts > now-2w and ts <= now-1w`
,表示查询两周前整整一周的数据。在指定降采样操作(down sampling)的时间窗口(interval)时,时间单位还可以使用 n
(自然月) 和 y
(自然年)。
TDengine 缺省的时间戳
是毫秒精度,但通过在
`CREATE DATABASE`
时传递的 PRECISION 参数就
可以支持微秒和纳秒。(从 2.1.5.0 版本开始支持纳秒精度)
TDengine 缺省的时间戳
精度是毫秒,但通过在
`CREATE DATABASE`
时传递的 PRECISION 参数也
可以支持微秒和纳秒。(从 2.1.5.0 版本开始支持纳秒精度)
```
CREATE DATABASE db_name PRECISION 'ns';
...
...
@@ -23,15 +23,15 @@ CREATE DATABASE db_name PRECISION 'ns';
| --- | :-------: | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | TIMESTAMP | 8 | 时间戳。缺省精度毫秒,可支持微秒和纳秒。从格林威治时间 1970-01-01 00:00:00.000 (UTC/GMT) 开始,计时不能早于该时间。(从 2.0.18.0 版本开始,已经去除了这一时间范围限制)(从 2.1.5.0 版本开始支持纳秒精度) |
| 2 | INT | 4 | 整型,范围 [-2^31+1, 2^31-1], -2^31 用作 NULL |
| 3 | BIGINT | 8 | 长整型,范围 [-2^63+1, 2^63-1], -2^63 用
于
NULL |
| 3 | BIGINT | 8 | 长整型,范围 [-2^63+1, 2^63-1], -2^63 用
作
NULL |
| 4 | FLOAT | 4 | 浮点型,有效位数 6-7,范围 [-3.4E38, 3.4E38] |
| 5 | DOUBLE | 8 | 双精度浮点型,有效位数 15-16,范围 [-1.7E308, 1.7E308] |
| 6 | BINARY | 自定义 | 记录单字节字符串,建议只用于处理 ASCII 可见字符,中文等多字节字符需使用 nchar。理论上,最长可以有 16374 字节。binary 仅支持字符串输入,字符串两端需使用单引号引用。使用时须指定大小,如 binary(20) 定义了最长为 20 个单字节字符的字符串,每个字符占 1 byte 的存储空间,总共固定占用 20 bytes 的空间,此时如果用户字符串超出 20 字节将会报错。对于字符串内的单引号,可以用转义字符反斜线加单引号来表示,即
`\’`
。 |
| 7 | SMALLINT | 2 | 短整型, 范围 [-32767, 32767], -32768 用
于
NULL |
| 8 | TINYINT | 1 | 单字节整型,范围 [-127, 127], -128 用
于
NULL |
| 7 | SMALLINT | 2 | 短整型, 范围 [-32767, 32767], -32768 用
作
NULL |
| 8 | TINYINT | 1 | 单字节整型,范围 [-127, 127], -128 用
作
NULL |
| 9 | BOOL | 1 | 布尔型,{true, false} |
| 10 | NCHAR | 自定义 | 记录包含多字节字符在内的字符串,如中文字符。每个 nchar 字符占用 4 bytes 的存储空间。字符串两端使用单引号引用,字符串内的单引号需用转义字符
`\’`
。nchar 使用时须指定字符串大小,类型为 nchar(10) 的列表示此列的字符串最多存储 10 个 nchar 字符,会固定占用 40 bytes 的空间。如果用户字符串长度超出声明长度,将会报错。 |
| 11 | JSON | | json 数据类型, 只有 tag
类型
可以是 json 格式 |
| 11 | JSON | | json 数据类型, 只有 tag 可以是 json 格式 |
<!-- REPLACE_OPEN_TO_ENTERPRISE__COLUMN_TYPE_ADDONS -->
...
...
@@ -41,7 +41,7 @@ TDengine 对 SQL 语句中的英文字符不区分大小写,自动转化为小
:::
:::note
虽然 B
inary 类型在底层存储上支持字节型的二进制字符,但不同编程语言对二进制数据的处理方式并不保证一致,因此建议在 Binary 类型中只存储 ASCII 可见字符,而避免存储不可见字符。多字节的数据,例如中文字符,则需要使用 nchar 类型进行保存。如果强行使用 Binary
类型保存中文字符,虽然有时也能正常读写,但并不带有字符集信息,很容易出现数据乱码甚至数据损坏等情况。
虽然 B
INARY 类型在底层存储上支持字节型的二进制字符,但不同编程语言对二进制数据的处理方式并不保证一致,因此建议在 BINARY 类型中只存储 ASCII 可见字符,而避免存储不可见字符。多字节的数据,例如中文字符,则需要使用 NCHAR 类型进行保存。如果强行使用 BINARY
类型保存中文字符,虽然有时也能正常读写,但并不带有字符集信息,很容易出现数据乱码甚至数据损坏等情况。
:::
...
...
docs-cn/14-reference/01-taos-sql/04-stable.md
浏览文件 @
4abedc2f
...
...
@@ -3,8 +3,11 @@ sidebar_label: 超级表管理
title
:
超级表 STable 管理
---
:::note
注意:在 2.0.15.0 及以后的版本中,开始支持 STABLE 保留字。也即,在本节后文的指令说明中,CREATE、DROP、ALTER 三个指令在老版本中保留字需写作 TABLE 而不是 STABLE。
在 2.0.15.0 及以后的版本中开始支持 STABLE 保留字。也即,在本节后文的指令说明中,CREATE、DROP、ALTER 三个指令在 2.0.15.0 之前的版本中 STABLE 保留字需写作 TABLE。
:::
## 创建超级表
...
...
docs-cn/14-reference/01-taos-sql/06-select.md
浏览文件 @
4abedc2f
...
...
@@ -221,42 +221,43 @@ Query OK, 1 row(s) in set (0.000081s)
## \_block_dist 函数
用于获得指定的(超级)表的数据块分布信息
**功能说明**
:
用于获得指定的(超级)表的数据块分布信息
```
txt title="语法"
SELECT _block_dist() FROM { tb_name | stb_name }
```
返回结果类型
:字符串。
**返回结果类型**
:字符串。
适用数据类型
:不能输入任何参数。
**适用数据类型**
:不能输入任何参数。
嵌套子查询支持
:不支持子查询或嵌套查询。
**嵌套子查询支持**
:不支持子查询或嵌套查询。
返回 FROM 子句中输入的表或超级表的数据块分布情况。不支持查询条件。
**返回结果**
:
返回的结果是该表或超级表的数据块所包含的行数的数据分布直方图。
-
返回 FROM 子句中输入的表或超级表的数据块分布情况。不支持查询条件。
-
返回的结果是该表或超级表的数据块所包含的行数的数据分布直方图。
```
txt title="返回结果"
summary:
5th=[392], 10th=[392], 20th=[392], 30th=[392], 40th=[792], 50th=[792] 60th=[792], 70th=[792], 80th=[792], 90th=[792], 95th=[792], 99th=[792] Min=[392(Rows)] Max=[800(Rows)] Avg=[666(Rows)] Stddev=[2.17] Rows=[2000], Blocks=[3], Size=[5.440(Kb)] Comp=[0.23] RowsInMem=[0] SeekHeaderTime=[1(us)]
```
上述信息的说明如下:
**上述信息的说明如下**
:
1.
查询的(超级)表所包含的存储在文件中的数据块(data block)中所包含的数据行的数量分布直方图信息:5%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 95%, 99% 的数值;
2.
所有数据块中,包含行数最少的数据块所包含的行数量, 其中的 Min 指标 392 行。
3.
所有数据块中,包含行数最多的数据块所包含的行数量, 其中的 Max 指标 800 行。
4.
所有数据块行数的算数平均值 666 行(其中的 Avg 项)。
5.
所有数据块中行数分布的均方差为 2.17 ( stddev )。
6.
数据块包含的行的总数为 2000 行(Rows)。
7.
数据块总数是 3 个数据块 (Blocks)。
8.
数据块占用磁盘空间大小 5.44 Kb (size)。
9.
压缩后的数据块的大小除以原始数据的所获得的压缩比例: 23%(Comp),及压缩后的数据规模是原始数据规模的 23%。
10.
内存中存在的数据行数是 0,表示内存中没有数据缓存。
11.
获取数据块信息的过程中读取头文件的时间开销 1 微秒(SeekHeaderTime)。
-
查询的(超级)表所包含的存储在文件中的数据块(data block)中所包含的数据行的数量分布直方图信息:5%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 95%, 99% 的数值;
-
所有数据块中,包含行数最少的数据块所包含的行数量, 其中的 Min 指标 392 行。
-
所有数据块中,包含行数最多的数据块所包含的行数量, 其中的 Max 指标 800 行。
-
所有数据块行数的算数平均值 666 行(其中的 Avg 项)。
-
所有数据块中行数分布的均方差为 2.17 ( stddev )。
-
数据块包含的行的总数为 2000 行(Rows)。
-
数据块总数是 3 个数据块 (Blocks)。
-
数据块占用磁盘空间大小 5.44 Kb (size)。
-
压缩后的数据块的大小除以原始数据的所获得的压缩比例: 23%(Comp),及压缩后的数据规模是原始数据规模的 23%。
-
内存中存在的数据行数是 0,表示内存中没有数据缓存。
-
获取数据块信息的过程中读取头文件的时间开销 1 微秒(SeekHeaderTime)。
支持版本
:指定计算算法的功能从 2.1.0.x 版本开始,2.1.0.0 之前的版本不支持指定使用算法的功能。
**支持版本**
:指定计算算法的功能从 2.1.0.x 版本开始,2.1.0.0 之前的版本不支持指定使用算法的功能。
## TAOS SQL 中特殊关键词
...
...
@@ -322,18 +323,20 @@ Query OK, 1 row(s) in set (0.001091s)
| like | match a wildcard string |
**`binary`**
**`nchar`**
|
| match/nmatch | filter regex |
**`binary`**
**`nchar`**
|
1.
<
\>
算子也可以写为 != ,请注意,这个算子不能用于数据表第一列的 timestamp 字段。
2.
like 算子使用通配符字符串进行匹配检查。
**使用说明**
:
-
<
\>
算子也可以写为 != ,请注意,这个算子不能用于数据表第一列的 timestamp 字段。
-
like 算子使用通配符字符串进行匹配检查。
-
在通配符字符串中:'%'(百分号)匹配 0 到任意个字符;'
\_
'(下划线)匹配单个任意 ASCII 字符。
-
如果希望匹配字符串中原本就带有的
\_
(下划线)字符,那么可以在通配符字符串中写作
`\_`
,也即加一个反斜线来进行转义。(从 2.2.0.0 版本开始支持)
-
通配符字符串最长不能超过 20 字节。(从 2.1.6.1 版本开始,通配符字符串的长度放宽到了 100 字节,并可以通过 taos.cfg 中的 maxWildCardsLength 参数来配置这一长度限制。但不建议使用太长的通配符字符串,将有可能严重影响 LIKE 操作的执行性能。)
3.
同时进行多个字段的范围过滤,需要使用关键词 AND 来连接不同的查询条件,暂不支持 OR 连接的不同列之间的查询过滤条件。
-
同时进行多个字段的范围过滤,需要使用关键词 AND 来连接不同的查询条件,暂不支持 OR 连接的不同列之间的查询过滤条件。
-
从 2.3.0.0 版本开始,已支持完整的同一列和/或不同列间的 AND/OR 运算。
4.
针对单一字段的过滤,如果是时间过滤条件,则一条语句中只支持设定一个;但针对其他的(普通)列或标签列,则可以使用
`OR`
关键字进行组合条件的查询过滤。例如:
`((value > 20 AND value < 30) OR (value < 12))`
。
-
针对单一字段的过滤,如果是时间过滤条件,则一条语句中只支持设定一个;但针对其他的(普通)列或标签列,则可以使用
`OR`
关键字进行组合条件的查询过滤。例如:
`((value > 20 AND value < 30) OR (value < 12))`
。
-
从 2.3.0.0 版本开始,允许使用多个时间过滤条件,但首列时间戳的过滤运算结果只能包含一个区间。
5.
从 2.0.17.0 版本开始,条件过滤开始支持 BETWEEN AND 语法,例如
`WHERE col2 BETWEEN 1.5 AND 3.25`
表示查询条件为“1.5 ≤ col2 ≤ 3.25”。
6.
从 2.1.4.0 版本开始,条件过滤开始支持 IN 算子,例如
`WHERE city IN ('Beijing', 'Shanghai')`
。说明:BOOL 类型写作
`{true, false}`
或
`{0, 1}`
均可,但不能写作 0、1 之外的整数;FLOAT 和 DOUBLE 类型会受到浮点数精度影响,集合内的值在精度范围内认为和数据行的值完全相等才能匹配成功;TIMESTAMP 类型支持非主键的列。
7.
从 2.3.0.0 版本开始,条件过滤开始支持正则表达式,关键字 match/nmatch,不区分大小写。
-
从 2.0.17.0 版本开始,条件过滤开始支持 BETWEEN AND 语法,例如
`WHERE col2 BETWEEN 1.5 AND 3.25`
表示查询条件为“1.5 ≤ col2 ≤ 3.25”。
-
从 2.1.4.0 版本开始,条件过滤开始支持 IN 算子,例如
`WHERE city IN ('Beijing', 'Shanghai')`
。说明:BOOL 类型写作
`{true, false}`
或
`{0, 1}`
均可,但不能写作 0、1 之外的整数;FLOAT 和 DOUBLE 类型会受到浮点数精度影响,集合内的值在精度范围内认为和数据行的值完全相等才能匹配成功;TIMESTAMP 类型支持非主键的列。
-
从 2.3.0.0 版本开始,条件过滤开始支持正则表达式,关键字 match/nmatch,不区分大小写。
## 正则表达式过滤
...
...
@@ -375,14 +378,18 @@ WHERE t1.ts = t2.ts AND t1.deviceid = t2.deviceid AND t1.status=0;
类似地,也可以对多个子查询的查询结果进行 JOIN 操作。
注意,JOIN 操作存在如下限制要求:
:::note
JOIN语句存在如下限制要求:
1.
参与一条语句中 JOIN 操作的表/超级表最多可以有 10 个。
2.
在包含 JOIN 操作的查询语句中不支持 FILL。
3.
暂不支持参与 JOIN 操作的表之间聚合后的四则运算。
4.
不支持只对其中一部分表做 GROUP BY。
5.
JOIN 查询的不同表的过滤条件之间不能为 OR。
6.
JOIN 查询要求连接条件不能是普通列,只能针对标签和主时间字段列(第一列)。
-
参与一条语句中 JOIN 操作的表/超级表最多可以有 10 个。
-
在包含 JOIN 操作的查询语句中不支持 FILL。
-
暂不支持参与 JOIN 操作的表之间聚合后的四则运算。
-
不支持只对其中一部分表做 GROUP BY。
-
JOIN 查询的不同表的过滤条件之间不能为 OR。
-
JOIN 查询要求连接条件不能是普通列,只能针对标签和主时间字段列(第一列)。
:::
## 嵌套查询
...
...
@@ -396,17 +403,17 @@ SELECT ... FROM (SELECT ... FROM ...) ...;
:::info
1.
目前仅支持一层嵌套,也即不能在子查询中再嵌入子查询。
2.
内层查询的返回结果将作为“虚拟表”供外层查询使用,此虚拟表可以使用 AS 语法做重命名,以便于外层查询中方便引用。
3.
目前不能在“连续查询”功能中使用子查询。
4.
在内层和外层查询中,都支持普通的表间/超级表间 JOIN。内层查询的计算结果也可以再参与数据子表的 JOIN 操作。
5.
目前内层查询、外层查询均不支持 UNION 操作。
6.
内层查询支持的功能特性与非嵌套的查询语句能力是一致的。
-
目前仅支持一层嵌套,也即不能在子查询中再嵌入子查询。
-
内层查询的返回结果将作为“虚拟表”供外层查询使用,此虚拟表可以使用 AS 语法做重命名,以便于外层查询中方便引用。
-
目前不能在“连续查询”功能中使用子查询。
-
在内层和外层查询中,都支持普通的表间/超级表间 JOIN。内层查询的计算结果也可以再参与数据子表的 JOIN 操作。
-
目前内层查询、外层查询均不支持 UNION 操作。
-
内层查询支持的功能特性与非嵌套的查询语句能力是一致的。
-
内层查询的 ORDER BY 子句一般没有意义,建议避免这样的写法以免无谓的资源消耗。
7.
与非嵌套的查询语句相比,外层查询所能支持的功能特性存在如下限制:
-
与非嵌套的查询语句相比,外层查询所能支持的功能特性存在如下限制:
-
计算函数部分:
_.
如果内层查询的结果数据未提供时间戳,那么计算过程依赖时间戳的函数在外层会无法正常工作。例如:TOP, BOTTOM, FIRST, LAST, DIFF。
_.
计算过程需要两遍扫描的函数,在外层查询中无法正常工作。例如:此类函数包括:STDDEV, PERCENTILE。
-
如果内层查询的结果数据未提供时间戳,那么计算过程依赖时间戳的函数在外层会无法正常工作。例如:TOP, BOTTOM, FIRST, LAST, DIFF。
-
计算过程需要两遍扫描的函数,在外层查询中无法正常工作。例如:此类函数包括:STDDEV, PERCENTILE。
-
外层查询中不支持 IN 算子,但在内层中可以使用。
-
外层查询不支持 GROUP BY。
...
...
docs-cn/14-reference/01-taos-sql/07-function.md
浏览文件 @
4abedc2f
此差异已折叠。
点击以展开。
docs-cn/14-reference/01-taos-sql/index.md
浏览文件 @
4abedc2f
...
...
@@ -4,7 +4,7 @@ title: TAOS SQL
本文档说明 TAOS SQL 支持的语法规则、主要查询功能、支持的 SQL 查询函数,以及常用技巧等内容。阅读本文档需要读者具有基本的 SQL 语言的基础。
TAOS SQL 是用户对 TDengine 进行数据写入和查询的主要工具。TAOS SQL 为了便于用户快速上手,在一定程度上提供
类似于标准 SQL 类似的风格和模式。严格意义上,TAOS SQL 并不是也不试图提供 SQL 标准的
语法。此外,由于 TDengine 针对的时序性结构化数据不提供删除功能,因此在 TAO SQL 中不提供数据删除的相关功能。
TAOS SQL 是用户对 TDengine 进行数据写入和查询的主要工具。TAOS SQL 为了便于用户快速上手,在一定程度上提供
与标准 SQL 类似的风格和模式。严格意义上,TAOS SQL 并不是也不试图提供标准的 SQL
语法。此外,由于 TDengine 针对的时序性结构化数据不提供删除功能,因此在 TAO SQL 中不提供数据删除的相关功能。
TAOS SQL 不支持关键字的缩写,例如 DESCRIBE 不能缩写为 DESC。
...
...
docs-cn/14-reference/12-directory.md
0 → 100644
浏览文件 @
4abedc2f
---
title
:
文件目录结构
---
安装 TDengine 后,默认会在操作系统中生成下列目录或文件:
| 目录/文件 | 说明 |
| ------------------------- | -------------------------------------------------------------------- |
| /usr/local/taos/bin | TDengine 可执行文件目录。其中的执行文件都会软链接到/usr/bin 目录下。 |
| /usr/local/taos/driver | TDengine 动态链接库目录。会软链接到/usr/lib 目录下。 |
| /usr/local/taos/examples | TDengine 各种语言应用示例目录。 |
| /usr/local/taos/include | TDengine 对外提供的 C 语言接口的头文件。 |
| /etc/taos/taos.cfg | TDengine 默认[配置文件] |
| /var/lib/taos | TDengine 默认数据文件目录。可通过[配置文件]修改位置。 |
| /var/log/taos | TDengine 默认日志文件目录。可通过[配置文件]修改位置。 |
## 可执行文件
TDengine 的所有可执行文件默认存放在 _/usr/local/taos/bin_ 目录下。其中包括:
-
_taosd_:TDengine 服务端可执行文件
-
_taos_:TDengine Shell 可执行文件
-
_taosdump_:数据导入导出工具
-
_taosBenchmark_:TDengine 测试工具
-
_remove.sh_:卸载 TDengine 的脚本,请谨慎执行,链接到/usr/bin 目录下的
**rmtaos**
命令。会删除 TDengine 的安装目录/usr/local/taos,但会保留/etc/taos、/var/lib/taos、/var/log/taos。
-
_taosadapter_: 提供 RESTful 服务和接受其他多种软件写入请求的服务端可执行文件
-
_tarbitrator_: 提供双节点集群部署的仲裁功能
-
_run_taosd_and_taosadapter.sh_:同时启动 taosd 和 taosAdapter 的脚本
-
_TDinsight.sh_:用于下载 TDinsight 并安装的脚本
-
_set_core.sh_:用于方便调试设置系统生成 core dump 文件的脚本
-
_taosd-dump-cfg.gdb_:用于方便调试 taosd 的 gdb 执行脚本
:::note
2.
4.0.0 版本之后的 taosBenchmark 和 taosdump 需要安装独立安装包 taosTools。
:::
:::tip
您可以通过修改系统配置文件 taos.cfg 来配置不同的数据目录和日志目录。
:::
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录