更簡(jiǎn)潔更高效,Doris對(duì)比ClickHouse、MySQL、Presto、HBase
構(gòu)建統(tǒng)一的OLAP
OLAP,即在線(xiàn)分析處理平臺(tái)。
保險(xiǎn)公司試圖構(gòu)建一個(gè)數(shù)據(jù)倉(cāng)庫(kù),能夠承擔(dān)面向客戶(hù)、分析師和管理層的數(shù)據(jù)分析工作負(fù)載。主要任務(wù)包括:
- 自助保險(xiǎn)合同查詢(xún):保險(xiǎn)客戶(hù)可以通過(guò)合同ID檢查其合同詳情。它還應(yīng)支持諸如保險(xiǎn)期限、保險(xiǎn)類(lèi)型和理賠金額等篩選條件。
 - 多維分析:分析師根據(jù)需要基于不同的數(shù)據(jù)維度開(kāi)發(fā)報(bào)告,以便提取見(jiàn)解,促進(jìn)產(chǎn)品創(chuàng)新和反欺詐工作。
 - 儀表盤(pán):創(chuàng)建保險(xiǎn)銷(xiāo)售趨勢(shì)的可視化概覽,以及不同指標(biāo)的橫向和縱向比較。
 

組建數(shù)據(jù)架構(gòu)
用戶(hù)從Lambda架構(gòu)開(kāi)始,將數(shù)據(jù)流水線(xiàn)分為批處理環(huán)節(jié)和流處理環(huán)節(jié)。對(duì)于實(shí)時(shí)數(shù)據(jù)流,采用Flink CDC;對(duì)于批量導(dǎo)入,結(jié)合Sqoop、Python和DataX構(gòu)建自己的數(shù)據(jù)集成工具,名為Hisen。

然后,實(shí)時(shí)數(shù)據(jù)和離線(xiàn)數(shù)據(jù)在數(shù)據(jù)倉(cāng)庫(kù)層匯合,該層由五個(gè)組件組成。
1.ClickHouse
數(shù)據(jù)倉(cāng)庫(kù)采用扁平表設(shè)計(jì),ClickHouse在扁平表讀取方面表現(xiàn)出色。但隨著業(yè)務(wù)的發(fā)展,ClickHouse面臨兩個(gè)挑戰(zhàn):
- 為了支持跨表連接和點(diǎn)查詢(xún),用戶(hù)需要星型模式,但在ClickHouse中實(shí)現(xiàn)起來(lái)很困難。
 - 保險(xiǎn)合同的更改需要實(shí)時(shí)更新到數(shù)據(jù)倉(cāng)庫(kù)。在ClickHouse中,這是通過(guò)重新創(chuàng)建扁平表覆蓋舊表來(lái)完成的,但速度不夠快。
 
2.MySQL
計(jì)算后的數(shù)據(jù)指標(biāo)存儲(chǔ)在MySQL中,但隨著數(shù)據(jù)規(guī)模的增長(zhǎng),MySQL開(kāi)始出現(xiàn)問(wèn)題,如執(zhí)行時(shí)間延長(zhǎng)和錯(cuò)誤。
3.Apache Hive + Presto
Hive是批處理環(huán)節(jié)的主要執(zhí)行器。它可以轉(zhuǎn)換、聚合和查詢(xún)離線(xiàn)數(shù)據(jù)。Presto是Hive的補(bǔ)充,用于交互式分析。
4.Apache HBase
HBase負(fù)責(zé)主鍵查詢(xún)。它從MySQL和Hive中讀取客戶(hù)狀態(tài),包括客戶(hù)信用、保險(xiǎn)期限和保額總和。然而,由于HBase不支持二級(jí)索引,它在讀取非主鍵列方面的能力有限。另外,作為NoSQL數(shù)據(jù)庫(kù),HBase不支持SQL語(yǔ)句。
這些組件必須相互協(xié)作,以滿(mǎn)足所有需求,使得數(shù)據(jù)倉(cāng)庫(kù)的工作量過(guò)大。這不容易上手,因?yàn)楣こ處煴仨毥邮芩羞@些組件的培訓(xùn)。此外,架構(gòu)的復(fù)雜性增加了延遲風(fēng)險(xiǎn)。
因此,用戶(hù)試圖尋找一個(gè)能更好滿(mǎn)足他們需求的工具。首先需要的是實(shí)時(shí)能力,包括實(shí)時(shí)寫(xiě)入、實(shí)時(shí)更新和對(duì)數(shù)據(jù)查詢(xún)的實(shí)時(shí)響應(yīng)。其次,需要更靈活的數(shù)據(jù)分析能力,以支持面向客戶(hù)的自助查詢(xún),如多維分析、大表的連接查詢(xún)、主鍵索引、匯總和鉆取。然后,在批處理方面,還希望數(shù)據(jù)寫(xiě)入具有高吞吐量。
最終選擇了Apache Doris。
用Apache Doris替換四個(gè)組件
Apache Doris能夠進(jìn)行實(shí)時(shí)和離線(xiàn)數(shù)據(jù)分析,支持高吞吐量的交互式分析和高并發(fā)的點(diǎn)查詢(xún)。這就是為什么它可以取代ClickHouse、MySQL、Presto和Apache HBase,并作為整個(gè)數(shù)據(jù)系統(tǒng)的統(tǒng)一查詢(xún)網(wǎng)關(guān)。

