無論你是否專門從事大數(shù)據(jù)開發(fā),作為一個開發(fā)人員,,應該都聽說過數(shù)據(jù)倉庫的概念,,那你知道為什么會出現(xiàn)數(shù)據(jù)倉庫?數(shù)據(jù)倉庫究竟是干嘛的嗎,?有什么價值和意義呢,?那么本文就帶到入門,揭開數(shù)據(jù)倉庫的面紗,。 數(shù)據(jù)倉庫的由來數(shù)據(jù)倉庫為何而來,,主要解決什么問題的? 先下結(jié)論:為了分析數(shù)據(jù)而來,,分析結(jié)果為企業(yè)決策提供支撐,。舉個簡單的例子,比如你們公司要要判斷明年是否要進入生產(chǎn)口罩,,那么就需要數(shù)據(jù)支撐,,比如口罩市場的需求、飽和率,、利潤等等,,然后借由分析結(jié)果,去做判斷決策,,而不是拍腦袋,,不然大概率就是虧本的。 下面再以一個中國人壽保險公司發(fā)展為例,,詳細闡述數(shù)據(jù)倉庫為何而來,? (1)OLTP系統(tǒng)處理業(yè)務(wù)數(shù)據(jù) 中國人壽保險(集團)公司下轄多條業(yè)務(wù)線,包括:人壽險,、財險,、車險,養(yǎng)老險等,。各業(yè)務(wù)線的業(yè)務(wù)正常運營需要記錄維護包括客戶,、保單、收付費,、核保,、理賠等信息,。這么多業(yè)務(wù)數(shù)據(jù)存儲在哪里呢? 這些通用的業(yè)務(wù)行為一般是發(fā)在聯(lián)機事務(wù)處理系統(tǒng)(OLTP), 其主要任務(wù)是執(zhí)行聯(lián)機事務(wù)處理,,前臺接收的用戶數(shù)據(jù)可以立即傳送到后臺進行處理,,并在很短的時間內(nèi)給出處理結(jié)果。 通常來說,,這些業(yè)務(wù)數(shù)據(jù)最終都是落在關(guān)系型數(shù)據(jù)庫中的,,關(guān)系型數(shù)據(jù)庫(RDBMS)是OLTP典型應用,比如:Oracle,、MySQL,、SQL Server等 這只是最基礎(chǔ)的業(yè)務(wù),但是隨著業(yè)務(wù)規(guī)模的不斷發(fā)展,,衍生出了更多的數(shù)據(jù)分析型需求,,用OLTP可行嗎? (2)分析型決策需求衍生 隨著集團業(yè)務(wù)的持續(xù)運營,,業(yè)務(wù)數(shù)據(jù)將會越來越多,。由此也產(chǎn)生出許多運營相關(guān)的需求問題:
...... 為了能夠正確認識這些問題,,制定相關(guān)的解決措施,瞎拍桌子是肯定不行的,。最穩(wěn)妥辦法就是:基于業(yè)務(wù)數(shù)據(jù)開展數(shù)據(jù)分析,,基于分析的結(jié)果給決策提供支撐。也就是所謂的數(shù)據(jù)驅(qū)動決策的制定,。 OLTP環(huán)境開展分析可行嗎,? 可以,但是沒必要,。OLTP系統(tǒng)的核心是面向業(yè)務(wù),,支持業(yè)務(wù),支持事務(wù),。所有的業(yè)務(wù)操作可以分為讀,、寫兩種操作,一般來說讀的壓力明顯大于寫的壓力,。如果在OLTP環(huán)境直接開展各種分析,,有以下問題需要考慮:
(3)數(shù)據(jù)倉庫面世 當分析所涉及數(shù)據(jù)規(guī)模較小的時候,,在業(yè)務(wù)低峰期時可以在OLTP系統(tǒng)上開展直接分析,。但為了更好的進行各種規(guī)模的數(shù)據(jù)分析,同時也不影響OLTP系統(tǒng)運行,,此時需要構(gòu)建一個集成統(tǒng)一的數(shù)據(jù)分析平臺,。該平臺的目的很簡單:面向分析,支持分析,,并且和OLTP系統(tǒng)解耦合,?;谶@種需求,,數(shù)據(jù)倉庫的雛形開始在企業(yè)中出現(xiàn)了。 數(shù)據(jù)倉庫是一個用于存儲,、分析,、報告的數(shù)據(jù)系統(tǒng),目的是構(gòu)建面向分析的集成化數(shù)據(jù)環(huán)境,。我們把這種面向分析,、支持分析的系統(tǒng)稱之為OLAP(聯(lián)機分析處理)系統(tǒng)。當然,,數(shù)據(jù)倉庫是OLAP系統(tǒng)的一種實現(xiàn),。
數(shù)據(jù)倉庫介紹數(shù)據(jù)倉庫(英語:Data Warehouse,,簡稱數(shù)倉、DW),是一個用于存儲,、分析,、報告的數(shù)據(jù)系統(tǒng),主要目的是構(gòu)建面向分析的集成化數(shù)據(jù)環(huán)境,,分析結(jié)果為企業(yè)提供決策支持(Decision Support),。
數(shù)倉四大特征那么數(shù)據(jù)倉庫都有什么特點呢? 面向主題性(Subject-Oriented)
集成性 主題相關(guān)的數(shù)據(jù)通常會分布在多個操作型系統(tǒng)中,,彼此分散、獨立,、異構(gòu),。
下圖說明了保險公司綜合數(shù)據(jù)的簡單處理過程,,其中數(shù)據(jù)倉庫中與“承?!敝黝}有關(guān)的數(shù)據(jù)來自于多個不同的操作型系統(tǒng)。 非易失性,、非異變性
時變性
數(shù)據(jù)倉庫架構(gòu)通常情況下,,為了把一個復雜的工作拆成了多個簡單的工作,,一般將數(shù)據(jù)倉庫架構(gòu)分為三層,即數(shù)據(jù)操作層,、數(shù)據(jù)倉庫層和應用數(shù)據(jù)層(數(shù)據(jù)集市層),。 ODS(Operation Data Store 數(shù)據(jù)準備區(qū)) 數(shù)據(jù)倉庫源頭系統(tǒng)的數(shù)據(jù)表通常會原封不動的存儲一份,這稱為ODS層,,也稱為準備區(qū),。它們是后續(xù)數(shù)據(jù)倉庫層加工數(shù)據(jù)的來源。ODS層數(shù)據(jù)的主要來源是業(yè)務(wù)數(shù)據(jù)庫,、埋點日志,、其他數(shù)據(jù)源。
DW(Data Warehouse 數(shù)據(jù)倉庫層) 該層包含DWD,、DWS、DIM層,,由ODS層數(shù)據(jù)加工而成,,主要是完成數(shù)據(jù)加工與整合,建立一致性的維度,,構(gòu)建可復用的面向分析和統(tǒng)計的明細事實表,,以及匯總公共粒度的指標。
ADS(Application Data Store 應用數(shù)據(jù)層) 該層是基于DW層的數(shù)據(jù),整合匯總成主題域的服務(wù)數(shù)據(jù),,用于提供后續(xù)的業(yè)務(wù)查詢等,。 數(shù)據(jù)倉庫開發(fā)語言數(shù)倉作為面向分析的數(shù)據(jù)平臺,其主職工作就是對存儲在其中的數(shù)據(jù)開展分析,,那么如何讀取數(shù)據(jù)分析呢,? 理論上來說,任何一款編程語言只要具備讀寫數(shù)據(jù),、處理數(shù)據(jù)的能力,,都可以用于數(shù)倉的開發(fā)。比如大家耳熟能詳?shù)腃、java,、Python等,。但是這些編程一員的學習成本和開發(fā)效率都不是十分友好,在數(shù)據(jù)分析領(lǐng)域中,,SQL語言功能很強,,十分簡潔,用戶也容易學習和使用,,是主流的語言,。比如比較常用的數(shù)據(jù)倉庫工具Hive就是支持SQL的語法。 總結(jié) 本文通過例子講清楚了數(shù)據(jù)倉庫的來源,,以及在企業(yè)應用中的必要性,,主要是為了構(gòu)建一個面向分析的集成化數(shù)據(jù)環(huán)境,分析結(jié)果可以為企業(yè)提供決策支持,,真正實現(xiàn)數(shù)據(jù)驅(qū)動決策的目的,。實際上數(shù)據(jù)倉庫的建設(shè)遠比上面提到的復雜,需要花費很大的成本,,因此需要考慮清楚,。 本文來自博客園,作者JAVA旭陽 |
|