MogDB SQLdiag 使用指南

本文出处:https://www.modb.pro/db/411957

前提条件

需要保证用户提供训练数据。

如果用户通过提供的工具收集训练数据,则需要启用 WDR 功能,涉及到的参数为 track_stmt_stat_level 和 log_min_duration_statement,具体情况见下面小节。

为保证预测准确率,用户提供的历史语句日志应尽可能全面并具有代表性。

按照要求配置 python 3.6+环境及其依赖。

环境配置

本功能运行环境要求 Python 3.6 版本及以上,需要的第三方依赖包记录在 requirements.txt 文件中,可以通过 pip install 命令安装依赖,如:

pip install requirements.txt

SQL 流水采集方法

本工具需要用户提前准备数据,训练数据格式如下,每个样本通过换行符分隔:

SQL,EXECUTION_TIME

预测数据格式如下:

SQL

其中 SQL 表示SQL 语句的文本,EXECUTION_TIME 表示SQL 语句的执行时间,样例数据见 sample_data 中的 train.csv 和 predict.csv。

用户可以按照要求格式自己收集训练数据,工具也提供了脚本自动采集(load_sql_from_rd),该脚本基于 WDR 报告获取 SQL 信息,涉及到的参数有 log_min_duration_statement 和 track_stmt_stat_level:

其中 log_min_duration_statement 表示慢 SQL 阈值,如果为 0 则全量收集,时间单位为毫秒;

track_stmt_stat_level 表示信息捕获的级别,建议设置为 track_stmt_stat_level=‘L0,L0’

参数开启后,可能占用一定的系统资源,但一般不大。持续的高并发场景可能产生 5%以内的损耗,数据库并发较低的场景,性能损耗可忽略。

使用脚本获取训练集方式:

load_sql_from_wdr.py [-h] --port PORT --start_time START_TIME

--finish_time FINISH_TIME [--save_path SAVE_PATH]

例如:

python load_sql_from_wdr.py --start_time "2021-04-25 00:00:00" --finish_time "2021-04-26 14:00:00" --port 5432 --save_path ./data.csv

操作步骤

提供历史日志以供模型训练

进行训练与预测操作:

基于模板法的训练与预测:

python main.py [train, predict] -f FILE --model template --model-path template_model_path

基于DNN的训练与预测:

python main.py [train, predict] -f FILE --model dnn --model-path dnn_model_path

使用方法示例

在本工具的根目录中,执行下列语句可以实现对应功能。

使用提供的测试数据进行模板化训练:

python main.py train -f ./sample_data/train.csv --model template --model-path ./template

使用提供的测试数据进行模板化预测:

python main.py predict -f ./sample_data/predict.csv --model template --model-path ./template --predicted-file ./result/t_result

使用提供的测试数据进行模板化模型更新:

python main.py finetune -f ./sample_data/train.csv --model template --model-path ./template

使用提供的测试数据进行 DNN 训练:

python main.py train -f ./sample_data/train.csv --model dnn --model-path ./dnn_model

使用提供的测试数据进行 DNN 预测:

python main.py predict -f ./sample_data/predict.csv --model dnn --model-path ./dnn_model --predicted-file

使用提供的测试数据进行 DNN 模型更新:

python main.py finetune -f ./sample_data/train.csv --model dnn --model-path ./dnn_mo

MogDB SQLdiag 使用指南的更多相关文章

  1. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  2. UE4新手之编程指南

    虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...

  3. JavaScript权威指南 - 对象

    JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...

  4. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  5. const extern static 终极指南

    const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. co ...

  6. Atitit.研发管理软件公司的软资产列表指南

    Atitit.研发管理软件公司的软资产列表指南 1. Isv模型下的软资产1 2. 实现层面implet1 3. 规范spec层1 4. 法则定律等val层的总结2 1. Isv模型下的软资产 Sof ...

  7. HA 高可用软件系统保养指南

    又过了一年 618,六月是公司一年一度的大促月,一般提前一个月各系统就会减少需求和功能的开发,转而更多去关注系统可用性.稳定性和管控性等方面的非功能需求.大促前的准备工作一般叫作「备战」,可以把线上运 ...

  8. 第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南

    欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...

  9. Visual Studio Code 配置指南

    Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.在我看来它是「一款完美的编辑器」. 本文是有关 VS Code 的特性介绍与配置指 ...

  10. Web API 入门指南 - 闲话安全

    Web API入门指南有些朋友回复问了些安全方面的问题,安全方面可以写的东西实在太多了,这里尽量围绕着Web API的安全性来展开,介绍一些安全的基本概念,常见安全隐患.相关的防御技巧以及Web AP ...

随机推荐

  1. Redis项目常见解决方案

    ## 1. 缓存预热 在项目启动,或者服务器重启后, 因为请求量较大, 此时对关系型数据库的访问量就有可能超标,导致服务卡顿,宕机, 所以在启动前应该对缓存进行预热: 前置准备工作: 日常例行统计数据 ...

  2. Zabbix Agent item监控项讲解

    前言 agent与snmp是Zabbix两种重要的监控方式,这一期主要介绍Zabbix Agent item监控项..Zabbix agent分为主动代理.被动代理,配置item类型时,可以选择需要的 ...

  3. KEIL5新建工程0810

    在保存各种项目的文件夹内创建一个项目文件夹1新建工程到文件夹1 选择芯片添加工程的必要文件(固件库) STM32程序是从启动文件开始,复制这些文件到文件夹A的新建Start文件夹下 stm32f10x ...

  4. JavaFx实现倒计时按钮组件(类似发送激活码)

    原文地址: JavaFx实现倒计时按钮组件(类似发送激活码) - Stars-One的杂货小窝 本文基于TornadoFx框架进行编写,封装工具代码是kotlin版本 然后也是顺便把这个封装成了sta ...

  5. 算法研究之快速排序java版

    很早之前就已经接触过快速排序算法了,面试当中也屡屡被问到,虽然明白其原理,但从未真正的用代码敲出来. 写关于算法的代码之前一定要原理想明白,不然就是盲目,在参考有关资料及自己的沉思之后,写出如下代码, ...

  6. 反编译和逆向出现:java.lang.VerifyError(新问题样本)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  7. 建民的JAVA课堂

    import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { String ...

  8. CSS(复合选择器、显示模式、背景属性)

    一.emmet语法 1.简介 Emmet语法的前身是Zen coding,它使用缩写,来提高html/css的编写速度, Vscode内部已经集成该语法. 快速生成HTML结构语法 快速生成CSS样式 ...

  9. Python 合并Excel数据 (Excel文件单sheet)

    一.Python批量合并Excel数据<方法1> import pandas as pd import glob import os # 使用glob.glob函数获取指定目录下所有以.x ...

  10. AI金融预测领域综述文章筛选,附论文及代码链接,2021年版

    21年的综述最近读了3篇,总结笔记如下: (2021)Systematic Literature Review: Stock Price Prediction Using Machine Learni ...