整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

详解Toad 菜单说明及一些比较有用的选项-值得收藏

详解Toad 菜单说明及一些比较有用的选项-值得收藏

因为toad功能比较多,特别是新的版本,下面介绍一些有用的菜单,大家可以简单看下,看有没需要的功能点。


菜单说明

新版本 toad 软件中, 比较有用的菜单

1、session 菜单

2、Database 菜单 (很多功能都是重复的)

administrator:

审计, 参数, redo, tablespace 等

monitor:

~ top session finder(监控session),

~ database browser : database 的全部内容, 包括参数, 表空间, 数据文件等

~ database monitor : 动态监视, 包括 logical I/O, session, sga, physical IO, call rates, shared pool, waitevent 等等.

~ server statistics: 包括, waits, latches, sessions 等等

~ session browser : 可以用来 kill session, 另外还有针对 session 的 wait event 等.

~ SGA Trace : 针对 SGA 的使用情况, 详细列出了所有的 sql list.

~ SQL Tracker : 打开这个, 你在toad中的所有操作, 都会有对应的SQL语句被输出.

diagnose:

alert log file, db health_check, log switch frequent, tablespace map

顺便演示下logminer怎么用:

optimize:

~ analyze all objects : 类似 SYS.DBMS_STATS.GATHER_TABLE_STATS 的作用.

~ Explain plan : 执行计划, 一般是先选择一个SQL语句, 然后点工具栏上的小救护车(其实就是这项), 就可以只执行plan.

~ Optimize Current SQL: 调优当前SQL, 貌似有用, 以后实验.

~ Rebuild Multiple Objects : 重建对象, 比如重建索引, 重建表 等.

~ Rebulid table : 重建表, 很详细的设置

3、File菜单

File: 保存, 打开, 打印等等; 文件比对功能

4、Edit 菜单

一些普通的修改选项, 可以选择Editor Options来修改字体等.

5、Grid:

主要是针对查询出来的结果进行另存, 过滤等.

6、SQL Editor

执行编辑sql, 另外可以得到查询语句中所使用的列的结构, control + F9 也可达到效果.

7、Create

create 数据库中的对象.

8、SGA Trace/Optimization

某个用户最近issue的sql语句.

9、其他功能:

Rebuild Table : 其实就是将整个表删除了重建(数据还保留着)

Rebuild Multiple Objects : ( 将对象推到了重建 )

Multiple Object Privileges : 分配和收回权限.

Object Search : 能够搜索出某个用户的所有对象, 包括列column.

Data Subset Wizard: 可以生成脚本一个schema下的对象和数据复制到另外一个对象下, 我已经测试将scott下的所有对象复制到LEON下, 很好用的工具.

HTML Schema Doc Generator: 生成某个Schema的整体的 html 文档.

Tnsnames editor: 修改 tnsname 并且可以生成另一个文件.

ER Diagram : 生成ER图, 可以打印, 可以生成sql语句

Single Object Comparison : 单一对象的比较, 其实就是对象的创建的script之间的比较.

Compare data : 数据比较, 比如两个表的数据比较, 个人感觉用处小, 直接一个 minus 实现了.

Spool SQL : 导出 SQL 语句.

View: 主要是针对当前的schema所有权限等, 显示对应视图.

Session info : 有用, 显示roles, grant情况等.

Reports : 可以生成对象的 report, 格式很漂亮.

Object Palette : 显示当前schema 下的对象

Code Snippets : 函数

SQL Command Recall : 刚才使用过的 sql 语句

Oracle Users List: 当前数据库中的用户

Options: view的一些选项

DBA: 顾名思义, 肯定是针对一些数据库管理方面的内容.

Database Monitor: 各种数据库监视的内容.

Database Probe: 数据库的监测

Health Check: 显示当前数据库的运行情况

Top Session Finder: 显示当前占用资源的一些session, 单击饼状图时, 可以显示 session 和 session 的操作系统的一些信息.

Session Browser: session 连接情况

oracle parameters: 当前数据库 parameter设置.

NLS parameters: NLS 参数设置.

OS Utilities: 操作系统监控工具, 很好用.

Auditing: 针对用户的权限进行审计

Segment Management: 各种存储空间的管理

Undo/Redo: redo 与 undo 的管理

