分享:從ChatGPT給到的資料庫故障案例,看開發協同未來趨勢

OceanBase技術站發表於2023-04-06

歡迎訪問 OceanBase 官網獲取更多資訊:https://www.oceanbase.com/

本文來自OceanBase社群分享,僅限交流探討。原作者陳小偉。


我是陳小偉, 2019 年加入 OceanBase,目前負責 OceanBase 開發者中心的研發。 OceanBase ODC 這幾年從一個資料庫圖形化客戶端工具逐漸變成一個面向協同開發場景的管控平臺。我也看到這幾年資料庫行業內配套的開發工具也正好是有一些類似的變化,於是形成一個觀察,資料庫協同開發已經成為趨勢。

OceanBase ODC 這幾年從一個資料庫圖形化客戶端工具逐漸變成一個面向協同開發場景的管控平臺。我們也看到這幾年資料庫行業內配套的開發工具也正好是有一些類似的變化,於是形成一個觀察,資料庫協同開發已經成為趨勢。

為什麼?下面我會從三方面進行敘述。

另外在正文開始前,說明一下本文我想跟大家聊四個部分:第一部分是資料庫行業現狀,畢竟作為資料庫的開發工具,要解決的還是使用資料庫的問題。在第二部分我們從現狀去看目前在資料庫使用過程中有哪些挑戰,以及說我們的使用者是如何去應對這些挑戰的,這裡也會包含螞蟻集團是如何應對這些挑戰的。第三部分我們基於對國內市場、海外市場常見工具的觀察得出結論。第四個部分會結合資料庫行業的變化對趨勢做進一步洞察。

資料增長帶來一系列變化

可以認為,近些年在資料管理領域的很多挑戰根本原因都可以歸結到資料快速增長。

資料快速增長

國際調研機構 IDC 釋出的《資料時代2025》預測,全球資料總量將從 2018 年的 33ZB 增至 2025 年的 175ZB,增長超過 5 倍,這裡結構化資料大概佔 10%。信通院的報告顯示,中國資料庫市場規模近幾年保持 25% 左右的年增長率。

1680160914

表面上我們看到的是資料儲存規模在快速增加,資料庫市場規模在不斷增長。

我們服務的的使用者場景有一些具體的例子:

  • 某電商系統使用 60 個節點的資料庫叢集,每個節點資料規模 20TB 左右,總資料規模超過 1PB;
  • 某金融系統使用的資料庫表數量達到 20W,列數量達到 400W;
  • 某金融系統使用的分割槽數量達到 100W;
  • 某製造業系統使用的 PL 程式包數量達到 4K個;

從資料庫開發者的視角來看,或者說從資料庫開發工具的視角來看,我們其實看到的是這背後資料庫的例項數量,資料庫例項記憶體儲的物件的數量,使用資料庫的業務系統的數量,以及說資料庫廠商的數量,資料庫從業人員數量 都是在不斷的增長。那我們知道變化這個事情啊,量變逐漸逐漸的是會產生質變的。資料庫這個使用過程當中啊伴隨著上述的諸多變化,而其實就帶來了諸多的一些問題,實際上可以認為, 近些年在資料管理領域的很多挑戰根本原因都可以歸結到資料快速增長

資料庫是穩定性基石

資料快速增長,資料庫穩定性問題導致的故障也越來越嚴重。

這裡我們看幾個具體的例子:

1、2016年,某社交網路應用的一名工程師在修改一條 SQL 查詢時犯了一個錯誤,導致了該公司的服務在全球範圍內停機。該錯誤導致了資料庫中某些表的資料無法訪問,最終導致了整個系統的故障。

2、2017年,某電商企業曾因一次故障而導致其 S3 服務在美國東部地區停機。事後調查發現,該故障是由一個錯誤的刪除指令引起的,這個指令本來只想刪除一小部分資料,但由於編寫了爛 SQL,結果導致了整個資料中心的資料丟失。

