導讀
Homework Bang 成立於 2015 年,是乙個領先的教育品牌,致力於利用技術幫助教育包容性。 經過近十年的積累,Homework Gang 利用人工智慧、大資料等技術,為學生、教師和家長提供學習和教育解決方案、智慧型硬體產品等。 隨著公司產品和業務場景越來越豐富,資料量越來越大,業務端對資料庫使用的需求也越來越多樣化。 本文介紹了 Tidb 的探索過程,以及在多個業務場景中的實踐。
Job Gang 第一次接觸的第乙個版本是 TIDB v40.9。與 tidb v3 相比x,v4.0.9 在效能、管理、易用性等方面都得到了質的提公升,TiDB 的生態系統元件和社群也達到了非常完整的水平,可以說是乙個標誌性的版本。 2020 年,我們正式開始研究和測試 TIDB v40.9、實現團隊在分布式資料庫中的技術儲備,以便更好地服務於公司的業務需求。
1.探索期:使用tidb隔離對mysql對群集有效能影響的查詢請求
研發人員需要不定期線上查詢實時資料,以確定業務資料的狀態或彙總分析一些業務資料。
在引入 TIDB 之前:業務人員直接連線到 MySQL 從資料庫中查詢資料,如果掃瞄的資料量太大,往往會造成線上 MySQL 節點的效能抖動,甚至機器的 IO CPU 資源瓶頸。
TIDB 引入後:MySQL 的資料通過資料同步工具 DM 以全+實時增量方式同步到 TIDB,實現 ** 和離線請求的隔離。
在這個探索階段,一方面滿足了離線查詢隔離的要求,另一方面熟悉了 TIDB 及其生態元件的特點和使用方法。
2、推廣期:內部分享+主動攻擊
經過大約半年的使用,在對 TIDB 有一定的了解的基礎上,我們開始在公司內部分享 TIDB 相關技術,向研發人員介紹 TIDB 的一些特點及其在大資料量場景中的優勢,並積極聯絡各個業務線尋找合適的使用場景。 研發人員也陸續投入了一些業務內部使用的報告服務連線離線 TIDB 集群。
每個團隊使用並熟悉 Tidb 一段時間後,我們開始逐漸將重點轉移到 Tidb 上,專注於現有業務的痛點或未來新業務的規劃。 通過與業務的測試驗證,**業務正式遷移到 TIDB。
1. 舉報平台的使用tidb突破儲存和效能瓶頸
Job Gang的報表服務每天從各個業務線匯入大量檔案資料,以實現最終的資料顯示。 隨著業務線的增加和MySQL單例項主機的磁碟限制,報表服務平台逐漸出現儲存受限、資料呈現緩慢甚至無響應等問題。
我們通過DM將資料同步到TIDB中,TIDB已經過業務驗證,實現了與SQL的高相容性。 同時,與使用 MySQL 所花費的時間相比,TiDB 縮短了 80% 的時間,遠遠超出了預期。 隨著 DM 同步穩定性的提高,報表平台也對一些直接連線 MySQL 的報表服務進行了更改,改為 TIDB 作為資料來源。
轉換後,報表服務的最終體系結構如下所示:
2. 業務流資料
商流資料服務的主要特點是每天寫入的資料量特別大,需要長期儲存。 在公司的多個業務線中,使用 MySQL 儲存的資料最終會在某個開發階段遇到儲存瓶頸。 這就是 TiDB 的用武之地。
得益於 DM 同步資料和後來的 TIDB-5 的可靠性由於 X 版本的相容性和穩定性,一些業務正在逐步將效能採集資料、使用者訪問記錄和服務日誌遷移到 TIDB。 同時,在人工智慧爆發的背景下,越來越多的探索型企業自然需要儲存海量資料,而 TIDB 自然成為首選解決方案。 當然,網上有很多核心業務不會輕易改變資料儲存方案,所以使用 TIDB 歸檔歷史資料也是當前的標準方案。
來自 tidb 4從 0 版本開始,TiDB 新增了 TiFlash 列儲存引擎,並在後續版本中不斷增強。 如果業務有任何複雜的查詢需求,可以通過在 tidb 集群中新增 tiflash 節點直接解決一些複雜的查詢。
現在,Tidb 可以在工作幫派內部使用。 目前,JobBang已經部署了數十個TIDB集群,總資料量超過100TB。 這些集群中的大多數都使用 TIDB 5版本 4,其中一半已公升級到 6版本 5。 如果您仍在使用 v3在X版本的情況下,建議使用一些相對安全的方法來測試公升級到新版本。 v4 的 Homework Gang0.9版一路公升級,整體感覺越來越穩定,讓人感覺更加安心,公升級過程也非常絲滑,業務幾乎沒有感知。
近日,我看到杭州銀行核心會計系統上線TIDB 6的訊息5.版本 6,我們都應該在 2024 年之前公升級到這個版本。
最後,對 tidb 也抱有希望:
希望 TIDB 能夠有乙個不依賴 CDC 的主備集群解決方案,一方面可以用於遠端資料中心的災難恢復,另一方面可以作為公升級回滾解決方案,避免公升級後出現業務不相容。
探索使用資源控制。 對於 MySQL 資料庫和分表服務,多個子集群無法同步到同乙個 tidb 集群,資料庫名稱可能會發生衝突。
SQL限流或攔截:對於資源消耗較高的SQL語句,您可以自動降級,避免資源耗盡,導致集群雪崩。