TiDB 在 G7 的實踐和未來

2021-08-14 16:34:54 字數 1698 閱讀 7664

2010 年,g7 正式為物流運輸行業提供面向車隊管理的 saas 服務,經過持續創新,通過軟硬一體化的產品技術能力,致力於數位化每一輛貨車,以實時感知技術創造智慧型物流新生態。g7 為客戶提供全方位的資料服務、智慧型的安全和運營管理、手機管車、數字運力、以及 etc、油和金融等增值服務。

目前,g7 連線了 600,000 輛貨車,每天行駛 6500 萬公里(可繞地球赤道 1625 圈),13.5 億個軌跡點和 2,200 萬次車輛事件觸發,並且以直線速度飛速增長。g7 每天產生的車輛行駛、狀態、消費等資料超過 2t,飛速增加的車輛、資料型別和複雜的金融業務,使得資料庫的事務、分析、擴充套件和可用性面臨巨大的挑戰。

在大量的車輛資訊和軌跡相關資料業務中,當前我們通過 spark、hive 等對大量原始資料進行分析後,存入阿里雲 drds,對外提供基礎資料介面服務。由於清洗後的資料量依然很大,使用 drds 的儲存成本非常高,且面對很多 olap 的查詢時,效率不如人意。

而在金融和支付這種複雜業務場景中,面臨 cap 中 c 和 p 的挑戰。在以往的工作中,支付系統由於面臨強一致性事務的高峰值寫入問題,採用了 2pc+mysqlxa(單個 mysql 作為參與者,上層增加 proxy 作為協調者)完成了分布式事務資料庫的方案。但是這種方案在 partition 中,極為麻煩。同時,運營和風控系統經常需要做相對複雜的查詢,要麼通過 mysql+etl+olap 資料庫(成本高),要麼容忍查詢的效率問題。

g7 的技術團隊一直在尋找一種能解決上述問題的資料庫。要找到這樣一種資料庫,除了需要滿足上述需求以外,還需要滿足另乙個需求:可維護性和易遷移性。這要求該資料庫具體需要滿足如下幾個要求:

在這麼多限制和需求的情況下,tidb+tispark 很快進入我們的視線,並且開始調研。通過和 tidb 技術人員的交流,除了滿足上述的需求外,如下技術細節使我們一致認為可以選擇這樣的方案:

該風控資料平台是將眾多的業務資料做清洗和一定複雜度的計算,形成乙個客戶在 g7 平台上金融資料指標,供後續的風控人員來查詢客戶的風險情況,同時支撐運營相對複雜的查詢。由於資料量較大,傳統的關係型資料庫在擴充套件性和處理 olap 上不符合該業務的需求;同時該業務面向內部,在一開始不熟悉的情況下,不會影響到客戶,因此,我們決定在這個業務上,選擇使用 tidb。風控資料平台開始於 2017 年 8 月,2017 年 10 月上線了第乙個版本,對線上使用者提供服務。最開始使用的 tidb rc4 版本,後公升級到 pre-ga,我們計畫近期公升級到 ga 版本。

系統架構如下所示,整個流程非常簡潔高效。

在使用的過程中,我們還是遇到了不少相容性相關的問題。為了增加我們對 tidb 的理解,我們和 tidb 技術團隊取得聯絡,積極參與到 tidb 專案中,熟悉**和修復部分相容性和 bug 相關的問題。以下是我們在實踐過程中解決的問題:

這裡仍然存在乙個與 mysql 不相容的地方。當開啟事務後,如果 insert 的語句會導致主鍵或者唯一索引衝突時,tidb 為了節省與 tikv 之間的網路開銷,並不會去 tikv 查詢,因此不會返回衝突錯誤,而是在 commit 時才告知是不是衝突了。希望準備使用或關注 tidb 的朋友能注意到這一點。後來我們諮詢 tidb 官方,官方的解釋是:tidb 採用樂觀事務模型,衝突檢測在執行 commit 操作時才會進行。

感謝在初體驗過程中,tidb 團隊非常認真、負責和快速的幫助我們排查和解決問題,提供了非常好的遠端支援和運維建議。

2018 年初,運維團隊和每乙個業務方進行了一次需求溝通,業務方對 tidb 的需求越來越強烈。我們正沿著如下的路徑,讓 tidb 發揮應用到更多的場景中。

2018華東交通大學雙基賽G 7的意志

定義乙個序列a 7,77,777.7777777 數字全為7的正整數,且長度可以無限大 clearlove7需要從含有7的意志的數里獲得力量,如果乙個整數能被序列a中的任意乙個數字整除,並且其數字之和為序列a中任意乙個數字的倍數,那麼這個數字就含有7的意志,現在給你乙個範圍 n,m 問這個範圍裡有多...

TiDB 在鳳凰網新聞內容業務的創新實踐

在 行業,新聞內容就是核心的業務資料,我們需要乙個穩定的 具有高可用的 易水平擴充套件的資料儲存系統,來存放公司核心資料,在最早,我們採用比較流行的 mysql 來儲存各個業務模組的內容,通過主從切換的方式進行高可用,但隨著資料量的增加,mysql 單機容量成為了瓶頸,傳統的基於 mysql 分片方...

TiDB 在鳳凰網新聞內容業務的創新實踐

在 行業,新聞內容就是核心的業務資料,我們需要乙個穩定的 具有高可用的 易水平擴充套件的資料儲存系統,來存放公司核心資料,在最早,我們採用比較流行的 mysql 來儲存各個業務模組的內容,通過主從切換的方式進行高可用,但隨著資料量的增加,mysql 單機容量成為了瓶頸,傳統的基於 mysql 分片方...