3、2018年,某雲廠商的雲端儲存服務出現了一個故障,導致一些客戶的資料無法訪問。調查後發現,這是由於一個工程師在修改資料庫的查詢語句時犯了一個錯誤,導致了整個服務出現了故障

這幾個例子是 ChatGPT幫我找的,我其實也問了中國大陸地區的情況,但是 ChatGPT的回覆是也有很多例子,但是不能夠告訴我具體的公司名稱,看來目前還是很保護中國大陸廠商的面子的,這背後不知道是否有團隊在幫助做一些工作。 實際上這些例子我們去看,比如 爛 SQL 導致的系統不穩定,在資料規模不大的時候都不成為問題。但是目前的趨勢就是資料規模越來越大,這個時候資料庫作為保障資訊系統穩定性的重要兜底裝置,身上的擔子就越來越重了。

更加嚴格的合規監管

資料快速增長,應用數量也不斷增長,個人、企業的敏感資料流通範圍更廣了,資料帶來的隱私洩露問題也越來越嚴重。這幾年我們國家從頂層設計、法律法規、行業規範、企業自主意識方面都對敏感資料保護越來越重視。

這裡列舉了一些近些年我們國家頒佈的一系列關於保障資訊保安的法律法規和行業標準。

1、《中華人民共和國網路安全法》:2017年6月1日生效,包括對個人資訊的收集、使用、儲存和保護等方面的規定,對違反規定的行為進行了明確的處罰。
2、《中華人民共和國個人資訊保護法》:2021年11月1日生效,是中國大陸地區首個專門針對個人資訊保護的法律。該法規明確了個人資訊的定義、處理規則、權利保護和責任追究等方面的內容。
3、《中華人民共和國電子商務法》:2019年1月1日生效,包括對於個人資訊的收集、使用、管理、安全保障等方面的規定,針對電子商務領域的個人資訊保護進行了規範。
4、JR/T 0223-2021《金融資料安全資料生命週期安全規範》。
5、 WS/T 78802021 《國家衛生資訊資源使用管理規範》。

在資料安全之中,資料庫扮演至關重要的角色,保證資料不洩露、丟失。資料不丟失是由 ACID 來保障的,不洩露則需要業務應用系統來和管理工具一起保障,我們瞭解到很多客戶已經開始重視這個問題,但是正在尋找解決方案。解決方案並不普及,可以看出目前行業的方案還比較不成體系,配套的開發工具也不夠成熟。

協同角色變化

資料量在快速增長,資料庫例項數量在快速增長,行業的從業人員也在快速增長,但是不同角色並不是等比例去增長。在十幾年前,一個 Oracle DBA 管理的資料庫例項規模在 25 個左右,總資料規模在 5TB 左右。那麼到現在的資料規模,你會發現如果按照之前的模式,DBA 數量是遠遠不夠的。此外我們發現資料分析師角色人數逐漸在增長,不同角色在和資料庫打交道的時候工作方式是不一樣的,比如資料分析師幾乎不會去用 Java 連資料庫做事務提交,更多的是寫 SQL、Python 指令碼等,然後在團隊內也有協同的訴求。從比例去看,DBA 和 總協同人數的佔比甚至小於 1/100,在大型網際網路公司,這個比例已經接近 1/1000。

下表是我們選取了 OceanBase 服務的使用者場景的資料庫開發協同過程不同角色的人員規模,出於保護客戶資訊的需要,這裡的人數是一個近似值而不是準確值。

案例DBA 人數應用開發人數資料分析師人數業務系統使用者人數DBA/總人數比例
500 使用者規模電商研發團隊3500--1/100
20 使用者規模金融研發團隊11010-1/20
200 使用者規模政務系統業務方350-1501/50
300 使用者規模運營商資料庫專案組3300-301/100
10000 使用者規模大型網際網路企業20100002000-1/600

