在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的商業(yè)時(shí)代,企業(yè)對(duì)于數(shù)據(jù)處理能力的要求日益嚴(yán)苛,不僅需要海量數(shù)據(jù)的實(shí)時(shí)寫入與存儲(chǔ),更追求極致的查詢分析速度。天眼查,作為國(guó)內(nèi)領(lǐng)先的商業(yè)查詢平臺(tái),其背后是萬(wàn)億量級(jí)的商業(yè)關(guān)系圖譜和實(shí)時(shí)變動(dòng)的企業(yè)信息。為應(yīng)對(duì)數(shù)據(jù)實(shí)時(shí)性、查詢性能與系統(tǒng)擴(kuò)展性的多重挑戰(zhàn),天眼查選擇了基于Apache Doris構(gòu)建其統(tǒng)一的實(shí)時(shí)數(shù)據(jù)倉(cāng)庫(kù),實(shí)現(xiàn)了“秒級(jí)數(shù)據(jù)寫入,毫秒級(jí)查詢響應(yīng)”的核心目標(biāo)。
一、挑戰(zhàn):海量、實(shí)時(shí)與復(fù)雜的查詢需求
天眼查的業(yè)務(wù)場(chǎng)景對(duì)數(shù)據(jù)處理提出了幾大核心挑戰(zhàn):
- 數(shù)據(jù)實(shí)時(shí)性要求高:企業(yè)信息變更、司法動(dòng)態(tài)、新聞?shì)浨榈刃枰鯇?shí)時(shí)地更新至平臺(tái),供用戶查詢。
- 查詢復(fù)雜度與并發(fā)量巨大:用戶進(jìn)行的商業(yè)關(guān)系挖掘、風(fēng)險(xiǎn)篩查等查詢往往涉及多表關(guān)聯(lián)、深度聚合,且面臨高并發(fā)訪問(wèn)壓力。
- 數(shù)據(jù)規(guī)模龐大:處理并存儲(chǔ)千億級(jí)別的企業(yè)關(guān)系與行為數(shù)據(jù),且需保證歷史數(shù)據(jù)的可分析性。
- 系統(tǒng)需要簡(jiǎn)化:期望用一個(gè)系統(tǒng)同時(shí)滿足實(shí)時(shí)數(shù)據(jù)接入、交互式即席查詢和離線數(shù)據(jù)分析,降低運(yùn)維復(fù)雜度與成本。
二、選型:為何是Apache Doris?
在評(píng)估了多個(gè)大數(shù)據(jù)組件后,Apache Doris憑借其獨(dú)特的架構(gòu)優(yōu)勢(shì)脫穎而出,成為天眼查統(tǒng)一實(shí)時(shí)數(shù)倉(cāng)的基石:
- 極速的查詢性能:Doris采用MPP(大規(guī)模并行處理)架構(gòu),列式存儲(chǔ)引擎和向量化執(zhí)行模型,即便是對(duì)千億級(jí)數(shù)據(jù)進(jìn)行多維度分析,也能保證毫秒到秒級(jí)的查詢響應(yīng),完美支持高并發(fā)即席查詢。
- 高效的實(shí)時(shí)數(shù)據(jù)接入:支持通過(guò)Stream Load等方式實(shí)現(xiàn)秒級(jí)數(shù)據(jù)導(dǎo)入,能夠無(wú)縫對(duì)接Kafka等消息隊(duì)列,滿足天眼查對(duì)數(shù)據(jù)實(shí)時(shí)更新的嚴(yán)苛要求。
- 統(tǒng)一的數(shù)據(jù)服務(wù):Doris同時(shí)支持高吞吐的批處理數(shù)據(jù)和低延遲的實(shí)時(shí)數(shù)據(jù),實(shí)現(xiàn)了“離線”與“實(shí)時(shí)”數(shù)倉(cāng)的統(tǒng)一,簡(jiǎn)化了技術(shù)棧。
- 易用與易運(yùn)維:兼容MySQL協(xié)議,開發(fā)人員可以像使用傳統(tǒng)數(shù)據(jù)庫(kù)一樣輕松上手;支持在線彈性擴(kuò)縮容,運(yùn)維成本相對(duì)較低。
三、實(shí)踐:天眼查的統(tǒng)一實(shí)時(shí)數(shù)倉(cāng)架構(gòu)
天眼查基于Apache Doris構(gòu)建的數(shù)倉(cāng)架構(gòu),實(shí)現(xiàn)了從數(shù)據(jù)接入到服務(wù)應(yīng)用的流暢閉環(huán):
- 實(shí)時(shí)數(shù)據(jù)管道:通過(guò)Flink、Kafka等組件將各種實(shí)時(shí)數(shù)據(jù)源(如企業(yè)變更流、新聞流)進(jìn)行初步處理,然后利用Doris的Stream Load功能,以秒級(jí)延遲持續(xù)導(dǎo)入Doris實(shí)時(shí)數(shù)倉(cāng)。
- 統(tǒng)一存儲(chǔ)與計(jì)算層:Apache Doris作為核心存儲(chǔ)與計(jì)算引擎,承載了所有明細(xì)數(shù)據(jù)和聚合模型。通過(guò)精心設(shè)計(jì)的表結(jié)構(gòu)、分區(qū)與物化視圖,在保證數(shù)據(jù)實(shí)時(shí)性的對(duì)復(fù)雜查詢進(jìn)行了大幅優(yōu)化。
- 高效查詢服務(wù)層:應(yīng)用端直接通過(guò)標(biāo)準(zhǔn)SQL或JDBC/ODBC接口訪問(wèn)Doris。Doris的優(yōu)異性能確保了前端復(fù)雜的圖譜分析、風(fēng)險(xiǎn)探查等查詢操作都能獲得即時(shí)反饋,提升了用戶體驗(yàn)。
- 數(shù)據(jù)管理與治理:利用Doris提供的權(quán)限管理、多租戶隔離等功能,保障了數(shù)據(jù)安全與資源合理分配。
四、成效:性能與效率的飛躍
遷移至基于Apache Doris的統(tǒng)一實(shí)時(shí)數(shù)倉(cāng)后,天眼查獲得了顯著的收益:
- 查詢性能量級(jí)提升:大多數(shù)核心業(yè)務(wù)查詢響應(yīng)時(shí)間從原來(lái)的分鐘級(jí)降至毫秒到秒級(jí),復(fù)雜關(guān)聯(lián)分析效率提升數(shù)十倍。
- 數(shù)據(jù)時(shí)效性革命:關(guān)鍵企業(yè)信息與風(fēng)險(xiǎn)變動(dòng)的數(shù)據(jù)更新延遲從小時(shí)級(jí)縮短至秒級(jí),極大地增強(qiáng)了數(shù)據(jù)的決策價(jià)值和用戶體驗(yàn)。
- 架構(gòu)大幅簡(jiǎn)化:合并了原有的多個(gè)在線與離線系統(tǒng),降低了數(shù)據(jù)冗余,統(tǒng)一了數(shù)據(jù)口徑,運(yùn)維和開發(fā)成本顯著降低。
- 支撐業(yè)務(wù)創(chuàng)新:強(qiáng)大的實(shí)時(shí)分析能力為天眼查開發(fā)更深度的商業(yè)洞察、風(fēng)險(xiǎn)監(jiān)控等增值服務(wù)提供了堅(jiān)實(shí)的數(shù)據(jù)基礎(chǔ)。
五、
天眼查的成功實(shí)踐表明,Apache Doris作為一款現(xiàn)代化的MPP分析型數(shù)據(jù)庫(kù),完全有能力支撐起超大規(guī)模數(shù)據(jù)下的實(shí)時(shí)寫入與極速查詢需求。其“統(tǒng)一、實(shí)時(shí)、極速”的特性,正幫助越來(lái)越多的企業(yè)像天眼查一樣,構(gòu)建簡(jiǎn)潔、高效且面向未來(lái)的數(shù)據(jù)平臺(tái),將數(shù)據(jù)價(jià)值以前所未有的速度轉(zhuǎn)化為業(yè)務(wù)競(jìng)爭(zhēng)力。在追求實(shí)時(shí)數(shù)據(jù)驅(qū)動(dòng)的道路上,Apache Doris已成為一個(gè)值得信賴的關(guān)鍵技術(shù)選擇。