麦粉社区
>
帖子详情

重生之如何找SQL看数据不对问题(上)

干货分享 发表于 昨天 09:57
发表于 昨天 09:57
本帖最后由 麦本麦 于 2025-1-17 11:22 编辑

     又该写年终总结了,数据有了吗?数据对了吗?


     什么,数据不对?来来来,告诉你个秘籍,掌握秘籍后,妈妈再也不用担心我的数据不对了!image.png


    首先我们先了解下,smartbi展示的数据从何而来。smartbi本身不存储业务库数据,前端展示的数据,是通过jdbc驱动跟数据库交互,将SQL送到数据库执行,数据库执行完之后再返回到前端展示。


    知道原理后,那就简单了,可以一步步去溯源,看看到底是哪里有问题。按现有smartbi的功能,目前主要划分为旧数据集开发报表,以及数据模型开发的报表。那接下来我们一个个来看。


旧数据集篇


     何为旧数据集呢?一说老朋友们估计就知道了,其实就是数据集家族们:原生SQL数据集、SQL数据集、可视化数据集、自助数据集、存储过程数据集、Java数据集、多维数据集、即席查询(旧)、透视分析(旧),统称为旧数据集。


     另,即席查询(旧)、透视分析(旧),是两个特殊的数据集,它既可以作为数据集,用于做电子表格报表,也可以分析展现层面直接作为报表数据,不得不说,真是面面俱到的好牛马。


     就目前来说,大部分旧数据集中常用的基本还是原生SQL数据集、SQL数据集、可视化数据集、自助数据集。就这几种类型,外加即席查询、透视分析,那排查数据不对就比较简单了,主要就是看看是SQL哪儿不对。


     那怎么知道SQL在哪儿啊,这就要用到修炼来的秘技去找SQL了!


     但是!在找SQL前,得先清空缓存,因为有缓存情况下,不会重新将SQL拿到数据库中执行,此时就找不到执行SQL了:image.png秘技一:用户日志


    入口:就在右上角,点开三个点就能看到:


image.png


     进去之后,需要点击开始监控,并切换到服务器端image.png     接着就可以回到数据集的界面,去预览数据,或是回到报表查看界面,去重新打开报表后,再返回这个监控界面,那就可以看到SQL了:image.png秘技二:SQL监控/MDX监控


     入口:也在右上角,点开三个点就能看到:


image.png


     进去之后,在左侧目录树上找到入口:SQL监控/MDX监控image.png     刚打开看到的是所有的,可不都是你的,选个会话,选完了你就能看到属于你的了:image.png


     跟【秘技一】一样,2234再来一次,重新刷新报表再回到这个页面点个刷新,就能看到对应的SQL了。


秘技三:耗时分析


     这个的入口需要现在系统选项->公共设置开启耗时分析,选择为开启后记得点右下角的保存:image.png


     开启后,以仪表盘为例,可以看到耗时分析的入口:image.png


     如图所示,点开就能看到对应的sql啦:image.png


秘技四:工具栏查看SQL


     即席查询报表,我们工具栏是有个查看SQL的,可以直接点击查看SQL就好啦。image.pngimage.png


     借助秘技拿到SQL后剩下就是去找地方执行了,可以拿去原生SQL数据集或者模型查询中的SQL查询里面执行,毕竟这两个地方比较特别,我们不会对在里面执行的SQL套一层,数据集里面写了啥我们送啥SQL去数据库执行。


     那要是怀疑是产品的问题,也可以换别的数据库工具,但要JDBC方式连接的数据库工具,for example:DBeaver,DBvisualizer等等。


     接下来就是根据执行结果,看看是SQL写的不对,还是实际原始数据有问题,或者是可能设置了数据权限,多拼接了一些条件导致不对等等。


     总的来说,这几个秘技对于旧数据集而言基本够用了,相信你自己!看看SQL借助AI问问,基本都知道为什么我的数据不是我要的了。


来个例子


     说那么多,下面举个简单例子套一套我们的公式。小红说,怎么我这张报表没有数据,但是只是检查查询一张表的字段,数据库也是有数据的。image.png     首先我们来根据上面说的,来获取下我们执行SQL,所属资源ID是报表用的数据集ID,用户时间都对的上,没错,就是这条了,让我们来复制下来,去模型那边的SQL查询看看。image.png     然后我们看,真的没有欸,再看,怎么多了个where条件,而且注释掉也是有数据的,那问题就出现在这里了,报表界面也没看到有啥参数,我们倒回到数据集看看。image.pngimage.png


     数据集也就是一个简单的可视化数据,条件那里也没写东西,那真是奇了怪了,到底哪儿来的呢。image.png       数据集没配置,那这种情况下,就可能是数据源那边配置了数据权限了,配置数据权限后,系统会自动拼接对应条件到where部分,根据实际情况进行过滤。这个时候去数据源那里右键数据权限配置看,欸,还真有,并且编辑进去看就是获取了当前日期,罪魁祸首就是他,那这个时候就是看要是不是不需要这个数据权限,还是改一改了,具体就要看实际业务场景啦。image.pngimage.png     那么以上只是旧数据集,但我们不是还有个数据模型,数据模型又是怎么个事?


  请各位看官敬请期待下篇!!!

发表于 昨天 11:36
好东西!

回复

使用道具 举报

发表于 昨天 11:37
果然是秘技!!!!我就经常遇到类似问题,无从下手,下次可以参考查下了,nice!!!
  •   麦本麦
    是呢!后面小麦还会持续输出,可以持续关注哦~
    昨天 15:10| 回复

回复

使用道具 举报

发表于 昨天 11:38

有了这秘籍,妈妈再也不用担心我的数据了!


回复

使用道具 举报

发表于 昨天 11:39
数据模型篇什么时候出,数据模型出错才无从下手啊

回复

使用道具 举报

发表于 昨天 11:39
耶嘿,摸鱼逛论坛居然发现个好东西?!

回复

使用道具 举报

发表于 昨天 11:41
欧~耶,起飞,帅帅帅

回复

使用道具 举报

发表于 昨天 11:43
上篇看完了,下篇快点发,催更催更!!!

回复

使用道具 举报

发表于 昨天 11:43
原来数据不对还有这么多种原因,之前都是一脸懵逼的,现在总算是有一套好方法可以排查。
感谢发帖人,以后多多发。
顶顶

回复

使用道具 1 举报

发表于 昨天 11:46
感谢大佬,太实用了

回复

使用道具 1 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

22回帖数 0关注人数 344浏览人数
最后回复于:2025-2-16 13:37
快速回复 返回顶部 返回列表