這裡 DBA 人數大型網際網路公司的比例是很誇張的,從數量級來說已經接近 1/1000,但實際上還有一個統計口徑的原因。我們從招聘統計資料發現 SRE 崗位需求已經超過 DBA 的崗位需求,其中資料庫 SRE 和 DBA 的職責其實類似,DBA 更關注資料庫本身,而資料庫 SRE 更注重整個系統的可靠性和效能。從大型網際網路企業的情況看,安全穩定保障和業務功能開發的人員佔比大概是 1:10 ~ 1:5 左右。

應對挑戰各有各招

伴隨資料增長產生了很多變化,這些變化導致各類風險的出現或者加劇,我們觀察到的挑戰包括以下 3 個類別。

  1. 系統穩定:資料量不斷增長,對資料庫穩定性帶來風險,爛 SQL 的代價比以往更大、資料備份恢復壓力凸顯;
  2. 協同效率:資料庫數量不斷增長,DBA 工作負擔越來越重,許可權配置和 SQL 稽核效率亟需提升;
  3. 資料安全合規:政府和行業監管對資料安全合規越來越嚴格,企業本身對隱私資料保護也越來越重視,缺少有效的資料安全防護機制,合規風險之雷必須儘快排查。

解決方案列舉

應對風險,不同行業、不同規模的企業也採取了很多辦法,可以說是各有各的招,這裡舉一些典型的實踐方案:

  1. 大型傳統企業通常採購資料庫特權訪問系統,基於特權系統的許可權管控、SQL 稽核等功能,資料庫特權訪問管理系統通常也叫做資料庫堡壘機,會和資料庫客戶端工具整合來實現許可權管控,通常這些功能更多的應用於生產環境而不是開發環境;
  2. 大型網際網路企業通常選擇自研平臺,有獨立團隊負責開發維護資料庫管控平臺,對資料庫變更過程、執行過程進行全流程管控;
  3. 中小型企業私有云大量採用開源組裝,開源產品選擇面比較多,但是通常單一開源產品支援的資料庫型別比較單一功能也不夠豐富,所以需要進行組裝;
  4. 中小型企業公有云直接依託雲服務廠商提供的內建服務,比如阿里雲 RDS 的使用者直接使用 DMS。

螞蟻集團實踐

螞蟻集團資料庫開發的協同過程整體是面向業務 Developer 視角來看的,因為業務側才是需求方。下圖是 Developer 和 DBA 的協作模型,DBA 負責資源規劃和審批、部署運維、監控診斷、故障處理、變更稽核,開發者負責資源申請、資料庫變更。其中資源申請、許可權申請、資料庫變更等關鍵操作需要業務方負責人和業務歸口的 DBA 稽核確認後才可以執行。

1680160935

一個典型的過程 Developer 根據業務規劃在 ODC 介面申請資料庫資源,DBA 看到申請單之後完成稽核,此時 ODC 會呼叫 OCP 生成租戶並授權給 Developer。

這裡列舉螞蟻集團 DBA 日常工作中使用的幾個主要的系統:

  1. AntMonitor/OCP: 監控告警;
  2. HNBC:容量大盤和調整遷移;
  3. Tars:SQL 診斷故障自愈;
  4. DLM:資料生命週期管理、歷史庫、歸檔 等;
  5. ODC:資料庫開發平臺。

上述系統大部分是 DBA 使用,Developer 和 DBA 協同的主介面則是 ODC。除了基本的資源申請和變更管控,ODC 還提供了一系列用於保障資料安全穩定的功能,比如風險識別、高危操作管控、勿刪應急等功能。

1680160943

這裡也分享一些螞蟻集團資料庫開發協同相關的具體數字和經驗:

  • DBA/Developer 佔比大約為 1:600,每名DBA 需要服務 300~400 個應用;
  • 90% 以上的變更工單是業務自己審批,需要 DBA 審批的高風險變更佔比不到 10%;
  • 最常見風險包括 不合理的索引修改、變更影響範圍過大等。

協同開發是演進趨勢

