平台的数据模型如何查数据?

最近更新时间:2021-03-02 20:03:29

查看PDF

如图的数据建模,平台如何执行sql?

image.png

我们从后台截取sql如下:

SELECT  *  /*查询字段已经删除,主要看下面的join逻辑*/
FROM `dashboard`.`app_version` AS `t1`
INNER JOIN `dashboard`.`api_name` AS `t2` ON (`t1`.`id` <=> `t2`.`id`)
INNER JOIN `dashboard`.`backend_message` AS `t3` ON (`t1`.`id` <=> `t3`.`id`)
INNER JOIN `dashboard`.`backend_deploy_persons` AS `t4` ON (`t3`.`creator_id` <=> `t4`.`creator_id`)
INNER JOIN `dashboard`.`bigviz_user` AS `t5` ON (`t4`.`id` <=> `t5`.`id`)

WHERE (t5.id IN (8082))

从sql可以看出,平台是以节点对应关系来执行sql的。

拓展:

(1)如果在列表筛选器针对其中一个表的字段设置了筛选,sql 如何执行?

sql是先把模型中表与表的join关系理出来。然后基于整个结果做的筛选字段筛选。

这样的缺陷是:如上图,如果t1和t5在不做筛选的时候会出来多条结果,对性能不是特别好。

优化:可以把t5创建一个自定义sql, 内容如: select * from t5 where 条件=xxx 。 然后把这个sql视图代替上图的t5单表。

(2)这样的一个数据模型,在报告中,如果只用了某张表的一个字段,会如何?
平台会把数据模型的sql 当成一个子sql,在该sql上做查询

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