TiDB ✖️ 智慧芽 | HTAP 爲實時數據服務插上翅膀

數字化轉型的推進使得越來越多企業正面臨前所未有的數據規模,隨着商業競爭的日趨加劇,無論是外部的用戶還是公司內部的決策已經無法依賴時效性不佳的離線數據分析,需要更實時的數據分析,甚至是對正在發生的交易數據進行分析,以支撐更加敏捷的商業決策。

成爲主流趨勢的 HTAP

由 Gartner 提出的 HTAP 數據庫(混合事務 / 分析處理,Hybrid Transactional/Analytical Processing)成爲希望。基於創新的計算存儲框架,HTAP 數據庫能夠在一份數據上同時支撐OLTP 和 OLAP 場景,避免在傳統架構中,在線與離線數據庫之間大量的數據交互。HTAP 數據庫基於分佈式架構,支持彈性擴容,可按需擴展吞吐或存儲,輕鬆應對高併發、海量數據場景。當下,由 HTAP 數據庫提供的快速分析能力已經成爲企業的核心競爭力之一。

業務挑戰

智慧芽(PatSnap)是一家科技創新情報 SaaS(軟件即服務)服務商,聚焦科技創新情報和知識產權信息化服務兩大板塊,爲全球 50 多個國家超 10000 家科技公司、高校、科研與金融機構提供大數據情報服務。在數據源方面,智慧芽已存儲了 1.5 億多個全球專利數據、1.7 億多個化學結構數據,以及千萬級財務新聞、科技文獻、市場報告、投資信息等海量數據。隨着業務場景的不斷拓展和用戶規模的迅速增長,業務運營過程中,智慧芽深度依賴對實時數據的分析和結果呈現,需要進行用戶行爲分析,提供實時大盤和特定場景的運營數據,對流量和服務的分析也不可或缺。智慧芽原先採用 Segment 與 Redshift 的數據分析架構,僅構建出了ODS 層,數據寫入的規則和 schema 不受控制,且需要針對 ODS 編寫複雜的 ETL 來按照業務需求進行各類指標的計算來完成上層業務的數據請求。Redshift 中落庫數據量大,計算慢(T+1時效),影響對外服務的效率。

TiDB + Flink 實時數倉方案

經過多輪選型和對比測試,智慧芽選用 TiDB + Flink 實時數倉方案拓展數據分析架構體系的能力版圖。TiDB HTAP 是一個可擴展的行存和列存整合的架構,在存儲上是可以使用分離的不同的節點,可以確保 OLTP 和 OLAP 兩邊互相之間沒有干擾,實時性、一致性、可延展性都能得到很好的保證。Flink 是一個低延遲、高吞吐、流批統一的大數據計算引擎,被普遍用於高實時性場景下的實時計算,具有支持 exactly-once 等重要特性。結合了 TiDB HTAP 與 Flink 兩者的特性,Flink + TiDB 的方案優勢顯而易見:首先是速度有保障,兩者都可以通過水平擴展節點來增加算力;其次,TiDB 深度兼容 MySQL 協議,Flink 提供 Flink SQL 和強大的連接器來編寫和提交任務,學習和配置成本相對較低。

智慧芽實時數據分析平臺架構

替換爲基於 Kinesis + Flink + TiDB 構建的實時數倉架構後,不再需要構建 ODS 層。Flink 作爲前置計算單元,直接從業務出發構建出 Flink Job ETL,完全控制了落庫規則並自定義schema,即僅把業務關注的指標進行清洗並寫入 TiDB 來進行後續的分析查詢,寫入數據量大幅減少。
按用戶/租戶、地區、業務動作等關注的指標,結合分鐘、小時、天等不同粒度的時間窗口等,在 TiDB 上構建出 DWD/DWS/ADS 層,直接服務業務上的統計、清單等需求,上層應用可直接使用構建好的數據,且獲得了秒級的實時能力。
這套實時數據分析平臺架構實現了真正意義的 Real Time Data as a Service,目前應用於慧芽用戶行爲分析和追蹤、租戶行爲分析等實時分析場景,併爲業務運營大盤提供實時數據支撐。

應用價值

在使用了新架構後,入庫數據量、入庫規則和計算複雜度都大大下降,數據在 Flink Job 中已經按照業務需求處理完成並寫入 TiDB,無需基於 Redshift 的 全量 ODS 層進行 T+1 ETL。基於 TiDB 構建的實時數倉,通過合理的數據分層,架構上獲得了極大的精簡,開發維護也變得更加簡單,在數據查詢、更新、寫入性能上都獲得大幅度提升。在滿足不同的 adhoc 分析需求時,不再需要等待類似 Redshift 預編譯的過程,易於開發且擴容方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章