Merge pull request #16052 from taosdata/docs/dataQuery

docs: update data query doc
This commit is contained in:
dapan1121 2022-08-12 17:40:50 +08:00 committed by GitHub
commit 7d9e982cae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 7 deletions

View File

@ -241,15 +241,16 @@ dataDir /mnt/data6 2 0
## 数据查询
TDengine 提供了多种多样针对表和超级表的查询处理功能除了常规的聚合查询之外还提供针对时序数据的窗口查询、统计聚合等功能。TDengine 的查询处理需要客户端、vnode、mnode 节点协同完成。
TDengine 提供了多种多样针对表和超级表的查询处理功能除了常规的聚合查询之外还提供针对时序数据的窗口查询、统计聚合等功能。TDengine 的查询处理需要客户端、vnode、qnode、mnode 节点协同完成,一个复杂的超级表聚合查询可能需要多个 vnode 和 qnode 节点公共分担查询和计算任务
### 单表查询
### 查询基本流程
SQL 语句的解析和校验工作在客户端完成。解析 SQL 语句并生成抽象语法树Abstract Syntax TreeAST然后对其进行校验和检查。以及向管理节点mnode请求查询中指定表的元数据信息table metadata
根据元数据信息中的 End Point 信息将查询请求序列化后发送到该表所在的数据节点dnode。dnode 接收到查询请求后识别出该查询请求指向的虚拟节点vnode将消息转发到 vnode 的查询执行队列。vnode 的查询执行线程建立基础的查询执行环境,并立即返回该查询请求,同时开始执行该查询。
客户端在获取查询结果的时候dnode 的查询执行队列中的工作线程会等待 vnode 执行线程执行完成,才能将查询结果返回到请求的客户端。
1. 客户端解析输入 SQL 语句并生成抽象语法树Abstract Syntax TreeAST然后根据元数据信息对其进行校验和检查。在此期间元数据管理模块Catalog会向管理节点mnode或 vnode 请求查询中指定库和表的元数据信息table metadata
2. 在通过校验检查后,客户端将生成分布式的查询计划并对查询计划进行优化处理。
3. 客户端根据配置的查询策略进行任务调度处理,一个查询子任务会根据其数据亲缘关系或负载信息调度到某个 vnode 或 qnode 所属的数据节点dnode进行处理。
4. dnode 接收到查询请求后识别出该查询请求指向的虚拟节点vnode或查询节点qnode将消息转发到 vnode 或 qnode 的查询执行队列。
5. vnode 或 qnode 的查询执行线程建立基础的查询执行环境,并立即执行该查询,在得到部分可获取查询结果后通知客户端。
6. 客户端将启动下级查询任务或直接获取查询结果。
### 按时间轴聚合、降采样、插值