我們調研分析了一些資料庫開發工具,範圍涉及國內市場、海外市場,包括雲服務和桌面軟體,有商業工具也有開源免費的工具,透過這些工具我們可以發現協同開發逐漸成為主流。

國內市場工具產品

這裡先列一個清單,是這兩年從使用者側瞭解到有在使用的一些工具。

產品廠商商業模式Github Stars核心功能
DMS阿里雲雲服務-阿里雲資料庫管理
Yearning個人開源7.4kSQL 稽核、查詢
SOAR小米開源8.3kSQL 最佳化改寫
See個人開源1.4kSQL 稽核、最佳化
SQLE愛可生開源0.9kSQL 稽核
NineData玖章算術雲服務-多雲資料管理
BytebaseBytebase開源5.1kDatabase CI/CD

此外我們也看到這兩年有一些新的產品出現,比如 Bytebase、NineData 等。

其中作為雲廠商基礎設施的,最典型的是 DMS,DMS 是阿里雲的資料庫開發安全管控產品,類似的還有華為雲的 DAS 等。

MySQL 生態,有不少開源工具產品也被大範圍的使用,典型的如 Yearning、SOAR、See 等。

Yearning 支援自動化SQL語句稽核,可對SQL進行自動檢測並執行、DDL/DML語句執行後自動生成回滾語句、稽核/查詢 審計功能、支援自定義稽核工作流、支援細粒度許可權分配。

SOAR(SQL Optimizer And Rewriter) 是一個對 SQL 進行最佳化和改寫的自動化工具,由小米人工智慧與雲平臺的資料庫團隊開發與維護。支援 MySQL 語法族協議的 SQL 最佳化、支援基於啟發式演算法的語句最佳化、支援複雜查詢的多列索引最佳化、支援 EXPLAIN 資訊豐富解讀、支援 SQL 指紋、支援自定義規則的 SQL 改寫。

See 把 Inception、SQLAdvisor、SOAR 整合到一起,看起來是個人專案,相比 Yearning 提供更多功能,比如支援 SQL最佳化建議,社群活躍度較低。

SQLE,是愛可生開源的一款面向資料庫使用者和管理者的 SQL 稽核工具,旨在規範 SQL 稽核上線流程,提高 SQL 質量。

NineData 的定位更接近雲廠商的資料管理服務,SaaS 形態。

海外市場工具產品

這裡也列一個表格,和國內工具產品不同,海外市場商業工具更加成熟,開源工具更側重於基礎開發功能。

產品廠商支援的資料庫支援 SQL 檢查支援 CI 流水線支援 Git
ToadQuestOracle、+
ApexSQLQuestSQL Server、+
Red-GateRed-GateSQL Server、Oracle、MySQL、PostgreSQL
dbForge/SkyviaDevartSQL Server、MySQL、Oracle、PostgreSQL、SQLite
Cloud DBeaverDBeaver Community幾乎是所有型別
EverSQLEverSQL幾乎是所有主流型別

Toad 深受 Oracle 使用者喜愛,作為一個適配 Oracle 的圖形化客戶端, Toad 相比 PL/SQL Developer 更加現代,功能也更全面。ApexSQL 功能更加豐富,特別是對 SQL Server 的支援特別完善,Toad 是 Quest 公司的產品,2019 年 Quest 收購了 ApexSQL。Quest 還曾經被 DELL 收購後來又獨立出來了。

Red-Gate 支援的資料庫型別很多多,提供 SQL Server、Oracle、MySQL、PostgreSQL 資料庫的管理和開發功能,支援 資料庫比較和同步、備份恢復、版本控制等,國內開發者使用比較多的 Schema migration 工具 Flyway 就是 Red-Gate 開源的產品。

Devart 提供多種資料庫管理工具,支援 SQL Server、MySQL、Oracle、PostgreSQL、SQLite 等資料庫,提供了檢視、編輯、比較、同步、安全管理等多種功能。Skyvia 也是 Devart 公司的一款雲資料整合平臺,用於將不同的資料來源整合在一起並進行資料轉換、同步、備份和恢復等操作,Skyvia支援多種關係型資料庫和雲資料庫。Devart 更專注於資料庫管理工具,而 Skyvia更專注於資料整合和轉換平臺。