? Data Import/Export: 这个工具应该很有用, 需要再确认.

Server Statistics: server 的运行情况

control files: 显示control file 中的内容及多路复用情况.

Pinned Code: shared pool 中关于锁的控制.

Generate Schema Script: 生成某个用户的所有的对象

Compare Schemas: 对比两个schema

Compare Database: 对比两个数据库

Debug: 针对 pl/sql 的调试, 例如单步跟踪等等.

Team Coding: 团队合作时使用, 比如某个source只能某个人先修改, 然后其他人再修改.


SQL Editor

F2 显示全屏还是显示结果内容

使用绑定变量, select * from EMPLOYEE WHERE employee_id=:EMPID

取消正在运行的sql, 如果长时间运行的话, 在菜单栏绿色运行箭头的右边有个 Cancel 按钮.

F8 SQL RECALL 功能

EDIT 编辑功能, edit tablename F9(运行), 这时出现的结果集就可以编辑了.

desc objectname F9(运行) 显示这个object的定义等等.

像eclpise的alt+/一样, 显示提示信息, 这里提示的是列信息, tablename CTRL-T

format code, 标准格式化代码, 右键->Formating Tools->Formatcode

注释代码, 鼠标选中->右键->Comment block(Uncomment block取消)


SQL Opimization

Explain plans

explain plans : show how Oracle executes a statement (在执行SQL以前就可以看到), 点 “Run Explain Plan for current statement” button 在工具栏里.

另外, toad 会保存这个 explain plan 的结果, 以方便跟调整后的sql语句的explain plan的结果进行比对. 在 view->explain里进行比较. 不过你如果想使用此功能, 必须设置 view->options->oracle->general 打开 Save previous Explain Plan results

其他设备

其他的, 比如 SGA/Trace, session browser 等

AutoTrace

AutoTrace : 打开 autotrace, 在 SQL Editor->右键->AutoTrace, 注意: autotrace需要v$session支持, 这样你就能打开autotrace, 关闭 autotrace 的地方也在这里.

SQL Trace

SQL Trace: (TKPROF) SQL Trace 比 Auto trace 功能更强大, 另外结果文件会保存在 服务器指定的 USER_DUMP_DESC参数所指定的位置. 总之, 这个设置起来可能稍微麻烦一点, 如果真有需要, 再专题看吧.

SGA Trace Optimization

Tools->SGA Trace Optimization

可以通过这个查看已经执行过的sql语句的资源使用情况. 如果需要, 你可以将某个 sql 语句 copy到 SQL Editor 进行编辑.

Session browser: 你可以看哪些session连接到服务器, 也可以 kill session.


Debugger

主要是用来调试 plsql的

  • perform line-by-line debugging and error trapping
  • Trace into other PL/SQL objects
  • Change the values of variables during runtime
  • Set breakpoints and watches
  • view the results of a returned REF cursor

设置 debugger, view->options->procedure Editor->Debugging, 采用默认的设置就可以了

在 procedure Editor->右键->Debug

当你调试完以后, 要将toad上边工具栏上的小昆虫点掉(Toggle compiling with debug) 然后再重新编译一遍.


Database Administration

Toad provides a powerful but easy-to-use interface for managing the many ongoing tasks associated with Oracle database administration. 你可以用 toad 来进行日常的dba管理.

database browser: The database browser reads your TNSNAMEs.ora file, 监控数据库的状态.

Managing Sessions

DBA->Top Session Finder, 这个是按照使用资源的情况来排序.

Managing Tablespaces

3个主要的windows管理 tablespace

dba->segment management->tablespaces

dba->segment Management->Tablespace Map

SchemaBrowser->Tablespace Tab

Checking Extents

dba->segment management->extents

Using Import/Export Tools

dba->data import/export->export/import utility wizards

dba->data import/export->export/data pump export/import utility wizards

Performing SGA Trace Optimization

Tools->SGA Trace Optimization


User Administration

Schema Browser->Users

Schema Browser->Roles

Schema Browser->Resource Groups & Resource Plans

Schema Browser->Policies & PolicyGroups

Schema Browser->Sys Prives

DBA->Auditing->Audit SQL/SYS Privs

DBA->Auditing->Audit Object

Managing Users

