Skip to content

Commit 9cd2216

Browse files
committed
Optimization modeling design scheme document
1 parent 1db90e3 commit 9cd2216

File tree

6 files changed

+98
-50
lines changed

6 files changed

+98
-50
lines changed
377 KB
Loading
273 KB
Loading
196 KB
Loading
432 KB
Loading

src/zh/UserGuide/Master/Table/Background-knowledge/Data-Model-and-Terminology.md

Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,37 +31,23 @@
3131

3232
> IoTDB 提供了两种数据建模方式——树模型和表模型,以满足用户多样化的应用需求。
3333
34-
### 2.1 树模型
34+
![](/img/%E5%BB%BA%E6%A8%A1%E6%96%B9%E6%A1%88%E8%AE%BE%E8%AE%A101.png)
3535

36-
以测点为单元进行管理,每个测点对应一条时间序列,测点名按逗号分割可看作一个树形目录结构,与物理世界一一对应,简单直观
36+
**树模型**以测点为单元进行管理,每个测点对应一条时间序列,测点名按逗号分割可看作一个树形目录结构,与物理世界一一对应,数据写入简单直观
3737

38-
示例:下图是一个风电场的建模管理,通过多个层级【集团】-【风电场】-【风机】-【物理量】可以唯一确定一个实体测点
38+
**表模型**:推荐为每类设备创建一张表,每个设备的物理量采集都具备一定共性(如都采集温度和湿度物理量、同一设备的物理量同频采集等),数据查询灵活高效
3939

40-
<div style="text-align: center;">
41-
<img src="/img/data-modeling01.png" alt="" style="width: 70%;"/>
42-
</div>
43-
44-
### 2.2 表模型
45-
46-
一张表管理一类设备。下图是一个工厂设备的建模管理,每个设备的物理量采集都具备一定共性(如都采集温度和湿度物理量、同一设备的物理量同频采集等)。
47-
48-
此时通过【地区】-【工厂】-【设备】(下图橙色列,又称设备标签)可以唯一确定一个实体设备,同时一个设备的描述信息【型号】【维护周期】(下图黄色列,又称设备属性/描述信息)也可在表格里进行记录。设备最终采集的指标为【温度】、【湿度】、【状态】、【到达时间】(下图蓝色列)。
49-
50-
<div style="text-align: center;">
51-
<img src="/img/data-modeling02.png" alt="" style="width: 70%;"/>
52-
</div>
53-
54-
### 2.3 模型选择
40+
### 2.1 模型选择
5541

5642
两种模型有各自的适用场景。
5743

58-
树模型采用层级式结构,适合实时监控场景,能够直观映射物理设备的层级关系;表模型以设备为管理单位,适合大规模设备的数据管理和多属性关联分析,能够高效支持复杂的批量查询需求。
44+
树模型语法采用层级式结构,适合实时监控场景,能够直观映射物理设备的层级关系;表模型语法以设备为管理单位,适合大规模设备的数据管理和多属性关联分析,能够高效支持复杂的批量查询需求。
5945

6046
以下表格从适用场景、典型操作等多个维度对树模型和表模型进行了对比。用户可以根据具体的使用需求,选择适合的模型,从而实现数据的高效存储和管理。
6147

6248
| 对比维度 | 树模型 | 表模型 |
6349
| -------- | ---------------------- | ------------------------ |
64-
| 适用场景 | 点位监控场景 | 多维分析场景 |
50+
| 适用场景 | 测点管理,监控场景 | 设备管理,分析场景 |
6551
| 典型操作 | 指定点位路径进行读写 | 通过标签进行数据筛选分析 |
6652
| 结构特点 | 和文件系统一样灵活增删 | 模板化管理,便于数据治理 |
6753
| 语法特点 | 简洁 | 标准 |
@@ -70,7 +56,7 @@
7056
- 同一个集群实例中可以存在两种模型空间,不同模型的语法、数据库命名方式不同,默认不互相可见。
7157
- 在通过客户端工具 Cli 或 SDK 建立数据库连接时,需要通过 sql_dialect 参数指定使用的模型语法(默认使用树语法进行操作)。
7258

73-
## 3 树模型
59+
## 3 场景一:树模型
7460

7561
### 3.1 特点
7662

@@ -113,7 +99,7 @@
11399
</div>
114100

115101

116-
## 4 表模型
102+
## 4 场景二:表模型
117103

118104
### 4.1 特点
119105

@@ -139,7 +125,8 @@
139125

140126
#### 4.3.1 有多种类型的设备需要管理,如何建模?
141127

142-
- 推荐为每一类型的设备建立一张表,每个表可以具有不同的标签和测点集合
128+
- 推荐为每一类型的设备建立一张表,每个表可以具有不同的标签和测点集合。
129+
- 即使设备之间有联系,或有层级关系,也推荐为每一类设备建一张表。
143130

144131
<div style="text-align: center;">
145132
<img src="/img/data-modeling06.png" alt="" style="width: 70%;"/>
@@ -155,8 +142,45 @@
155142

156143
#### 4.3.3 如果在一个设备下,既有子设备,也有测点,如何建模?
157144

