可以通过什么方式获取用户在smartbi操作时相关的知识库执行SQL?
(smartbi v95 版本以上(不含v97)2021年中后版本支持,v97版本2022年3月中旬版本支持)
具体步骤如下:
1、修改系统监控日志级别
管理员角色打开系统监控新增一行lo4j信息日志级别:common.repository.sql DEBUG
填写完成后,点击修改按钮。
2、实时查看执行sql
有两种方式在smartbi界面上实时查看相关的知识库执行sql日志,根据实际需要灵活选择。
(1)系统监控查看
系统监控-日志,点击开始监控,然后用户去smartbi界面操作,再看系统监控输出用户日志 ,就能看到执行了哪些sql
左边一长串的字符串是会话id,同一个用户的会话会一样,[]里面是用户名
上面这个图的用户名是c,代表这个sql是c用户操作产生的
若日志太多 ,可在过滤输入框输入会话id过滤
NOT_LOGGED_IN : 代表还没有登录的会话标识
会话id一致,代表同一个用户在一个客户端上操作的记录。
上图中sql中带有“?”的,其执行时候实际的值在后面的中括号里面,最终的sql需要根据对应字段的数据类型和中括号中的值按顺序替换问号,并确认这个替换的值在sql中需不需要添加单引号。
如果打出来的sql语句没有问号 ,则中括号里面一般是空的。
(2)用户日志查看
当在线用户比较多的时候,系统监控看到的日志可能特别多,容易造成浏览器卡顿,不方便排查,此时如果操作的用户如果有用户日志的操作权限,该用户打开用户日志,点击开始监控,也是可以看到相关的基于知识库执行的sql语句,并且用户日志中看到的sql,都是由当前的用户的操作发起的,不需要进行过滤查找。
3、导出日志
对于步骤2(1)的系统监控查看的日志,如需导出,可通过系统运维-系统日志导出
对于步骤2(2)的用户日志查看到的日志,可直接在用户日志右上角导出所有