Merge pull request #30436 from taosdata/docs/main/TS-4897

docs: [TS-4897] Use markdown table instead of pics.
This commit is contained in:
Jing Sima 2025-03-25 12:33:55 +08:00 committed by GitHub
parent c8bf7edb50
commit b5962d6b9e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 538 additions and 23 deletions

View File

@ -6,8 +6,6 @@ slug: /basic-features/data-model
import Image from '@theme/IdealImage';
import dataModel from '../assets/data-model-01.png';
import origintable from '../assets/data-model-origin-table.png';
import origintable2 from '../assets/data-model-origin-table-2.png';
To clearly explain the concepts of time-series data and facilitate the writing of example programs, the TDengine documentation uses smart meters as an example. These example smart meters can collect three metrics: current, voltage, and phase. In addition, each smart meter also has two static attributes: location and group ID. The data collected by these smart meters is shown in the table below.
@ -370,7 +368,63 @@ TAGS (
Taking device d1001 as an example, assume that the current, voltage, and phase data of device d1001 are as follows:
<img src={origintable} width="500" alt="data-model-origin-table" />
<table>
<tr>
<th colspan="2" align="center">current_d1001</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">voltage_d1001</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">phase_d1001</th>
</tr>
<tr>
<td align="center">Timestamp</td>
<td align="center">Current</td>
<td align="center">Timestamp</td>
<td align="center">Voltage</td>
<td align="center">Timestamp</td>
<td align="center">Phase</td>
</tr>
<tr>
<td align="center">1538548685000</td>
<td align="center">10.3</td>
<td align="center">1538548685000</td>
<td align="center">219</td>
<td align="center">1538548685000</td>
<td align="center">0.31</td>
</tr>
<tr>
<td align="center">1538548695000</td>
<td align="center">12.6</td>
<td align="center">1538548695000</td>
<td align="center">218</td>
<td align="center">1538548695000</td>
<td align="center">0.33</td>
</tr>
<tr>
<td align="center">1538548696800</td>
<td align="center">12.3</td>
<td align="center">1538548696800</td>
<td align="center">221</td>
<td align="center">1538548696800</td>
<td align="center">0.31</td>
</tr>
<tr>
<td align="center">1538548697100</td>
<td align="center">12.1</td>
<td align="center">1538548697100</td>
<td align="center">220</td>
<td align="center">1538548697200</td>
<td align="center">0.32</td>
</tr>
<tr>
<td align="center">1538548697700</td>
<td align="center">11.8</td>
<td align="center">1538548697800</td>
<td align="center">222</td>
<td align="center">1538548697800</td>
<td align="center">0.33</td>
</tr>
</table>
| Timestamp | Current | Voltage | Phase |
|-------------------|---------|---------|-------|
@ -399,7 +453,78 @@ CREATE VTABLE current_v (
```
Assume that the current data of devices d1001, d1002, d1003, and d1004 are as follows:
<img src={origintable2} width="500" alt="data-model-origin-table-2" />
<table>
<tr>
<th colspan="2" align="center">d1001</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">d1002</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">d1003</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">d1004</th>
</tr>
<tr>
<td align="center">Timestamp</td>
<td align="center">Current</td>
<td align="center">Timestamp</td>
<td align="center">Current</td>
<td align="center">Timestamp</td>
<td align="center">Current</td>
<td align="center">Timestamp</td>
<td align="center">Current</td>
</tr>
<tr>
<td align="center">1538548685000</td>
<td align="center">10.3</td>
<td align="center">1538548685000</td>
<td align="center">11.7</td>
<td align="center">1538548685000</td>
<td align="center">11.2</td>
<td align="center">1538548685000</td>
<td align="center">12.4</td>
</tr>
<tr>
<td align="center">1538548695000</td>
<td align="center">12.6</td>
<td align="center">1538548695000</td>
<td align="center">11.9</td>
<td align="center">1538548695000</td>
<td align="center">10.8</td>
<td align="center">1538548695000</td>
<td align="center">11.3</td>
</tr>
<tr>
<td align="center">1538548696800</td>
<td align="center">12.3</td>
<td align="center">1538548696800</td>
<td align="center">12.4</td>
<td align="center">1538548696800</td>
<td align="center">12.3</td>
<td align="center">1538548696800</td>
<td align="center">10.1</td>
</tr>
<tr>
<td align="center">1538548697100</td>
<td align="center">12.1</td>
<td align="center">1538548697200</td>
<td align="center">12.2</td>
<td align="center">1538548697100</td>
<td align="center">11.1</td>
<td align="center">1538548697200</td>
<td align="center">11.7</td>
</tr>
<tr>
<td align="center">1538548697700</td>
<td align="center">11.8</td>
<td align="center">1538548697700</td>
<td align="center">11.4</td>
<td align="center">1538548697800</td>
<td align="center">12.1</td>
<td align="center">1538548697800</td>
<td align="center">12.6</td>
</tr>
</table>
The virtual table `current_v` aligns current data by timestamp:

View File

@ -4,10 +4,6 @@ title: Virtual Tables
description: Various management operations for virtual tables
---
import origintable from './assets/virtual-table-origin-table.png';
import queryres from './assets/virtual-table-query-res.png';
import partres from './assets/virtual-table-query-res-part.png';
## Create Virtual Table
The `CREATE VTABLE` statement is used to create virtual basic tables and virtual subtables using virtual supertables as templates.
@ -74,7 +70,68 @@ Virtual tables use the same query syntax as regular tables, but their dataset ma
Given tables t1, t2, t3 with data:
<img src={origintable} width="500" alt="Original Table Structure and Data" />
<table>
<tr>
<th colspan="2" align="center">t1</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">t2</th>
<th rowspan="7" align="center"></th>
<th colspan="3" align="center">t3</th>
</tr>
<tr>
<td align="center">ts</td>
<td align="center">value</td>
<td align="center">ts</td>
<td align="center">value</td>
<td align="center">ts</td>
<td align="center">value1</td>
<td align="center">value2</td>
</tr>
<tr>
<td align="center">0:00:01</td>
<td align="center">1</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center"></td>
<td align="center"></td>
<td align="center">0:00:02</td>
<td align="center">20</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center">0:00:03</td>
<td align="center">300</td>
<td align="center">3000</td>
</tr>
<tr>
<td align="center">0:00:04</td>
<td align="center">4</td>
<td align="center">0:00:04</td>
<td align="center">40</td>
<td align="center">0:00:03</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center"></td>
<td align="center"></td>
<td align="center">0:00:05</td>
<td align="center">50</td>
<td align="center">0:00:05</td>
<td align="center">500</td>
<td align="center">5000</td>
</tr>
</table>
Create a virtual table v1:
@ -94,7 +151,54 @@ SELECT * FROM v1;
```
Result:
<img src={queryres} width="200" alt="Full Query Result" />
<table>
<tr>
<th colspan="5" align="center">v1</th>
</tr>
<tr>
<td align="center">ts</td>
<td align="center">c1</td>
<td align="center">c2</td>
<td align="center">c3</td>
<td align="center">c4</td>
</tr>
<tr>
<td align="center">0:00:01</td>
<td align="center">1</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0:00:02</td>
<td align="center"></td>
<td align="center">20</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0:00:03</td>
<td align="center"></td>
<td align="center"></td>
<td align="center">300</td>
<td align="center">3000</td>
</tr>
<tr>
<td align="center">0:00:04</td>
<td align="center">4</td>
<td align="center">40</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0:00:05</td>
<td align="center"></td>
<td align="center">50</td>
<td align="center">500</td>
<td align="center">5000</td>
</tr>
</table>
Partial column query:
@ -103,7 +207,37 @@ SELECT c1, c2 FROM v1;
```
Result:
<img src={partres} width="200" alt="Partial Query Result" />
<table>
<tr>
<th colspan="5" align="center">v1</th>
</tr>
<tr>
<td align="center">ts</td>
<td align="center">c1</td>
<td align="center">c2</td>
</tr>
<tr>
<td align="center">0:00:01</td>
<td align="center">1</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0:00:02</td>
<td align="center"></td>
<td align="center">20</td>
</tr>
<tr>
<td align="center">0:00:04</td>
<td align="center">4</td>
<td align="center">40</td>
</tr>
<tr>
<td align="center">0:00:05</td>
<td align="center"></td>
<td align="center">50</td>
</tr>
</table>
Since the original tables t1 and t2 (corresponding to columns c1 and c2) lack the timestamp 0:00:03, this timestamp will not appear in the final result.
@ -243,7 +377,7 @@ privileges: { ALL | READ | WRITE }
#### Revoke
```sql
REVOKE privileges ON [db_name.]vtable_name FROM user_name
privileges: { ALL | READ | WRITE }
privileges: { ALL | READ | WRITE }
```
### Permission Rules

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

View File

@ -3,8 +3,6 @@ sidebar_label: 数据模型
title: TDengine 数据模型
toc_max_heading_level: 4
---
import origintable from './data-model-origin-table.png';
import origintable2 from './data-model-origin-table-2.png';
为了清晰地阐述时序数据的基本概念,并为示例程序的编写提供便利,整个文档都将以智能电表为例,探讨时序数据的典型应用场景。设想有一种型号的智能电表,它能够采集
电流、电压和相位这 3 个模拟量。此外,每块智能电表还具有位置和分组等静态属性。这些智能电表采集的数据示例如下表所示。
@ -357,7 +355,63 @@ TAGS (
以设备 d1001 为例,假设 d1001 设备的电流、电压、相位数据如下:
<img src={origintable} width="500" alt="data-model-origin-table" />
<table>
<tr>
<th colspan="2" align="center">current_d1001</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">voltage_d1001</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">phase_d1001</th>
</tr>
<tr>
<td align="center">Timestamp</td>
<td align="center">Current</td>
<td align="center">Timestamp</td>
<td align="center">Voltage</td>
<td align="center">Timestamp</td>
<td align="center">Phase</td>
</tr>
<tr>
<td align="center">1538548685000</td>
<td align="center">10.3</td>
<td align="center">1538548685000</td>
<td align="center">219</td>
<td align="center">1538548685000</td>
<td align="center">0.31</td>
</tr>
<tr>
<td align="center">1538548695000</td>
<td align="center">12.6</td>
<td align="center">1538548695000</td>
<td align="center">218</td>
<td align="center">1538548695000</td>
<td align="center">0.33</td>
</tr>
<tr>
<td align="center">1538548696800</td>
<td align="center">12.3</td>
<td align="center">1538548696800</td>
<td align="center">221</td>
<td align="center">1538548696800</td>
<td align="center">0.31</td>
</tr>
<tr>
<td align="center">1538548697100</td>
<td align="center">12.1</td>
<td align="center">1538548697100</td>
<td align="center">220</td>
<td align="center">1538548697200</td>
<td align="center">0.32</td>
</tr>
<tr>
<td align="center">1538548697700</td>
<td align="center">11.8</td>
<td align="center">1538548697800</td>
<td align="center">222</td>
<td align="center">1538548697800</td>
<td align="center">0.33</td>
</tr>
</table>
虚拟表 d1001_v 中的数据如下:
@ -390,7 +444,77 @@ CREATE VTABLE current_v (
假设 d1001, d1002, d1003, d1004 四个设备的电流数据如下:
<img src={origintable2} width="500" alt="data-model-origin-table-2" />
<table>
<tr>
<th colspan="2" align="center">d1001</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">d1002</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">d1003</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">d1004</th>
</tr>
<tr>
<td align="center">Timestamp</td>
<td align="center">Current</td>
<td align="center">Timestamp</td>
<td align="center">Current</td>
<td align="center">Timestamp</td>
<td align="center">Current</td>
<td align="center">Timestamp</td>
<td align="center">Current</td>
</tr>
<tr>
<td align="center">1538548685000</td>
<td align="center">10.3</td>
<td align="center">1538548685000</td>
<td align="center">11.7</td>
<td align="center">1538548685000</td>
<td align="center">11.2</td>
<td align="center">1538548685000</td>
<td align="center">12.4</td>
</tr>
<tr>
<td align="center">1538548695000</td>
<td align="center">12.6</td>
<td align="center">1538548695000</td>
<td align="center">11.9</td>
<td align="center">1538548695000</td>
<td align="center">10.8</td>
<td align="center">1538548695000</td>
<td align="center">11.3</td>
</tr>
<tr>
<td align="center">1538548696800</td>
<td align="center">12.3</td>
<td align="center">1538548696800</td>
<td align="center">12.4</td>
<td align="center">1538548696800</td>
<td align="center">12.3</td>
<td align="center">1538548696800</td>
<td align="center">10.1</td>
</tr>
<tr>
<td align="center">1538548697100</td>
<td align="center">12.1</td>
<td align="center">1538548697200</td>
<td align="center">12.2</td>
<td align="center">1538548697100</td>
<td align="center">11.1</td>
<td align="center">1538548697200</td>
<td align="center">11.7</td>
</tr>
<tr>
<td align="center">1538548697700</td>
<td align="center">11.8</td>
<td align="center">1538548697700</td>
<td align="center">11.4</td>
<td align="center">1538548697800</td>
<td align="center">12.1</td>
<td align="center">1538548697800</td>
<td align="center">12.6</td>
</tr>
</table>
虚拟表 current_v 中的数据如下:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

View File

@ -4,10 +4,6 @@ title: 虚拟表
description: 对虚拟表的各种管理操作
---
import origintable from './pic/virtual-table-origin-table.png';
import queryres from './pic/virtual-table-query-res.png';
import partres from './pic/virtual-table-query-res-part.png';
## 创建虚拟表
`CREATE VTABLE` 语句用于创建普通虚拟表和以虚拟超级表为模板创建虚拟子表。
@ -73,7 +69,68 @@ CREATE VTABLE [IF NOT EXISTS] [db_name].vtb_name
假设有表 t1、t2、t3 结构和数据如下:
<img src={origintable} width="500" alt="origintable" />
<table>
<tr>
<th colspan="2" align="center">t1</th>
<th rowspan="7" align="center"></th>
<th colspan="2" align="center">t2</th>
<th rowspan="7" align="center"></th>
<th colspan="3" align="center">t3</th>
</tr>
<tr>
<td align="center">ts</td>
<td align="center">value</td>
<td align="center">ts</td>
<td align="center">value</td>
<td align="center">ts</td>
<td align="center">value1</td>
<td align="center">value2</td>
</tr>
<tr>
<td align="center">0:00:01</td>
<td align="center">1</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center"></td>
<td align="center"></td>
<td align="center">0:00:02</td>
<td align="center">20</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
<td align="center">0:00:03</td>
<td align="center">300</td>
<td align="center">3000</td>
</tr>
<tr>
<td align="center">0:00:04</td>
<td align="center">4</td>
<td align="center">0:00:04</td>
<td align="center">40</td>
<td align="center">0:00:03</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center"></td>
<td align="center"></td>
<td align="center">0:00:05</td>
<td align="center">50</td>
<td align="center">0:00:05</td>
<td align="center">500</td>
<td align="center">5000</td>
</tr>
</table>
并且有虚拟普通表 v1 ,创建方式如下:
@ -94,7 +151,53 @@ select * from v1;
结果如下:
<img src={queryres} width="200" alt="queryres" />
<table>
<tr>
<th colspan="5" align="center">v1</th>
</tr>
<tr>
<td align="center">ts</td>
<td align="center">c1</td>
<td align="center">c2</td>
<td align="center">c3</td>
<td align="center">c4</td>
</tr>
<tr>
<td align="center">0:00:01</td>
<td align="center">1</td>
<td align="center"></td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0:00:02</td>
<td align="center"></td>
<td align="center">20</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0:00:03</td>
<td align="center"></td>
<td align="center"></td>
<td align="center">300</td>
<td align="center">3000</td>
</tr>
<tr>
<td align="center">0:00:04</td>
<td align="center">4</td>
<td align="center">40</td>
<td align="center"></td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0:00:05</td>
<td align="center"></td>
<td align="center">50</td>
<td align="center">500</td>
<td align="center">5000</td>
</tr>
</table>
如果没有选择全部列,只是选择了部分列,查询的结果只会包含选择的列的原始表的时间戳,例如执行如下查询:
@ -104,7 +207,36 @@ select c1, c2 from v1;
得到的结果如下图所示:
<img src={partres} width="200" alt="partres" />
<table>
<tr>
<th colspan="5" align="center">v1</th>
</tr>
<tr>
<td align="center">ts</td>
<td align="center">c1</td>
<td align="center">c2</td>
</tr>
<tr>
<td align="center">0:00:01</td>
<td align="center">1</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0:00:02</td>
<td align="center"></td>
<td align="center">20</td>
</tr>
<tr>
<td align="center">0:00:04</td>
<td align="center">4</td>
<td align="center">40</td>
</tr>
<tr>
<td align="center">0:00:05</td>
<td align="center"></td>
<td align="center">50</td>
</tr>
</table>
因为 c1、c2 列对应的原始表 t1、t2 中没有 0:00:03 这个时间戳,所以最后的结果也不会包含这个时间戳。

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB