成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

宜信開源|數(shù)據(jù)庫審核軟件Themis的規(guī)則解析

longmon / 805人閱讀

摘要:導(dǎo)語是宜信公司團(tuán)隊(duì)開發(fā)的一款數(shù)據(jù)庫審核產(chǎn)品,可幫助開發(fā)人員快速發(fā)現(xiàn)數(shù)據(jù)庫質(zhì)量問題,提升工作效率。此平臺(tái)可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫進(jìn)行多維度對(duì)象結(jié)構(gòu)文本執(zhí)行計(jì)劃及執(zhí)行特征的審核,用以評(píng)估對(duì)象結(jié)構(gòu)設(shè)計(jì)質(zhì)量及運(yùn)行效率。閥值閥值,代表違反規(guī)則的扣分上限。

導(dǎo)語

Themis是宜信公司DBA團(tuán)隊(duì)開發(fā)的一款數(shù)據(jù)庫審核產(chǎn)品,可幫助DBA、開發(fā)人員快速發(fā)現(xiàn)數(shù)據(jù)庫質(zhì)量問題,提升工作效率。

此平臺(tái)可實(shí)現(xiàn)對(duì)Oracle、MySQL數(shù)據(jù)庫進(jìn)行多維度(對(duì)象結(jié)構(gòu)、SQL文本、執(zhí)行計(jì)劃及執(zhí)行特征)的審核,用以評(píng)估對(duì)象結(jié)構(gòu)設(shè)計(jì)質(zhì)量及SQL運(yùn)行效率??蓭椭鶧BA及開發(fā)人員,快速發(fā)現(xiàn)定位問題;并提供部分輔助診斷能力,提升優(yōu)化工作效率。全部操作均可通過WEB界面進(jìn)行,簡單便捷。此外,為了更好滿足個(gè)性化需求,平臺(tái)還提供了擴(kuò)展能力,用戶可根據(jù)需要自行擴(kuò)展。

開源地址: https://github.com/CreditEaseDBA

點(diǎn)擊查看Themis的部署攻略

一、規(guī)則解析

規(guī)則解析分為四塊:對(duì)象類規(guī)則解析、文本類規(guī)則解析、執(zhí)行計(jì)劃類規(guī)則解析、統(tǒng)計(jì)信息類規(guī)則解析。每個(gè)模塊都可以使用手動(dòng)或自動(dòng)的方式進(jìn)行。

1.1 對(duì)象類規(guī)則解析 手動(dòng)解析oracle對(duì)象類信息

配置data/analysis_o_obj.json文件

{
    "module": "analysis",
    "type": "OBJ",
    "db_server": "127.0.0.1",
    "db_port": 1521,
    "username": "schema",
    "db_type": "O",
    "rule_type": "OBJ",
    "rule_status": "ON",
    "create_user": "system",
    "task_ip": "127.0.0.1",
    "task_port": 1521
}

配置db_server、db_port、username、create_user、task_ip選項(xiàng),其他的保持默認(rèn)即可,username是需要審核的目標(biāo)對(duì)象的名字。

python command.py -m analysis_o_obj -c data/analysis_o_obj.json

使用上面的命令開始采集obj數(shù)據(jù)

手動(dòng)解析mysql對(duì)象類數(shù)據(jù)

配置data/analysis_m_obj.json文件

{
    "module": "mysql",
    "type": "OBJ",
    "db_server": "127.0.0.1",
    "db_port": 3306,
    "username": "schema",
    "db_type": "mysql",
    "rule_type": "OBJ",
    "rule_status": "ON",
    "create_user": "mysqluser",
    "task_ip": "127.0.0.1",
    "task_port": 3306
}

配置db_server、db_port、username、create_user、task_ip、db_port選項(xiàng),其他的保持默認(rèn)即可。

運(yùn)行命令:

python command.py -m analysis_m_obj -c data/analysis_m_obj.json

