作者:孫健、張強
孫健,愛可生研發(fā)工程師,負責 SQLE 相關開發(fā);張強:愛可生研發(fā)中心成員,后端研發(fā)工程師,目前負責 DMP 產(chǎn)品 Redis 相關業(yè)務開發(fā)。
本文來源:原創(chuàng)投稿
* 愛可生開源社區(qū)出品,原創(chuàng)內(nèi)容未經(jīng)授權不得隨意使用,轉(zhuǎn)載請聯(lián)系小編并注明來源。
一. SQLE 介紹
SQLE 是一款由愛可生開源社區(qū)發(fā)起,面向數(shù)據(jù)庫開發(fā)與管理人員,實現(xiàn)了 SQL 的「開發(fā)」-「測試」-「上線」等全流程覆蓋,資源與權限精細化管理,兼顧簡潔與高效,易維護、易擴展的的開源項目,旨在為用戶提供一套的安全可靠、自主可控的 SQL 質(zhì)量管控方案。
在二月份發(fā)布的 1.2202.0 版本中:
● 改造了用戶系統(tǒng),新增用戶組和操作權限;
● 增加對工單審核結果進行評分的功能;
● 增加審核任務,支持 MySQL 的庫表結構、Oracle 的 TopSQL以及 Java 應用的 SQL 抓取和審核;
● 增加了 Db2 審核插件,支持 Db2 審核工單并上線;
● 新增了 37 條 MySQL 審核規(guī)則,如檢查 DDL 是否創(chuàng)建了冗余的索引;
● 其他體驗優(yōu)化和 Bug 修復。
二. Java 應用審核介紹
(友情提示:此為企業(yè)版功能)考慮到很多用戶在實際生產(chǎn)中已經(jīng)部署了大量的、以 Java 為基礎的應用和服務,并且某些已經(jīng)涉及到了極其重要、不可中斷的核心業(yè)務。從 1.2202.0 版本開始,SQLE 開始支持 Java 應用的 SQL 審核。并且在完成核心功能的基礎上,支持 Java 應用零成本接入 。
SQLE 的 Java 審核特性如下:
● 支持無侵入式的業(yè)務集成,用戶可以直接以環(huán)境變量的方式運行來啟動 Java 應用,直接接入 SQLE 而無需修改 Java 業(yè)務代碼,減少了用戶接入成本;
● 支持應用 SQL 的自動采集和統(tǒng)計,用戶可以在 SQLE 上通過語句池頁面統(tǒng)覽應用內(nèi)的 SQL 的分類與統(tǒng)計,迅速掌握應用內(nèi) SQL 的情況;
● 支持手動或自動審核 SQL ,用戶可以在審核報告中知曉應用的 SQL 是否符合預設的審核規(guī)則,無論是開發(fā)人員還是 DBA 都能實時了解正在運行的業(yè)務 SQL 執(zhí)行狀況。
三. 效果展示
1. 事先部署好環(huán)境、需要接入的 Java 應用以及對應的數(shù)據(jù)庫,并添加為數(shù)據(jù)源。為了演示,此處 Java 項目為
2. 創(chuàng)建 Java 應用的審核任務;
3. 啟動應用程序;
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 審核任務詳情界面,可以看到目前應用已經(jīng)執(zhí)行的 SQL ;
5. 查看審核報告,用戶可以通過審核任務的審核報告了解到應用的 SQL 是否符合預設審核規(guī)則以便及時作出調(diào)整。
6. 在示例 Java 應用主頁創(chuàng)建一個用戶,然后便可以在審核任務對應的 SQLE 語句池內(nèi)觀察到所對應的 INSERT 語句。
7. 同時,用戶可以從語句池內(nèi)頁面迅速地感知到應用內(nèi)執(zhí)行的 SQL 的語句分類和統(tǒng)計情況。
綜合以上的示例步驟,Java 應用零成本地接入了 SQLE。開發(fā)人員和 DBA 可以通過「審核報告」、「審核任務的 SQL 語句池」等功能完全掌握應用內(nèi)的 SQL 審核結果、執(zhí)行情況以及統(tǒng)計信息,完成了從「開發(fā)」直至「上線」這一過程中的 SQL 質(zhì)量管控。
本文關鍵字:#SQLE# #SQL審核##Java應用審核# #審核任務#
有更多關于 SQLE相關的技術問題,可以掃碼或直接加入官方QQ技術交流群(637150065)進行交流。歡迎大家來“騷擾”...