改進(jìn)后的數(shù)據(jù)流水線(xiàn)是一個(gè)更簡(jiǎn)潔的Lambda架構(gòu)。
Apache Doris提供了各種數(shù)據(jù)攝取方法。它在數(shù)據(jù)寫(xiě)入方面速度快。此外,它還實(shí)現(xiàn)了寫(xiě)入合并(Merge-on-Write)以提高并發(fā)點(diǎn)查詢(xún)的性能。
1.降低成本
新架構(gòu)降低了用戶(hù)的人力成本。一方面,更簡(jiǎn)單的數(shù)據(jù)架構(gòu)使得維護(hù)更加容易;另一方面,開(kāi)發(fā)人員不再需要在數(shù)據(jù)服務(wù)API中連接實(shí)時(shí)和離線(xiàn)數(shù)據(jù)。
用戶(hù)還可以通過(guò)使用Doris節(jié)省金錢(qián),因?yàn)樗С址謱哟鎯?chǔ)。它允許用戶(hù)將大量很少訪(fǎng)問(wèn)的歷史數(shù)據(jù)存儲(chǔ)在對(duì)象存儲(chǔ)中,這樣存儲(chǔ)數(shù)據(jù)的成本更低。
2.提高效率
Apache Doris可以達(dá)到數(shù)萬(wàn)的查詢(xún)每秒(QPS),并在毫秒內(nèi)響應(yīng)數(shù)十億的點(diǎn)查詢(xún),因此它可以輕松處理面向客戶(hù)的查詢(xún)。將熱數(shù)據(jù)與冷數(shù)據(jù)分離的分層存儲(chǔ)也提高了查詢(xún)效率。
3.服務(wù)可用性
作為存儲(chǔ)、計(jì)算和數(shù)據(jù)服務(wù)的統(tǒng)一數(shù)據(jù)倉(cāng)庫(kù),Apache Doris方便了災(zāi)難恢復(fù)。由于組件較少,不必?fù)?dān)心數(shù)據(jù)丟失或重復(fù)。
用戶(hù)的服務(wù)可用性的重要保證是Apache Doris的跨集群復(fù)制(CCR)功能。它可以在幾分鐘甚至幾秒鐘內(nèi)將數(shù)據(jù)從集群同步到集群,并實(shí)現(xiàn)兩種機(jī)制來(lái)確保數(shù)據(jù)可靠性:
- Binlog:該機(jī)制可以自動(dòng)記錄數(shù)據(jù)更改并為每個(gè)數(shù)據(jù)修改操作生成一個(gè)日志ID。增量日志ID確保數(shù)據(jù)更改可追溯和有序。
 - 數(shù)據(jù)持久化:在系統(tǒng)崩潰或緊急情況下,數(shù)據(jù)將存儲(chǔ)在磁盤(pán)中。
 
對(duì)Apache Doris的深入了解
Apache Doris可以替代ClickHouse、MySQL、Presto和HBase,因?yàn)樗谡麄€(gè)數(shù)據(jù)處理流程中具備全面的能力。
在數(shù)據(jù)攝取方面,Apache Doris基于對(duì)Flink CDC和寫(xiě)入合并的支持,實(shí)現(xiàn)低延遲的實(shí)時(shí)寫(xiě)入。它通過(guò)標(biāo)簽機(jī)制和事務(wù)加載來(lái)保證寫(xiě)入的Exactly-Once。
在數(shù)據(jù)查詢(xún)方面,Apache Doris支持星型模式和扁平表聚合,因此可以在多表連接和大型單表查詢(xún)中提供高性能。Apache Doris還提供了各種加速不同查詢(xún)的方法,如用于全文搜索和范圍查詢(xún)的倒排索引,用于點(diǎn)查詢(xún)的短路查詢(xún)計(jì)劃和預(yù)編譯語(yǔ)句等。















 
 
 










 
 
 
 