158-
- 设备之间存在嵌套关系,每个设备可以有多个子设备及测点信息,推荐建立多个表进行管理
145+
- 每个设备有多个子设备及测点信息,推荐为每类设备建一个表进行管理
159146

160147
<div style="text-align: center;">
161148
<img src="/img/data-modeling09.png" alt="" style="width: 70%;"/>
162-
</div>
149+
</div>
150+
151+
## 5 场景三:双模型结合(企业版功能)
152+
153+
### 5.1 特点
154+
155+
- 巧妙融合了树模型与表模型的优点,数据写入阶段,采用树模型语法,简单直观的特性,直观反映物理监测点位,使写入变得简单快捷。
156+
- 数据查询阶段,采用表模型语法展现了强大的灵活性,允许用户通过标准 SQL 查询语言,执行复杂的数据分析。
157+
158+
### 5.2 建模示例
159+
160+
#### 5.2.1 有多种类型的设备需要管理,如何建模?
161+
162+
- 场景中不同类型的设备具备不同的层级路径和测点集合。
163+
- 写入时:在数据库节点下按设备类型创建分支,每种设备下可以有不同的测点结构。
164+
- 查询时:为每种类型的设备建立一张表,每个表具有不同的标签和测点集合。
165+
166+
<div style="text-align: center;">
167+
<img src="/img/%E5%BB%BA%E6%A8%A1%E6%96%B9%E6%A1%88%E8%AE%BE%E8%AE%A102.png" alt="" style="width: 70%;"/>
168+
</div>
169+
170+
#### 5.2.2 如果没有设备标识列和属性列,如何建模?
171+
172+
- 写入时:每个测点都有唯一编号,但无法对应到某些设备。
173+
- 查询时:将无法对应到设备上的唯一编号的测点放入一张表中,测点列数没有数量限制,可以达到数十万以上。
174+
175+
<div style="text-align: center;">
176+
<img src="/img/%E5%BB%BA%E6%A8%A1%E6%96%B9%E6%A1%88%E8%AE%BE%E8%AE%A103.png" alt="" style="width: 70%;"/>
177+
</div>
178+
179+
#### 5.2.3 如果在一个设备下,既有子设备,也有测点,如何建模?
180+
181+
- 写入时:按照物理世界的监测点,对每一层结构进行建模。
182+
- 查询时:按照设备分类,建立多个表对每一层结构信息进行管理。
183+
184+
<div style="text-align: center;">
185+
<img src="/img/%E5%BB%BA%E6%A8%A1%E6%96%B9%E6%A1%88%E8%AE%BE%E8%AE%A104.png" alt="" style="width: 70%;"/>
186+
</div>

src/zh/UserGuide/latest-Table/Background-knowledge/Data-Model-and-Terminology.md

Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,37 +31,23 @@
3131

3232
> IoTDB 提供了两种数据建模方式——树模型和表模型,以满足用户多样化的应用需求。
3333
34-
### 2.1 树模型
34+
![](/img/%E5%BB%BA%E6%A8%A1%E6%96%B9%E6%A1%88%E8%AE%BE%E8%AE%A101.png)
3535

36-
以测点为单元进行管理,每个测点对应一条时间序列,测点名按逗号分割可看作一个树形目录结构,与物理世界一一对应,简单直观
36+
**树模型**以测点为单元进行管理,每个测点对应一条时间序列,测点名按逗号分割可看作一个树形目录结构,与物理世界一一对应,数据写入简单直观
3737

38-
示例:下图是一个风电场的建模管理,通过多个层级【集团】-【风电场】-【风机】-【物理量】可以唯一确定一个实体测点
38+
**表模型**:推荐为每类设备创建一张表,每个设备的物理量采集都具备一定共性(如都采集温度和湿度物理量、同一设备的物理量同频采集等),数据查询灵活高效
3939

40-
<div style="text-align: center;">
41-
<img src="/img/data-modeling01.png" alt="" style="width: 70%;"/>
42-
</div>
43-
44-
### 2.2 表模型
45-
46-
一张表管理一类设备。下图是一个工厂设备的建模管理,每个设备的物理量采集都具备一定共性(如都采集温度和湿度物理量、同一设备的物理量同频采集等)。
47-
48-
此时通过【地区】-【工厂】-【设备】(下图橙色列,又称设备标签)可以唯一确定一个实体设备,同时一个设备的描述信息【型号】【维护周期】(下图黄色列,又称设备属性/描述信息)也可在表格里进行记录。设备最终采集的指标为【温度】、【湿度】、【状态】、【到达时间】(下图蓝色列)。
49-
50-
<div style="text-align: center;">
51-
<img src="/img/data-modeling02.png" alt="" style="width: 70%;"/>
52-
</div>
53-
54-
### 2.3 模型选择
40+
### 2.1 模型选择
5541

5642
两种模型有各自的适用场景。
5743

