大數(shù)據(jù),其實(shí)就是數(shù)據(jù)庫技術(shù)以及分布式體系的結(jié)合。所以要搞好大數(shù)據(jù),就得從這兩方面入手!
今天咱們主要聊聊數(shù)據(jù)倉庫技術(shù)。本質(zhì)上,數(shù)據(jù)倉庫就是一種數(shù)據(jù)庫,由一張一張數(shù)據(jù)表組成,用來存放數(shù)據(jù)。
當(dāng)然,兩者之間的差異也是非常大的,比如數(shù)據(jù)庫是為捕獲數(shù)據(jù)而設(shè)計(jì)的,數(shù)據(jù)倉庫是為分析數(shù)據(jù)而生。目的和應(yīng)用場景不同,讓它們在架構(gòu)體系和建模設(shè)計(jì)上面有非常大的不同。這里就不過多贅述了。
數(shù)倉通常是一個(gè)企業(yè)數(shù)據(jù)分析的起點(diǎn),架構(gòu)和邏輯一般如下圖所示:

數(shù)倉在構(gòu)建的時(shí)候通常需要ETL處理和分層設(shè)計(jì),基于業(yè)務(wù)系統(tǒng)采集的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行各種ETL處理成為DWD層,再基于DWD層設(shè)計(jì)上層的數(shù)據(jù)模型層,形成DM,中間會(huì)有DWB/DWS作為部分中間過程數(shù)據(jù)。
而在實(shí)踐中,數(shù)倉隨著技術(shù)和業(yè)務(wù)的不斷發(fā)展,也演進(jìn)出了幾種主要的架構(gòu)方法,從傳統(tǒng)數(shù)倉架構(gòu),到Lambda架構(gòu)(離線數(shù)倉+實(shí)時(shí)數(shù)倉),再到Kappa架構(gòu)(實(shí)時(shí)數(shù)倉)不一而足。
各個(gè)架構(gòu)各有優(yōu)劣,實(shí)際工作中到底選擇哪種架構(gòu),還是需要根據(jù)具體的業(yè)務(wù)需求來決定。
當(dāng)然,更多的時(shí)候,為了應(yīng)對更廣泛的場景,大多數(shù)公司采用的是混合架構(gòu),也就是Lambda和Kappa的結(jié)合,比如大部分實(shí)時(shí)指標(biāo)統(tǒng)計(jì)使用Kappa架構(gòu)完成計(jì)算,少量關(guān)鍵指標(biāo)使用Lambda架構(gòu)用批處理重新計(jì)算,增加一次校對過程。
這些復(fù)雜架構(gòu)落地的過程中,大數(shù)據(jù)工程師們會(huì)面臨非常多的挑戰(zhàn),比如離線&實(shí)時(shí)數(shù)倉的技術(shù)選型要怎么選、分層設(shè)計(jì)要怎么做,更具體的,基于Spark SQL的離線數(shù)倉要怎么搭建、基于FlinkSQL的實(shí)時(shí)數(shù)倉又要怎么搭建……非常容易踩坑!
(部分內(nèi)容來源網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系刪除)