oracle和mysql對(duì)象類規(guī)則是不需要依賴于采集的數(shù)據(jù)的,它是直接連接到數(shù)據(jù)庫里進(jìn)行查詢的,由于有的庫較大可能時(shí)間會(huì)比較久,建議在業(yè)務(wù)低峰期進(jìn)行。

1.2 文本類規(guī)則解析 手動(dòng)解析oracle文本類規(guī)則

配置data/analysis_o_text.json文件

{
    "module": "analysis",
    "type": "TEXT",
    "username": "schema",
    "create_user": "SYSTEM",
    "db_type": "O",
    "sid": "cedb",
    "rule_type": "TEXT",
    "rule_status": "ON",
    "hostname": "127.0.0.1",
    "task_ip": "127.0.0.1",
    "task_port": 1521,
    "startdate": "2017-02-23",
    "stopdate": "2017-02-23"
}

配置sid、username、create_user、task_ip、hostname、startdate、stopdate選項(xiàng),由于數(shù)據(jù)是按天采集的,因此暫時(shí)只支持startdate和stopdate保持一致,hostname和task_ip可以保持一致,其他的保持默認(rèn)即可。

執(zhí)行下面的命令即可以進(jìn)行規(guī)則解析:

python command.py -m analysis_o_plan -c data/analysis_o_plan.json
手動(dòng)解析mysql文本類規(guī)則

配置data/oracle_m_text.json文件

    "module": "analysis",
    "type": "TEXT",
    "hostname_max": "127.0.0.1:3306",
    "username": "schema",
    "create_user": "mysqluser",
    "db_type": "mysql",
    "rule_type": "TEXT",
    "rule_status": "ON",
    "task_ip": "127.0.0.1",
    "task_port": 3306,
    "startdate": "2017-02-21 00:00:00",
    "stopdate": "2017-02-22 23:59:00"
}

配置username、create_user、taskip、taskport、hostname、hostname_max、startdate、stopdate選項(xiàng),hostname和task_ip可以保持一致,其他的保持默認(rèn)即可。

運(yùn)行下面的命令即可以進(jìn)行規(guī)則解析:

python command.py -m analysis_m_text -c data/analysis_m_text.json

上面兩步中的username為需要審核的對(duì)象。

1.3 執(zhí)行計(jì)劃類規(guī)則解析 oracle plan類型規(guī)則解析

配置data/analysis_o_plan.json文件

 {
        "module": "analysis",
        "type": "SQLPLAN",
        "capture_date": "2017-02-23",
        "username": "schema",
        "create_user": "SYSTEM",
        "sid": "cedb",
        "db_type": "O",
        "rule_type": "SQLPLAN",
        "rule_status": "ON",
        "task_ip": "127.0.0.1",
        "task_port": 1521
 }

主要是對(duì)capture_date,username, create_user, sid,db_type,rule_type,task_ip,task_port參數(shù)進(jìn)行配置,type分為SQLPLAN,SQLSTAT,TEXT,OBJ四種類型,rule_type的類型同SQLPLAN,只不過一個(gè)是代表模塊的類型,一個(gè)代表規(guī)則的類型,db_type分為"O"和“mysql”兩種類型,分別代表oracle和mysql,capture_date為我們欠扁配置的數(shù)據(jù)的抓取日期。

python command.py -m analysis -c data/analysis_o_plan.json

運(yùn)行上面的命令即可生成解析結(jié)果。

mysql plan規(guī)則解析

配置data/analysis_m_plan.json文件

  {
        "module": "analysis",
        "type": "SQLPLAN",
        "hostname_max": "127.0.0.1:3306",
        "db_server": "127.0.0.1",
        "db_port": 3306,
        "username": "schema",
        "db_type": "mysql",
        "rule_status": "ON",
        "create_user": "mysqluser",
        "task_ip": "127.0.0.1",
        "rule_type": "SQLPLAN",
        "task_port": 3306,
        "startdate": "2017-02-21 00:00:00",
        "stopdate": "2017-02-22 23:59:00"
    }