Create User and Alter User: 在 create 模板里边有, Schema broswer 选择到user找到对应user, 右键alter就可以修改. 而且还可以克隆这个 user.

On the Tablespace tab, Toad has an option to set your selections for the user’s default and temporary tabespaces as defaults for all future Create user sessions in Toad for the current database.

Compare users

在 schema browser 中找到一个user 右键-> “Compare with another user”

Managing Roles

Schema Browser 找到 role, 然后可以查看细节等.

Managing Resource Groups and Resouorce Plans

Sechema Browser for managing your database’s resource consumer groups nad resource plans.

Managing Policies and Policy Groups

Sechema Browser for managing your database’s policies and policy groups.

Auditing

DBA->Auditing->Audit SQL/SYS Privs

Database->Auditing->Audit Objects


内容比较多,这里主要做个备忘,是不是发现TOAD有很多实用的功能呢?大家有空可以深入研究下。后面会分享更多DBA方面的内容,感兴趣的朋友可以关注一下~

 信贷评分卡中常用的两个库有scorecardpy和Toad。其中scorecardpy是由谢士晨博士开发,Toad是由厚本金融风控团队内部孵化产生的标准评分卡库。本文以Toad官方指导教程为例,讲解如何运用Toad库进行傻瓜式的评分卡开发。

Toad基础教程

参考自Toad库中的Basic Tutorial for Toad.

Toad遵循信用风险记分卡模型开发的一般流程: (1)EDA (2)特征的选择与WOE分箱的结合 (3)模型选择 (4)模型验证 (5)评分卡转换

数据准备

本文使用的数据是著名的德国信用卡数据集。数据预处理包括: (1)将target从'good' / 'bad'替换为0,1; (2)划分训练集测试集; (3)增加一列表示训练和测试的特征。训练集将用于建模,而测试集将仅用于验证。

import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
import toad

data=pd.read_csv('germancredit.csv')
data.replace({'good':0,'bad':1},inplace=True)

print(data.shape) # 1000 data and 20 features 
data.head()

? 划分训练集和测试集:

Xtr,Xts,Ytr,Yts=train_test_split(data.drop('creditability',axis=1),data['creditability'],test_size=0.25,random_state=450)
data_tr=pd.concat([Xtr,Ytr],axis=1)
#增加一列区分训练/测试的特征
data_tr['type']='train'
data_ts=pd.concat([Xts,Yts],axis=1)
data_ts['type']='test'

一、EDA数据处理

? Toad支持常用的特征EDA分析,包括检测缺失值和特征分布。

toad.detector.detect():返回每个特性的EDA报告,包括数据类型、分布、缺失率和惟一值。

toad.detector.detect(data_tr).head(10)

二、特征选择,WOE转换

? Toad可以用来过滤大量的特征,如高缺失率、低iv和高度相关的特征。它还可以使用各种分箱技巧进行分箱和实现WOE转化。

toad.selection.select():用于根据缺失百分比、iv(20箱)和多重共线性(带有VIF和/或自相关)来过滤特征。

? 下面以缺失率大于0.5.IV值小于0.05或者相关性大于0.7(保留较高的特征)来进行特征筛选。

selected_data, drop_lst=toad.selection.select(data_tr,target='creditability', empty=0.5, iv=0.05, corr=0.7, return_drop=True, exclude=['type'])

selected_test=data_ts[selected_data.columns]

print(selected_data.shape)
drop_lst 

? 可以看到,8个特征由于IV值过低被剔除。

toad.quality(dataframe, target):返回每个特征的质量,包括iv、基尼系数和熵。可以帮助我们发现更有用的潜在信息。

quality=toad.quality(data,'creditability')
quality.head(6)

分箱

第一步:分箱

toad.transform.Combiner():可以用来对数值型和类别型变量进行分箱,支持决策树分箱、卡方分箱、最优分箱等。该行代码生成一个Combiner类,这个类有以下方法: combiner().fit(data, y='target', method='chi', min_samples=None, n_bins=None ):分箱,支持卡方、决策树、等频和等宽。 combiner().set_rules(dict):设置箱号。 combiner().transform(data): 将特征的值转化为分箱的箱号。

# 初始化一个combiner类
combiner=toad.transform.Combiner()

# 训练数据并指定分箱方法,其它参数可选
combiner.fit(selected_data,y='creditability',method='chi',min_samples=0.05,exclude='type')

