数据库运维平台~查询模块

时间:2022-06-14 02:09:09

一简介 整体梳理下查询平台所需要的功能
二 目标
   使用人员:研发
   目标数据库: 从库
三 功能选择
   1 普通sql语句查询只能支持三种查询
        1 select * from limit n 因为要返回前端展示,所以N必须限制
        2 select count()/sum() 聚合函数因为只返回总数,所以无需限制
        3 explain select 支持生成explain计划树
   2 主从延时判断
       因为目标查询库是从库,所以当主从延时的情况下,查询是不准确的,需要手动确认,这点非常重要,我们就遇到过这种情况
   3 表索引查询
      通过show index from的模式 查看 表的索引.这也是查询平台所必须的
   4 csv导出功能
       1 设计中间下载服务器,比如nginx提供前端下载功能
       2 由于python直接查询后台并写入csv文件,所以无需限制sql语句.
       3 随机生成文件名,然后返回到前端提供下载即可
四 其他注意
      1 创建只能执行explain/show/select的用户,防止出现注入危险
       2 不止要在vue,后端drf也要做相关策略,防止通过api接口进行注入
五 用户日志记录
     1 通过ldap登录,然后在提交查询时,将用户行为保存在表中
      2 用户行为表采用按照时间倒叙显示,方便查询