Cloud DBeaver 是 DBeaver 的 WEB 化產品,目前功能還比較簡單,但是可看出老牌資料庫開源工具專案往雲服務和雲原生轉型的行動,最近 DBeaver 還整合了 OpenAI,這是另一個熱點了。

EverSQL 提供 SQL 檢查和最佳化功能,SaaS 形態,宣稱有 10W 個使用者,主張透過最佳化 SQL 幫助使用者省錢。

全球市場工具產品

這裡舉兩個比較特殊的產品,Navicat 和 Bytebase,這兩個產品可謂各有典型性。

作為廣受開發者喜歡的資料庫圖形化客戶端工具,Navicat 給大家的印象更多時候是一個面向個人開發場景的工具。實際上 Navicat 也提供了協同能力,如 Navicat Cloud 和 Navicat Server,可以讓使用者在不同的裝置和團隊中共享和協作資料庫。使用者可以將資料庫檔案儲存到 Navicat Cloud 中,從任何裝置上訪問和編輯資料庫。Navicat Server 則提供了一些高階功能,如使用者管理、許可權控制和版本控制等,可以幫助團隊更好地管理和保護資料庫。

Bytebase 是 2021 年國內團隊做的資料庫協同開發工具,也是開源模式,高階功能需要收費。基於專案進行協同,以資料庫物件為管控目標。Bytebase 也提供 SQL 檢查、資料庫變更流程、Git 整合、備份恢復 等功能。

資料庫開發工具趨勢洞察

作為資料庫開發工具,我們在最開始看到是資料增長帶來了一系列變化,並且因此帶來了系統穩定、協同效率和安全合規三個方面的問題。這個是大的趨勢,我們認為資料庫開發工具需要去解決這些重要的問題,但是具體到資料庫開發工具還需要去做哪些考量,我們不能脫離資料庫行業整體的一個格局和趨勢。所以首先我們來看資料庫行業的一些現狀以及趨勢。

海外市場仍是主流

剛開始看到 DMS 的時候,我其實覺得還挺強大的,不僅支撐了阿里巴巴、螞蟻集團大規模業務場景下的資料庫協同,也適用於各種阿里雲資料庫產品的開發和管控,功能非常全面。並且我也去找了國外的競品,比如 AWS/Azure 等產品並沒有類似的 DMS 這樣強大的資料庫管控功能。我會產生一個錯覺,我們國家是領先世界的,因為我們人口多,所以我們資料多,所以我們的場景最複雜,就類似微信、支付寶這樣的覆蓋 10 億以上使用者的 App,大部分國家就沒有機會做出來,不是能力不夠,而是環境條件不具備。那麼作為入行不久的資料庫行業的從業者,我差點也以為,我們是領先世界的,不僅僅是在分散式資料庫核心領域,在資料庫協同工具層面也是一樣。

那麼事實果真如此嗎?資料庫全行業看,2021 年全球資料庫市場規模為697 億美元,其中中國資料庫市場規模為47 億美元(約合305.8 億元人民幣),佔全球5.2%;美國開源與商業資料庫數量基本持平,我國商用和開源佔比分別為83.4%和16.6%;國內 MySQL 生態為主,海外 PostgreSQL 生態更活躍;國內資料庫協同開源專案較多,海外開源專案以面向個人開發者為主,商業資料工具普遍在往 DevOps 方向發展。

混合雲和多雲

混合雲和多雲的發展可以說是客戶驅動雲廠商在做產品形態變化,中大型客戶不再願意被一家雲廠商繫結。我們看到越來越多的行業場景在做應用架構、資料庫架構的時候,混合雲和多雲成為趨勢。這裡混合雲指的是公有云和私有云混合使用,此時雲廠商一站式解決方案不再可用。