type類型的含義同上面oracle,hostname_max為mysql的ip:端口號(hào)的形式,每一個(gè)hostname_max代表一個(gè)mysql實(shí)例,startdate和stopdate需要加上時(shí)、分、秒,這一點(diǎn)同oracle不大一樣。

python command.py -m analysis -c data/analysis_m_plan.json

然后運(yùn)行上面的命令進(jìn)行mysql的plan的規(guī)則解析。

1.4 執(zhí)行特征類規(guī)則解析 oracle stat類型規(guī)則解析

配置data/analysis_o_stat.json文件

{
    "module": "analysis",
    "type": "SQLSTAT",
    "capture_date": "2017-02-23",
    "username": "schema",
    "create_user": "SYSTEM",
    "sid": "cedb",
    "db_type": "O",
    "rule_type": "SQLSTAT",
    "rule_status": "ON",
    "task_ip": "127.0.0.1",
    "task_port": 1521
}

配置sid、username、create_user、task_ip、capture_date選項(xiàng),其他保持默認(rèn)即可。

運(yùn)行命令:

python command.py -m analysis_o_stat -c data/analysis_o_stat.json

進(jìn)行數(shù)據(jù)采集。

mysql stat類型規(guī)則解析

配置文件data/analysis_m_text.json

{
    "module": "analysis",
    "type": "SQLSTAT",
    "hostname_max": "127.0.0.1:3306",
    "db_server": "127.0.0.1",
    "db_port": 3306,
    "username": "schema",
    "db_type": "mysql",
    "rule_status": "ON",
    "create_user": "mysqluser",
    "task_ip": "127.0.0.1",
    "rule_type": "SQLSTAT",
    "task_port": 3306,
    "startdate": "2017-02-21 00:00:00",
    "stopdate": "2017-02-22 23:59:00"
}

配置username、create_user、task_ip、task_port、hostname、hostname_max、startdate、stopdate選項(xiàng),hostname和task_ip可以保持一致,其他的保持默認(rèn)即可。

運(yùn)行命令:

python command.py -m analysis_m_text -c data/analysis_m_text.json

進(jìn)行數(shù)據(jù)采集。

1.5 自動(dòng)規(guī)則解析

上面介紹的手動(dòng)規(guī)則解析都是可以進(jìn)行測試,或者在一些特殊情況下使用,大部分情況我們會(huì)使用自動(dòng)規(guī)則解析。

自動(dòng)規(guī)則解析我們使用celery來完成,關(guān)于celery 的使用,請參考http://docs.celeryproject.org...。

下面是常用的一些關(guān)于celery的命令:

開啟規(guī)則解析
celery -A task_other worker -E -Q sqlreview_analysis -l info
開啟任務(wù)導(dǎo)出
celery -A task_exports worker -E -l info
開啟obj信息抓取
celery -A task_capture worker -E -Q sqlreview_obj -l debug -B -n celery-capture-obj
開啟flower
celery flower --address=0.0.0.0 --broker=redis://:password@127.0.0.1:6379/
開啟plan、stat、text抓取
celery -A task_capture worker -E -Q sqlreview_other -l info -B -n celery-capture-other

最后我們會(huì)將規(guī)則解析都加入到supervisor托管,然后通過web界面生成任務(wù),然后用celery進(jìn)行調(diào)度,通過flower查看任務(wù)執(zhí)行狀態(tài)。

關(guān)于具體使用請參考supervisor的配置。

二、內(nèi)置規(guī)則說明

平臺(tái)的核心就是規(guī)則。規(guī)則是一組過濾條件的定義及實(shí)現(xiàn)。規(guī)則集的豐富程度,代表了平臺(tái)的能力。平臺(tái)也提供了擴(kuò)展能力,用戶可自行定義規(guī)則。 從分類來看,規(guī)則可大致分為幾類。