58-
树模型采用层级式结构,适合实时监控场景,能够直观映射物理设备的层级关系;表模型以设备为管理单位,适合大规模设备的数据管理和多属性关联分析,能够高效支持复杂的批量查询需求。
44+
树模型语法采用层级式结构,适合实时监控场景,能够直观映射物理设备的层级关系;表模型语法以设备为管理单位,适合大规模设备的数据管理和多属性关联分析,能够高效支持复杂的批量查询需求。
5945

6046
以下表格从适用场景、典型操作等多个维度对树模型和表模型进行了对比。用户可以根据具体的使用需求,选择适合的模型,从而实现数据的高效存储和管理。
6147

6248
| 对比维度 | 树模型 | 表模型 |
6349
| -------- | ---------------------- | ------------------------ |
64-
| 适用场景 | 点位监控场景 | 多维分析场景 |
50+
| 适用场景 | 测点管理,监控场景 | 设备管理,分析场景 |
6551
| 典型操作 | 指定点位路径进行读写 | 通过标签进行数据筛选分析 |
6652
| 结构特点 | 和文件系统一样灵活增删 | 模板化管理,便于数据治理 |
6753
| 语法特点 | 简洁 | 标准 |
@@ -70,7 +56,7 @@
7056
- 同一个集群实例中可以存在两种模型空间,不同模型的语法、数据库命名方式不同,默认不互相可见。
7157
- 在通过客户端工具 Cli 或 SDK 建立数据库连接时,需要通过 sql_dialect 参数指定使用的模型语法(默认使用树语法进行操作)。
7258

73-
## 3 树模型
59+
## 3 场景一:树模型
7460

7561
### 3.1 特点
7662

@@ -113,7 +99,7 @@
11399
</div>
114100

115101

116-
## 4 表模型
102+
## 4 场景二:表模型
117103

118104
### 4.1 特点
119105

@@ -139,7 +125,8 @@
139125

140126
#### 4.3.1 有多种类型的设备需要管理,如何建模?
141127

142-
- 推荐为每一类型的设备建立一张表,每个表可以具有不同的标签和测点集合
128+
- 推荐为每一类型的设备建立一张表,每个表可以具有不同的标签和测点集合。
129+
- 即使设备之间有联系,或有层级关系,也推荐为每一类设备建一张表。
143130

144131
<div style="text-align: center;">
145132
<img src="/img/data-modeling06.png" alt="" style="width: 70%;"/>
@@ -155,8 +142,45 @@
155142

156143
#### 4.3.3 如果在一个设备下,既有子设备,也有测点,如何建模?
157144

158-
- 设备之间存在嵌套关系,每个设备可以有多个子设备及测点信息,推荐建立多个表进行管理
145+
- 每个设备有多个子设备及测点信息,推荐为每类设备建一个表进行管理
159146

160147
<div style="text-align: center;">
161148
<img src="/img/data-modeling09.png" alt="" style="width: 70%;"/>
162-
</div>
149+
</div>
150+
151+
## 5 场景三:双模型结合(企业版功能)
152+
153+
### 5.1 特点
154+
155+
- 巧妙融合了树模型与表模型的优点,数据写入阶段,采用树模型语法,简单直观的特性,直观反映物理监测点位,使写入变得简单快捷。
156+
- 数据查询阶段,采用表模型语法展现了强大的灵活性,允许用户通过标准 SQL 查询语言,执行复杂的数据分析。
157+
158+
### 5.2 建模示例
159+
160+
#### 5.2.1 有多种类型的设备需要管理,如何建模?
161+
162+
- 场景中不同类型的设备具备不同的层级路径和测点集合。
163+
- 写入时:在数据库节点下按设备类型创建分支,每种设备下可以有不同的测点结构。
164+
- 查询时:为每种类型的设备建立一张表,每个表具有不同的标签和测点集合。
165+
166+
<div style="text-align: center;">
167+
<img src="/img/%E5%BB%BA%E6%A8%A1%E6%96%B9%E6%A1%88%E8%AE%BE%E8%AE%A102.png" alt="" style="width: 70%;"/>
168+
</div>
169+
170+
#### 5.2.2 如果没有设备标识列和属性列,如何建模?
171+
172+
- 写入时:每个测点都有唯一编号,但无法对应到某些设备。
173+
- 查询时:将无法对应到设备上的唯一编号的测点放入一张表中,测点列数没有数量限制,可以达到数十万以上。
174+
175+
<div style="text-align: center;">
176+
<img src="/img/%E5%BB%BA%E6%A8%A1%E6%96%B9%E6%A1%88%E8%AE%BE%E8%AE%A103.png" alt="" style="width: 70%;"/>
177+
</div>
178+
179+
#### 5.2.3 如果在一个设备下,既有子设备,也有测点,如何建模?
180+
181+
- 写入时:按照物理世界的监测点,对每一层结构进行建模。
182+
- 查询时:按照设备分类,建立多个表对每一层结构信息进行管理。
183+
184+
<div style="text-align: center;">
185+
<img src="/img/%E5%BB%BA%E6%A8%A1%E6%96%B9%E6%A1%88%E8%AE%BE%E8%AE%A104.png" alt="" style="width: 70%;"/>
186+
</div>

0 commit comments

Comments
 (0)