1680160956

HTAP 和多資料來源

如果你有關注這幾年聲量最響的一些資料庫創業公司,可以發現大家都在談 HTAP,HTAP 是資料庫新勢力必爭之地。為什麼這麼說,因為 TP 和 AP 都有非常優秀的產品在做了,其中有一些還有顯著的優勢,那麼我們是選擇做一款更加厲害的 TP 產品好呢還是做一款更加厲害的 AP 產品好呢?每個廠商有自己的答案,對於 OceanBase 而言,我們相信 TP 和 AP 都可以,首先 TP 是我們的優勢,而 AP 我們也做的不差,那就是 HTAP。話雖如此,當時實際上這個過程沒有那麼簡單,有很多問題需要去解決,我們可以預見在幾年之內,TP+AP 混合場景仍將是主要場景。但是無論是 TP+AP 還是 HTAP 都對開發工具提出了新的要求,實際上是一套庫還是多套庫不是最關鍵的,最關鍵的是資料協同的角色,寫資料的人和分析資料的人會比以前更加緊密的去協同,這個時候資料庫開發工具就需要具備相對應的一些能力,這裡列舉了幾個我認為可能比較重要的。

  • 資料同步;
  • 全域性物件檢索 Metadata Catalog;
  • 多角色協同。

趨勢解讀

上面我們講了市場格局、混合雲和多雲的趨勢、還有 HTAP 或者說 TP + AP 這些新的場景,這裡我們彙總一些具體到資料庫開發工具方向,未來會是怎樣的趨勢,我判斷會有 5 個趨勢。

一 、個人開發--> 多角色協同開發,這是是我們今天講的核心,資料庫協同開發會越來越流行。

二、 Developer Tool --> Data Operation Platform,這一點是對協同開發的延伸,從開發工具到資料協同平臺,這裡有個概念叫做 DataOps 目前為止還不是那麼清晰,Gartner 去年的報告對 DataOps 領域做了一些解讀認為說未來三到五年會形成一個清晰的市場,然後我們也看到信通院的大資料標準化推進委員會也在牽頭做 DataOps 相關的概念討論。關於這一部分坦白講我也沒有看明白,因為實際上我們都還沒有看到有哪個具體的產品就已經可以自圓其說是一個 DataOps 領域的解決什麼問題的產品。DevOps 這個概念從出來到大家大致都瞭解也是有很漫長的過程,那麼直到現在我認為 DevOps 也沒有解決新的問題,開發、測試、運維這些問題還是由對應的工具在幫助解決。

三、TP + AP & HTAP 場景支援,我們會看到資料庫開發工具會兼具 TP 場景和 AP 場景下的功能。

四、整合和被整合,整合主要是賬號系統、審批系統的整合,被整合則是需要產品能夠提供 API 易於二次開發。

五、開源 和 SaaS,這一條是我認為從 2 個方面去看,一個是雲,目前哪怕國內市場資料庫 60% 以上的份額已經在雲上了,然後大家還不願意被一家雲廠商繫結了,所以跨雲的 SaaS 是很自然的結論;另一個方面軟體業的開源趨勢應對全球市場的優勢,特別是在現在跨地域、跨雲的場景下,在資料管理領域,被全球更廣泛的客戶信任非常重要,那麼你的服務形態一定是 SaaS,然後你還需要用最低的成本獲取更多地區的客戶信任,答案就是開源了。所以我認為未來的趨勢,開源和 SaaS 都是必然。

結語

資料的不斷增長帶來資料庫穩定性、資料安全、協同效率等三大挑戰,雲資料庫、混合雲、HTAP 等資料庫技術和使用趨勢又給資料庫開發工具提出新的功能要求,資料庫開發工具需要提供更加完善的功能,幫助 DBA 減輕負擔,從而提升資料庫開發和執行效率、保障資料庫穩定執行。


歡迎訪問 OceanBase 官網獲取更多資訊:https://www.oceanbase.com/

相關文章