# 以字典形式保存分箱结果
bins=combiner.export() 

#查看每个特征的分箱结果
print('status.of.existing.checking.account:',bins['status.of.existing.checking.account'])
print('credit.amount:',bins['credit.amount'])
print('duration.in.month:', bins['duration.in.month'])

第二步:WOE分箱可视化

toad.plot.badrate_plot(data,target='target', x=None, by=None): 画出不同数据集的每一箱的bad_rate图。这里可以是训练集测试集,也可以不同月份的对比。by后面是纵轴。x是需要对比的维度,比如训练集测试集、不同的月份。 toad.plot.proportion_plot(datacol): 画出一个特征每一箱的比例。

# 根据bad_rate图调整分箱

# 比如查看duration.in.month这个变量的分箱情况
adj_bin={'duration.in.month': [9, 12, 18, 33]}

c2=toad.transform.Combiner()
c2.set_rules(adj_bin)

data_=pd.concat([data_tr,data_ts],axis=0)
temp_data=c2.transform(data_[['duration.in.month','creditability','type']])

from toad.plot import badrate_plot, proportion_plot
badrate_plot(temp_data, target='creditability', x='type', by='duration.in.month') 
proportion_plot(temp_data['duration.in.month'])

? 第一张图是训练集和测试集下每一箱对应的坏样本率,第二张图是每一箱的占比情况。可以看到第一张图中的第一箱和第二箱的bad_rate存在倒挂,说明bad_rate不单调,需要进行调整。可以尝试将第一箱和第二箱进行合并。

# 假定将第一箱、第二箱合并
adj_bin={'duration.in.month': [9, 18,33]}
c2.set_rules(adj_bin)

temp_data=c2.transform(data_[['duration.in.month','creditability','type']])
badrate_plot(temp_data, target='creditability', x='type', by='duration.in.month')

adj_bin={'duration.in.month': [9, 18,33],'foreign.worker': [['no'], ['yes']]}

? 调整之后可以看到分箱的bad_rate大致呈现单调的趋势。

第三步:分箱转化

toad.transform.WOETransformer():对分箱后的数据进行WOE转化 WOETransformer().fit_transform(data, y_true, exclude=None):

#设置分箱号 
combiner.set_rules(adj_bin)

#将特征的值转化为分箱的箱号。
binned_data=combiner.transform(selected_data)

#计算WOE
transer=toad.transform.WOETransformer()

#对WOE的值进行转化,映射到原数据集上。对训练集用fit_transform,测试集用transform.
data_tr_woe=transer.fit_transform(binned_data, binned_data['creditability'], exclude=['creditability','type'])
data_ts_woe=transer.transform(combiner.transform(selected_test))

模型选择

toad.selection.stepwise():可以通过向前、向后、双向选择来进行特征选择,使用AIC/BIC/KS/AUC作为选择标准。

final_data=toad.selection.stepwise(data_tr_woe.drop('type',axis=1),target='creditability',direction='both', criterion='aic')

final_test=data_ts_woe[final_data.columns]
print(final_data.shape)
print(final_data.columns)

? 可以看到经过模型选择,15个特征减少为8个特征。

建模

Xtr=final_data.drop('creditability',axis=1)
Ytr=final_data['creditability']
Xts=final_test.drop('creditability',axis=1)
Yts=final_test['creditability']

lr=LogisticRegression()
lr.fit(Xtr, Ytr)

模型评估和验证

  1. 常用的评估指标如KS、F1、AUC
from toad.metrics import KS, F1, AUC

EYtr_proba=lr.predict_proba(Xtr)[:,1]
EYtr=lr.predict(Xtr)

print('Training error')
print('F1:', F1(EYtr_proba,Ytr))
print('KS:', KS(EYtr_proba,Ytr))
print('AUC:', AUC(EYtr_proba,Ytr))

EYts_proba=lr.predict_proba(Xts)[:,1]
EYts=lr.predict(Xts)

print('\nTest error')
print('F1:', F1(EYts_proba,Yts))
print('KS:', KS(EYts_proba,Yts))
print('AUC:', AUC(EYts_proba,Yts))

  1. PSI 比较训练集和测试集各变量的稳定性。
