<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么我們需要一個 SQL 數據庫審核平臺

          共 2563字,需瀏覽 6分鐘

           ·

          2021-01-19 00:07

          點擊藍色“有關SQL”關注我喲

          加個“星標”,天天與10000人一起快樂成長

          圖 | Lenis


          2018年6月4日,鏈家 40歲程序員刪庫,公司斥資 18萬恢復系統(tǒng);

          2020年2月24日,微盟程序員刪庫跑路,次日股價下跌 21.5億人民幣;

          這些安全事故,暴露出大部分公司的隱患,缺少一個完善的數據庫審核平臺。數據庫所有的操作,都應該有其審核規(guī)則,來確保不會造成災難性的事情發(fā)生。

          比如刪庫,一旦審核平臺接到 Drop Database 的命令,就立馬出發(fā)郵件到主管,申請批復,并暫時性停止執(zhí)行,直到收到回復批準。

          本文探索數據庫審核平臺的功能和實現(xiàn)。參考書目還是《數據庫高效優(yōu)化:架構、規(guī)范與SQL優(yōu)化》

          再舉個例子,來說明下審核平臺提供的功能。

          比如,有 CRM 用戶反映,平時 1,2秒就能打開的客戶利潤報表,現(xiàn)在需要 20 秒了。經過前端組的排查,確定是數據庫的 SQL 返回結果慢了,請求 DBA 調優(yōu)。

          DBA 于是在審核平臺,建了這么條規(guī)則:抓取運行時間超過 20 秒的所有 SQL 和存儲過程,包括詳細的 SQL 文本,索引使用和執(zhí)行計劃。

          等待一段時間,平臺就會把這些超長的 SQL 抓取出來,DBA 篩選下,就能定位到問題。

          數據庫審核平臺的功能,到此就很清晰了,提出問題,設定規(guī)則,抓取問題SQL.


          有同學會疑惑,這不就是問題排查嘛,造一個平臺來解決,是不是大材小用?用短小精悍的腳本,不香嘛?

          當然不是!我用 3 個節(jié)拍說服你

          SQL開發(fā)的苦惱

          SQL 開發(fā)小哥哥和小姐姐,平時被業(yè)務開發(fā)掏空。考勤,OA,HR,生產制造系統(tǒng),ERP,進銷存,倉儲等 MIS 系統(tǒng),通常三四條線,同時開工,占據絕大部分時間與精力。

          忙起來,上午寫的SQL,下午都能忘記邏輯。好不容易閑下來,除了開黑,看劇,社交,解解乏,根本沒有時間再投入系統(tǒng)學數據庫。

          長期以往,遇到某張大表,SQL性能直線下降時,他們將束手無策。當靠經驗,加索引,改寫SQL均無效時,他們只能求助于DBA。

          DBA的無奈

          業(yè)務越豐富,頭疼的當然不止開發(fā),還有DBA. 成熟的企業(yè),往往使用四,五種不同架構的數據庫,十多套不同廠商的商業(yè)數據庫。比如Oracle, SQL Server, DB2,MongoDB, ElasticSearch 等等。

          安裝,調試,建庫建表建索引,建高可用集群,這些瑣事,已經讓 DBA 應接不暇。據我所知,傳統(tǒng)行業(yè)還不配備專職 DBA,他們往往兼顧一些報表開發(fā),ETL設計和建模。

          于是,他們的命運,也就剩下疲于奔命,現(xiàn)場救火。此時與開發(fā)并無不同,沒有緊急的工單,有問題的SQL調優(yōu),就被安排到了猴年馬月。

          上帝欲讓人瘋狂,先使人瘋忙。

          數據增值小分隊

          近十年,云計算不斷介入后端。越來越多的機械性管理工作,被云統(tǒng)一籌劃和部署。使得更多的精力與時間可以投入數據資產的管理,比如數據治理,數據質量和數據安全。

          云之前,DBA 團隊面臨的情況:出了系統(tǒng)性能故障, DBA 的鍋;出了數據庫連接超時,DBA的鍋;甚至數據質量問題,都是DBA的鍋。但是一旦業(yè)務猛增的時候呢,嗯,各種領獎,嘉獎,都是前端業(yè)務系統(tǒng)的。

          當 DBA 團隊不能成為資產時,就會淪為成本。成本,是要被剔除的。因此,數據增值分隊應運而生!

          讓上帝的歸上帝,凱撒的歸凱撒

          SQL 開發(fā)會漸漸與前端框架融合,探索和保障業(yè)務系統(tǒng)順利展開。DBA 分隊,提供信息架構的基礎建設,保障存儲的安全,計算的穩(wěn)定。在企業(yè)上云或數據庫自治后,讓大量基礎 DBA 人員轉型到數據增值團隊來,負責數據治理,數據分析和數據安全等領域。

          以上三點,就是我們需要數據庫審核平臺的理由了, 它幫數據團隊,把服務做到量化,可視化、規(guī)模化和利潤化。

          數據庫審核平臺實踐

          那么,我們怎么做一個數據庫審核平臺呢?

          購買軟件,還是自研?購買的軟件能幫我們解決所有的問題嗎,這些數據帶來的問題,有通用的模式,可以用統(tǒng)一模型來解決嗎?

          回答這個問題前,讓我們先取個經,看下別人的成果。

          • 一梯隊,BAT等互聯(lián)網一線大廠。它們的方案,完全自研SQL引擎。實現(xiàn) SQL 執(zhí)行成本分析,自動審核,訪問分流等。

          • 與大廠提前自動審核不同,大多數沒有自研SQL引擎能力的中廠,選擇半自動方式,做到事后審核。方法是收集數據庫各項指標數據,引入人工判斷,做好審核。

          • 針對完全沒有研發(fā)能力的小廠,那么只能依靠購買商用的軟件產品,再輔以人工處理。缺點就太明顯,價格高,而且擴展性不高。

          普通的團隊怎么辦呢,保二爭一。自研適合大部分團隊。

          用 2 張圖來表達,第一張是架構圖,第二張是操作流程圖:



          平時開發(fā)中,經常遇到這些異常:

          • 上一秒運行正常的SQL,這一秒拋出了日志文件空間不足,執(zhí)行失敗
          • 平常運行秒出的SQL,今天偶然特別慢,就像人睡覺睡的好好的,突然抽了一兩下,原因未知
          • 平靜的出奇的某天下午,突然有同事大叫一聲,誰XX把我的報表進程給殺了
          • 一天中的某段時間,數據庫就像僵住了一樣,無論運行什么都很慢
          • 系統(tǒng)中總有幾張表,涉及到他們的查詢,就非常慢
          • 每天都要手工清理一些表、索引或視圖等數據庫對象,沒有時間和精力投入數據建模,數據治理

          這些常見問題,歸納為兩類:

          • 數據庫對象
          • SQL 審核

          也就是圖中的 SQL 管理和 DB Object 管理。數據庫審核平臺主要做這兩類。

          回顧開頭的原理圖,數據團隊要做的事情,無非就是:

          • 定義問題
          • 規(guī)則設計
          • 編碼實現(xiàn)

          如果大家有興趣,可以參考宜信團隊開源的 CreditEaseDBA Themis 數據庫審核平臺,在此基礎上,加入自研的功能。他們的產品地址是:

          https://github.com/CreditEaseDBA/Themis

          再次申明,本文靈感來自《數據庫高效優(yōu)化:架構、規(guī)范與SQL優(yōu)化》,摘錄部分觀點和示意圖*。



          --完--





          往期精彩:


          本號精華合集(三)

          如何寫好 5000 行的 SQL 代碼

          如何提高閱讀 SQL 源代碼的快感

          我在面試數據庫工程師候選人時,常問的一些題

          零基礎 SQL 數據庫小白,從入門到精通的學習路線與書單










          瀏覽 78
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日逼网站 | 亚洲视频网在线直播 | 日韩一区二区特一级免费在线观看 | 亚洲电影91 | 不卡天堂网 |