2.1 規(guī)則分類

從數(shù)據(jù)庫類型來區(qū)分,規(guī)則可分為Oracle、MySQL。不是所有規(guī)則都區(qū)分?jǐn)?shù)據(jù)庫,文本類的規(guī)則就不區(qū)分。

從復(fù)雜程度來區(qū)分,規(guī)則可分為簡單規(guī)則和復(fù)雜規(guī)則。這里的簡單和復(fù)雜,實(shí)際是指規(guī)則審核的實(shí)現(xiàn)部分。簡單規(guī)則是可以描述為mongodb或關(guān)系數(shù)據(jù)庫的一組查詢語句;而復(fù)雜規(guī)則是需要在外部通過程序體實(shí)現(xiàn)的。

從審核對(duì)象角度來區(qū)分,規(guī)則可分為對(duì)象類、文本類、執(zhí)行計(jì)劃類和執(zhí)行特征類。

2.2 規(guī)則參數(shù)

規(guī)則可以包含參數(shù)。例如:執(zhí)行計(jì)劃規(guī)則中,有個(gè)是大表掃描。這里就需要通過參數(shù)來限定大表的定義,可通過物理大小來指定。

2.3 規(guī)則權(quán)重及閥值

權(quán)重 權(quán)重,代表違反規(guī)則,一次扣幾分??筛鶕?jù)自身情況進(jìn)行調(diào)節(jié)。

閥值 閥值,代表違反規(guī)則的扣分上限。這里主要是為了避免違反單一規(guī)則過多,導(dǎo)致忽略了其他規(guī)則。

規(guī)則權(quán)重及扣分,最終會(huì)累積為一個(gè)總的扣分,平臺(tái)會(huì)按百分制進(jìn)行折算。通過這種方式,可起到一定的量化作用。

2.4 規(guī)則_對(duì)象類(Oracle部分)

2.5 規(guī)則_對(duì)象類(MySQL部分)

2.6 規(guī)則_執(zhí)行計(jì)劃類(Oracle部分)

2.7 規(guī)則_執(zhí)行計(jì)劃類(MySQL部分)

2.8 規(guī)則_執(zhí)行特征類(Oracle部分)

2.9 規(guī)則_執(zhí)行特征類(MySQL部分)

2.10 規(guī)則_文本類

三、加入開發(fā)

有問題可以直接在 https://github.com/CreditEase... 提出。

本文選自:wiki:https://tuteng.gitbooks.io/th...。
由于篇幅關(guān)系內(nèi)容有所調(diào)整,請點(diǎn)擊鏈接查看原文。

來源:宜信技術(shù)學(xué)院

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/18006.html

相關(guān)文章

  • 宜信開源|數(shù)據(jù)庫審核軟件Themis部署攻略

    摘要:一介紹是宜信公司團(tuán)隊(duì)開發(fā)的一款數(shù)據(jù)庫審核產(chǎn)品,可幫助開發(fā)人員快速發(fā)現(xiàn)數(shù)據(jù)庫質(zhì)量問題,提升工作效率。此平臺(tái)可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫進(jìn)行多維度對(duì)象結(jié)構(gòu)文本執(zhí)行計(jì)劃及執(zhí)行特征的審核,用以評(píng)估對(duì)象結(jié)構(gòu)設(shè)計(jì)質(zhì)量及運(yùn)行效率。執(zhí)行計(jì)劃指數(shù)據(jù)庫中的執(zhí)行計(jì)劃。 一、介紹 Themis是宜信公司DBA團(tuán)隊(duì)開發(fā)的一款數(shù)據(jù)庫審核產(chǎn)品,可幫助DBA、開發(fā)人員快速發(fā)現(xiàn)數(shù)據(jù)庫質(zhì)量問題,提升工作效率。其名稱源自希臘神話中的正義...

    fsmStudy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<