提交 cc9e9097 编写于 作者: D dapan1121

docs: add stable query description

上级 20baf373
......@@ -280,12 +280,14 @@ TDengine 对每个数据采集点单独建表,但在实际应用中经常需
<center> 图 5 多表聚合查询原理图 </center>
1. 应用将一个查询条件发往系统;
2. taosc 将超级表的名字发往 meta node(管理节点);
3. 管理节点将超级表所拥有的 vnode 列表发回 taosc;
4. taosc 将计算的请求连同标签过滤条件发往这些 vnode 对应的多个数据节点;
5. 每个 vnode 先在内存里查找出自己节点里符合标签过滤条件的表的集合,然后扫描存储的时序数据,完成相应的聚合计算,将结果返回给 taosc;
6. taosc 将多个数据节点返回的结果做最后的聚合,将其返回给应用。
1. 客户端从 mnode 获取库和表的元数据信息;
2. mnode 返回请求的元数据信息;
3. 客户端向超级表所属的每个 vnode 发送查询请求;
4. vnode 启动本地查询,在获得查询结果后返回查询响应;
5. 客户端向聚合节点 (在本例中为 qnode)发送查询请求;
6. qnode 向每个 vnode 节点发送数据请求消息来拉取数据;
7. vnode 返回本节点的查询计算结果;
8. qnode 完成多节点数据聚合后将最终查询结果返回给客户端;
由于 TDengine 在 vnode 内将标签数据与时序数据分离存储,通过在内存里过滤标签数据,先找到需要参与聚合操作的表的集合,将需要扫描的数据集大幅减少,大幅提升聚合计算速度。同时,由于数据分布在多个 vnode/dnode,聚合计算操作在多个 vnode 里并发进行,又进一步提升了聚合的速度。 对普通表的聚合函数以及绝大部分操作都适用于超级表,语法完全一样,细节请看 TAOS SQL。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册