作者:孫健、張強(qiáng)
孫健,愛可生研發(fā)工程師,負(fù)責(zé) SQLE 相關(guān)開發(fā);張強(qiáng):愛可生研發(fā)中心成員,后端研發(fā)工程師,目前負(fù)責(zé) DMP 產(chǎn)品 Redis 相關(guān)業(yè)務(wù)開發(fā)。
一. SQLE 介紹
SQLE 是一款由愛可生開源社區(qū)發(fā)起,面向數(shù)據(jù)庫(kù)開發(fā)與管理人員,實(shí)現(xiàn)了 SQL 的「開發(fā)」-「測(cè)試」-「上線」等全流程覆蓋,資源與權(quán)限精細(xì)化管理,兼顧簡(jiǎn)潔與高效,易維護(hù)、易擴(kuò)展的的開源項(xiàng)目,旨在為用戶提供一套的安全可靠、自主可控的 SQL 質(zhì)量管控方案。
在二月份發(fā)布的 1.2202.0 版本中:
改造了用戶系統(tǒng),新增用戶組和操作權(quán)限;
增加對(duì)工單審核結(jié)果進(jìn)行評(píng)分的功能;
增加審核任務(wù),支持 MySQL 的庫(kù)表結(jié)構(gòu)、Oracle 的 TopSQL以及 Java 應(yīng)用的 SQL 抓取和審核;
增加了 Db2 審核插件,支持 Db2 審核工單并上線;
新增了 37 條 MySQL 審核規(guī)則,如檢查 DDL 是否創(chuàng)建了冗余的索引;
其他體驗(yàn)優(yōu)化和 Bug 修復(fù)。
二. Java 應(yīng)用審核介紹
(友情提示:此為企業(yè)版功能)考慮到很多用戶在實(shí)際生產(chǎn)中已經(jīng)部署了大量的、以 Java 為基礎(chǔ)的應(yīng)用和服務(wù),并且某些已經(jīng)涉及到了極其重要、不可中斷的核心業(yè)務(wù)。從 1.2202.0 版本開始,SQLE 開始支持 Java 應(yīng)用的 SQL 審核。并且在完成核心功能的基礎(chǔ)上,支持 Java 應(yīng)用零成本接入 。
SQLE 的 Java 審核特性如下:
支持無侵入式的業(yè)務(wù)集成,用戶可以直接以環(huán)境變量的方式運(yùn)行來啟動(dòng) Java 應(yīng)用,直接接入 SQLE 而無需修改 Java 業(yè)務(wù)代碼,減少了用戶接入成本;
支持應(yīng)用 SQL 的自動(dòng)采集和統(tǒng)計(jì),用戶可以在 SQLE 上通過語(yǔ)句池頁(yè)面統(tǒng)覽應(yīng)用內(nèi)的 SQL 的分類與統(tǒng)計(jì),迅速掌握應(yīng)用內(nèi) SQL 的情況;
支持手動(dòng)或自動(dòng)審核 SQL ,用戶可以在審核報(bào)告中知曉應(yīng)用的 SQL 是否符合預(yù)設(shè)的審核規(guī)則,無論是開發(fā)人員還是 DBA 都能實(shí)時(shí)了解正在運(yùn)行的業(yè)務(wù) SQL 執(zhí)行狀況。
三. 效果展示
1. 事先部署好環(huán)境、需要接入的 Java 應(yīng)用以及對(duì)應(yīng)的數(shù)據(jù)庫(kù),并添加為數(shù)據(jù)源。為了演示,此處 Java 項(xiàng)目為 https://gitee.com/surveyking/surveyking ;
2. 創(chuàng)建 Java 應(yīng)用的審核任務(wù);

3. 啟動(dòng)應(yīng)用程序;
SQLE_COLLECT_ENABLE=true \SQLE_HOST=XX.XX.XX.XX:10000 \
SQLE_TASK_NAME=surveryking_test \
SQLE_TASK_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJqd19hcHAiLCJleHAiOjE2NzcyMjYxNzcsIm5hbWUiOiJhZG1pbiJ9.3d0pA1hiVnFEWJokSFBwCT8d1pKOYV6SViENj4GFqgI \
java -jar surveyking-v0.3.0-beta.4.jar \
--server.port=1991 \
--spring.datasource.url=jdbc:mysql://XX.XX.XX.XX:3306/surveyking \
--spring.datasource.username=root \
--spring.datasource.password=xxxxxx \
& >>/opt/surveyking/std.log
4. 查看 SQLE 審核任務(wù)詳情界面,可以看到目前應(yīng)用已經(jīng)執(zhí)行的 SQL ;

5. 查看審核報(bào)告,用戶可以通過審核任務(wù)的審核報(bào)告了解到應(yīng)用的 SQL 是否符合預(yù)設(shè)審核規(guī)則以便及時(shí)作出調(diào)整。

6. 在示例 Java 應(yīng)用主頁(yè)創(chuàng)建一個(gè)用戶,然后便可以在審核任務(wù)對(duì)應(yīng)的 SQLE 語(yǔ)句池內(nèi)觀察到所對(duì)應(yīng)的 INSERT 語(yǔ)句。

7. 同時(shí),用戶可以從語(yǔ)句池內(nèi)頁(yè)面迅速地感知到應(yīng)用內(nèi)執(zhí)行的 SQL 的語(yǔ)句分類和統(tǒng)計(jì)情況。

綜合以上的示例步驟,Java 應(yīng)用零成本地接入了 SQLE。開發(fā)人員和 DBA 可以通過「審核報(bào)告」、「審核任務(wù)的 SQL 語(yǔ)句池」等功能完全掌握應(yīng)用內(nèi)的 SQL 審核結(jié)果、執(zhí)行情況以及統(tǒng)計(jì)信息,完成了從「開發(fā)」直至「上線」這一過程中的 SQL 質(zhì)量管控。
?
如果想進(jìn)一步了解 SQLE 的更多功能與特性,請(qǐng)?jiān)L問以下地址:
| 類型 | 地址 |
|---|---|
| 版本庫(kù) | https://github.com/actiontech/sqle |
| 文檔 | https://actiontech.github.io/sqle-docs-cn/ |
| 發(fā)布信息 | https://github.com/actiontech/sqle/releases |
審核編輯:湯梓紅
電子發(fā)燒友App















































評(píng)論