psi=toad.metrics.PSI(final_data,final_test)
psi.sort_values(0,ascending=False) # Further tune the unstable feature if any 

  1. KS
tr_bucket=toad.metrics.KS_bucket(EYtr_proba,Ytr,bucket=10,method='quantile')
tr_bucket

分数转换

card=toad.scorecard.ScoreCard(combiner=combiner, transer=transer , C=0.1) 
card.fit(Xtr, Ytr)
card.export(to_frame=True,).head(10)

? 可以输出每个变量的得分情况。

A complete tutorial

? 以下参考自A complete tutorial,对基础版中未提到的部分进行补充。

  1. 卡方分箱时加上min_samples参数。
    ? 不设置min_samples参数的话,默认分为10箱,分箱结果由于bad_rate不单调而不能直接使用,不过可以手动对分箱进行调整。
combiner=toad.transform.Combiner()
combiner.fit(data_tr2,y='creditability',method='chi',min_samples=0.05)
combiner.export()
  1. 使用bin_plot()画图对分箱进行调整
    ? 使用bin_plot对样本集分箱进行调整,使用bad_rate验证分箱在测试集或者跨时间验证集上的稳定性。
from toad.plot import bin_plot

transformed=combiner.transform(data_tr2,labels=True)
#传给bin_plot的数据必须是分箱转化之后的
bin_plot(transformed,x='duration.in.month',target='creditability')

? 柱形图表示每一箱的占比,折线图表示每一箱的坏样本率。一般折线图要呈现出单调的趋势。 ? 再看一个对类别型变量分箱进行调整的例子。对类别型变量进行分箱的时候,易出现某个类别只有好样本/坏样本,这样对计算WOE值造成问题,所以需要将只有好/坏样本的箱进行合并。

#分箱合并
c2.set_rules({'purpose': [['domestic appliances','retraining','car (used)'], ['radio/television'], ['furniture/equipment','repairs','business','car (new)'], ['education','others']]})
bin_plot(c2.transform(data_tr2[['purpose','creditability']],labels=True),x='purpose',target='creditability')

总结:Toad库的出现使得评分卡建模越来越傻瓜式,技术是通用的,但是背后的业务理解需要在实践中不断加深理解。评分卡建模的代码基本可以固化成一套,接下来就是根据业务理解去调整模型。总之,任何脱离业务的模型都是空中楼阁,只有带来实际价值才是王道。

Toad库相关的文档:

github主页: https://github.com/amphibian-dev/toad 文档: https://toad.readthedocs.io 中文文档: https://toad.readthedocs.io/en/dev/tutorial_chinese.html 演示: https://toad.readthedocs.io/en/latest/tutorial.html whl下载地址: https://pypi.org/simple/toad/

【作者】:Labryant

【原创公众号】:风控猎人

【简介】:某创业公司策略分析师,积极上进,努力提升。乾坤未定,你我都是黑马。

【转载说明】:转载请说明出处,谢谢合作!~

网上有很多关于设置toad命令行补全的文章,发现根本不好使,下面分享一下可行的设置方法

一、安装oracle客户端

1、到ORACLE 网站下载instantclient客户端

https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

2、Oracle Instatnt Client解压至指定目录(自定义)如本例中放到如下目录

D:\program\instantclient_18_5

3、配置系统变量

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
TNS_ADMIN=D:\program\instantclient_18_5\
LD_LIBRARY_PATH=D:\program\instantclient_18_5
SQLPATH=D:\program\instantclient_18_5
ORACLE_HOME=D:\program\instantclient_18_5
Path(在变量中加入) D:\program\instantclient_18_5

5、添加配置文件sqlnet.ora和tnsnames.ora

sqlnet.ora代码如下:

# sqlnet.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
?
NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)
?
ADR_BASE=D:\program\instantclient_18_5

tnsnames.ora代码如下:

ORCL=(DESCRIPTION=   (ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx.xx)(PORT=1521))
    (CONNECT_DATA=     (SERVER=DEDICATED)
      (SERVICE_NAME=orcl)
    )
  )


二、设置toad

1、设置方法:

(1)view-->toad options-->editor-->Toad Insight-->Toad Insight(打勾),Delay pop-ups(值设置小些如100)


(2)在查查询的对象前面加模式前缀


(3)体验toad的命令提示的快乐吧~