同盾科技是中國領(lǐng)先的人工智能科技企業(yè),專注決策智能領(lǐng)域,致力于幫助政企客戶防范風(fēng)險、提升決策效率。同盾科技堅持自主科技創(chuàng)新,多項算法和軟件系統(tǒng)已達全球領(lǐng)先水平,并形成了“基于隱私計算的共享智能平臺-智邦”和“基于人工智能的決策智能平臺-智策”兩大平臺,聚焦于金融風(fēng)險、安全風(fēng)險、政府治理風(fēng)險三大場景,業(yè)務(wù)覆蓋全球數(shù)十個國家,為 22 大行業(yè)、118 個細分場景的上萬家客戶提供了領(lǐng)先且獨具特色的決策智能解決方案。
風(fēng)控業(yè)務(wù)場景對數(shù)據(jù)庫的需求與挑戰(zhàn)
作為一家第三方風(fēng)控公司,客戶經(jīng)常需要調(diào)用同盾的智能決策服務(wù)去做業(yè)務(wù)決策,如電商大促期間防范黑產(chǎn)薅羊毛,個人信貸杜絕多頭借貸老賴行為等。因此,同盾服務(wù)調(diào)用常常呈現(xiàn)出非常大的 TPS 請求。同時,為了不影響客戶調(diào)用服務(wù)的質(zhì)量與體驗,同盾對低延遲和高可用有著硬性要求。
(相關(guān)資料圖)
基于這樣的特征,同盾日均過億的決策服務(wù)調(diào)用,會產(chǎn)生包括非結(jié)構(gòu)化/結(jié)構(gòu)化多種數(shù)據(jù)結(jié)構(gòu)類型在內(nèi)的海量數(shù)據(jù)入庫。豐富的數(shù)據(jù)類型與多樣的細分場景,使得同盾科技必須使用多種數(shù)據(jù)庫去滿足不同的業(yè)務(wù)場景需求,在同盾的數(shù)據(jù)架構(gòu)中包含了 Cassandra、MySQL、HBase、Redis、Mongo 等數(shù)據(jù)庫。
在同盾的數(shù)據(jù)架構(gòu)中,大多數(shù)初始落庫的數(shù)據(jù)還比較原始,為了提供優(yōu)質(zhì)的數(shù)據(jù)服務(wù)用于智能決策,技術(shù)團隊構(gòu)建了成熟的大數(shù)據(jù)平臺,用 T+1 離線數(shù)據(jù)分析的方式去進行日常的離線數(shù)據(jù)分析作業(yè),利用數(shù)據(jù)二次加工賦能上層的風(fēng)控智能決策。
但面對復(fù)雜的數(shù)據(jù)基礎(chǔ)架構(gòu),同盾在業(yè)務(wù)增長中也遭遇了如下挑戰(zhàn):
·同盾擁有在線數(shù)千個大大小小的 MySQL 工作實例,數(shù)據(jù)十分分散,有一些是核心的風(fēng)控業(yè)務(wù)系統(tǒng)數(shù)據(jù),有一些是后臺基礎(chǔ)架構(gòu)平臺的數(shù)據(jù),還有一些是集團 IT 系統(tǒng)數(shù)據(jù),同盾希望通過集中化的方式對這些數(shù)據(jù)進行分析管理;
·最開始同盾將上游 MySQL 數(shù)據(jù)同步到下游進行分析,但整個過程中數(shù)據(jù)交換工作效率非常低,整體作業(yè)分析的 SLA 無法得到保證;
·由于上下游數(shù)據(jù)同步的阻塞問題,導(dǎo)致了離線數(shù)據(jù)同步實時性很差,上下游數(shù)據(jù)經(jīng)常出現(xiàn)數(shù)據(jù)不一致的情況,非常影響提供給作業(yè)的數(shù)據(jù)質(zhì)量。
其實同盾科技的業(yè)務(wù)場景并不復(fù)雜,只需要同步生產(chǎn)環(huán)境中數(shù)千個 MySQL 實例至下游的離線系統(tǒng),提供給作業(yè)開發(fā)人員通過大數(shù)據(jù)平臺進行離線分析加工。項目的核心目標(biāo)是在海量數(shù)據(jù)落庫下,保障在線到離線數(shù)據(jù)的數(shù)據(jù)庫的準(zhǔn)實時性和一致性,并提供優(yōu)質(zhì)的數(shù)據(jù)服務(wù)給內(nèi)部的風(fēng)控系統(tǒng)開發(fā)人員、算法模型工程師和運營人員加工數(shù)據(jù)。
為什么選擇 TiDB?
經(jīng)過長時間調(diào)研,同盾科技的技術(shù)團隊最后選擇了新一代分布式數(shù)據(jù)庫 TiDB 作為離線層的核心數(shù)據(jù)庫。同盾科技數(shù)據(jù)庫運維梁高升表示,主要有以下幾點原因最終促成同盾選擇 TiDB:
首先,TiDB 高度兼容MySQL協(xié)議,在 TiDB 的使用和運維過程中大大減輕了運維和開發(fā)人員的使用成本;
第二,TiDB 作為分布式數(shù)據(jù)庫,同盾可以把它看成一個大的數(shù)據(jù)庫實例,可以匯聚上游所有的MySQL實例數(shù)據(jù);
第三,TiDB 具備存算分離的架構(gòu),可以讓同盾非常靈活地控制硬件成本,而不用一味堆砌服務(wù)器;
最后,TiDB 擁有非?;钴S的社區(qū)。即使在使用 TiDB 的過程中遇到一些問題也馬上能在社區(qū)得到解決。
解決方案
最終,同盾科技數(shù)據(jù)庫團隊構(gòu)建了一整套基于 TiDB 的數(shù)據(jù)流轉(zhuǎn)架構(gòu),該架構(gòu)共分為三層:
實時數(shù)據(jù)層
同盾內(nèi)部有 3000+ MySQL實例,在實時數(shù)據(jù)庫層通過 MySQL cloud 管控上游數(shù)千個 MySQL。
傳輸層
在傳輸層,從 MySQL Cloud 對接實時數(shù)據(jù)同步任務(wù)到內(nèi)部 Otter ,Otter 可以實現(xiàn)準(zhǔn)實時同步 MySQL 數(shù)據(jù),然后再由 OTTER 實時同步數(shù)據(jù)到 TiDB。
上下游同步組件決定了數(shù)據(jù)在下游離線場景的整體數(shù)據(jù)質(zhì)量,同盾對數(shù)千個 MySQL 實例同步數(shù)據(jù)的同時,需要保證其穩(wěn)定性、低延遲及整體可控的管理成本。雖然 PingCAP 數(shù)據(jù)遷移工具 DM 支持全量/增量靈活的數(shù)據(jù)導(dǎo)入場景,并具有較快的導(dǎo)入速率,但目前單個 DM worker 只支持綁定一個數(shù)據(jù)源,這限制了管理大量 MySQL 同步任務(wù)的需求。同盾最后選擇使用 OTTER 作為常態(tài)化的數(shù)據(jù)增量同步平臺,但 OTTER 只支持增量數(shù)據(jù)同步,且單任務(wù)吞吐有上限,同盾通過使用其支持 spark streaming 來進一步保障同步得吞吐和準(zhǔn)實時性。未來在 TiDB 推出一個 DM worker 支持多個數(shù)據(jù)源的特性后,同盾會再考慮進行替換。
離線數(shù)據(jù)層
離線數(shù)據(jù)層中的大數(shù)據(jù)平臺主要管控 TiDB 的元數(shù)據(jù)和實際到下游的同步情況。 在 Spark 運行作業(yè)的過程中通過 TiSpark 去訪問 TiDB,最后接入 Hadoop 進行分析作業(yè)。
業(yè)務(wù)收益
通過打造 TiDB 數(shù)據(jù)產(chǎn)品鏈,同盾科技實現(xiàn)了數(shù)千個 MySQL 數(shù)據(jù)的離線匯聚管理。TIDB 有著便捷易操作的 Dashboard 管理界面,運維無心智負擔(dān),大大提升了數(shù)據(jù)庫運維團隊的管理運維和使用數(shù)據(jù)的便捷性與效率。同時,TiDB 的高性能保障提供高質(zhì)量的數(shù)據(jù)服務(wù),實現(xiàn)了準(zhǔn)實時同步數(shù)據(jù)。
同盾科技數(shù)據(jù)庫運維梁高升介紹,同盾剛開始上線的是 TiDB 2.0 早期版本,在上下游數(shù)據(jù)同步過程中遇到了一些 TiDB 和 MySQL 不那么兼容的情況,如果在上游有大量數(shù)據(jù)更新的情況下,會出現(xiàn)同步阻塞的情況,導(dǎo)致同步的實時性、一致性出現(xiàn)問題。但 TiDB 版本迭代速度非???,每個版本都會對性能及穩(wěn)定性做出大量改進和優(yōu)化,在升級到 5.4 版本后,同盾就已經(jīng)解決了大部分的兼容問題。而且在基準(zhǔn)測試中,TiDB 的性能也得到了質(zhì)的飛躍。
未來規(guī)劃
同盾科技是 TiDB 非常早期的用戶,多年的使用讓同盾確信 TiDB 是一款非常好的產(chǎn)品,未來也會繼續(xù)致力于在更多的場景依靠 TiDB 生態(tài)落地賦能一些業(yè)務(wù)場景。例如,雖然同盾的大部分作業(yè)是 T+1,但內(nèi)部也有很多實實在在的實時分析場景,比如實時展示的 BI 系統(tǒng),通過TiFlash 實時分析查詢引擎可以進一步提升分析效率,更及時地滿足實時分析需求;同盾國內(nèi)在線業(yè)務(wù)針對海量關(guān)系型數(shù)據(jù)庫初始使用的是 MYCAT,但是 MYCAT 的運維非常困難,對開發(fā)也不是很友好,更像是上一代的分布式數(shù)據(jù)庫產(chǎn)品。后續(xù),類似 MYCAT 這樣的場景也很有必要使用 TiDB 進行替換。
近幾年,隨著出海趨勢愈發(fā)火熱,同盾科技在出海業(yè)務(wù)勢頭也非常迅猛,業(yè)務(wù)涉及東南亞、北美、歐洲等多個區(qū)域,這就需要在谷歌云、AWS、阿里云等通用公有云上,有一款標(biāo)準(zhǔn)的分布式數(shù)據(jù)庫服務(wù),幫助其在全球快速布局業(yè)務(wù)。而 TiDB Cloud 已經(jīng)在各大主流公有云上提供服務(wù),這也給同盾科技構(gòu)建堅實的技術(shù)底座提供了更好的選擇。