1. Yahoo數(shù)據(jù)倉(cāng)庫(kù)的整體架構(gòu)
Yahoo數(shù)據(jù)倉(cāng)庫(kù)在基礎(chǔ)架構(gòu)上由hadoop集群和Oracle集群組成,hadoop集群是一個(gè)計(jì)算平臺(tái),完成所有ETL數(shù)據(jù)處理過(guò)程;Oracle集群只是一個(gè)查詢環(huán)境。
數(shù)據(jù)通過(guò)Data highway從源系統(tǒng)加載進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)的ODS層,ODS層數(shù)據(jù)保持與源系統(tǒng)數(shù)據(jù)結(jié)構(gòu)一樣。EDW數(shù)據(jù)層并沒(méi)有嚴(yán)格意義的數(shù)據(jù)層次的邏輯細(xì)分,它可能有多層的ETL加工過(guò)程;多層的數(shù)據(jù)存儲(chǔ)。這一個(gè)層數(shù)據(jù)主要采用維度建模的方法,根據(jù)應(yīng)用需求建立數(shù)據(jù)模型。數(shù)據(jù)采用列式存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)。
數(shù)據(jù)經(jīng)過(guò)加工處理完成后,數(shù)據(jù)將會(huì)同步到Oracle的集群中用做數(shù)據(jù)查詢。Yahoo用Oracle做查詢環(huán)境,他們的大量采用了基于時(shí)間RANGE分區(qū)和HASH子分區(qū)的方式來(lái)提升查詢響應(yīng)性能(類似與Greenplum的方式)。數(shù)據(jù)采用了壓縮技術(shù),同時(shí)基于壓縮和讀取的方式上ORACLE官方為他們定制了一些改進(jìn),從而獲取更好的讀取IO和壓縮能力。
MSTR報(bào)表工具連接ORALCE完成大部分報(bào)表查詢功能,同時(shí),如果要查詢最明細(xì)的數(shù)據(jù),工具會(huì)連接到HADOOP集群上,通過(guò)創(chuàng)建一些臨時(shí)表來(lái)滿足查詢功能。
同時(shí),Yahoo的倉(cāng)庫(kù)配備了一個(gè)功能強(qiáng)大的元數(shù)據(jù)管理系統(tǒng),他們的元數(shù)據(jù)是通過(guò)SQL解析,直接將ETL mapping的元數(shù)據(jù)解析進(jìn)入元數(shù)據(jù)庫(kù),做到了字段級(jí)別的MAPPING。同時(shí)他們的PM會(huì)維護(hù)最新的業(yè)務(wù)元數(shù)據(jù)(業(yè)務(wù)規(guī)則,指標(biāo)定義)進(jìn)入的元數(shù)據(jù)庫(kù)系統(tǒng)。
2. Yahoo數(shù)據(jù)倉(cāng)庫(kù)建模方法
Yahoo數(shù)據(jù)倉(cāng)庫(kù)建?;旧喜捎镁S度建模的思想,他們強(qiáng)調(diào)一致的維度在保持?jǐn)?shù)據(jù)倉(cāng)庫(kù)模型的一致性上的作用。他們會(huì)花一定的時(shí)間去識(shí)別每個(gè)新進(jìn)入倉(cāng)庫(kù)的數(shù)據(jù)表,并了解它的業(yè)務(wù)規(guī)則和數(shù)據(jù)屬性,由數(shù)據(jù)架構(gòu)師完成對(duì)數(shù)據(jù)整合的設(shè)計(jì)工作。
Yahoo也建立一些稀疏的寬表,它的基于每個(gè)日志訪問(wèn)記錄表的寬表就有上千個(gè)字段。
3 . Yahoo數(shù)據(jù)倉(cāng)庫(kù)的團(tuán)隊(duì)成員構(gòu)成
Yahoo團(tuán)隊(duì)主要由DHW配置人員,ETL開(kāi)發(fā)人員、數(shù)據(jù)架構(gòu)師、BI分析人員和PM人員組成。他們介紹他們團(tuán)隊(duì)大概有30個(gè)人,應(yīng)該只有一個(gè)PM而且投入也是50%,從這看來(lái)他們的應(yīng)用需求應(yīng)該比我們B2B少很多。
4. Data Architect的職責(zé)
數(shù)據(jù)架構(gòu)師基本上負(fù)責(zé)整個(gè)全局?jǐn)?shù)據(jù)倉(cāng)庫(kù)的模型,表的設(shè)計(jì)。數(shù)據(jù)架構(gòu)師對(duì)掌控整個(gè)倉(cāng)庫(kù)的表結(jié)構(gòu)。同時(shí),Yahoo經(jīng)常從外面收購(gòu)不同的公司,很大一個(gè)職責(zé)和任務(wù)是需要整合新的據(jù)源進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)的模型中。
5. Yahoo實(shí)時(shí)倉(cāng)庫(kù)的現(xiàn)狀
Yahoo的實(shí)時(shí)倉(cāng)庫(kù)應(yīng)用較少,應(yīng)用點(diǎn)就是廣告的結(jié)算使用,按時(shí)間窗口,采用Oracle的LogMiner捕獲準(zhǔn)實(shí)時(shí)變化數(shù)據(jù),通過(guò)事件觸發(fā)后續(xù)的ETL處理過(guò)程。
6. Yahoo對(duì)數(shù)據(jù)倉(cāng)庫(kù)人力資源的使用原則
Yahoo的數(shù)據(jù)倉(cāng)庫(kù)人力資源不在業(yè)務(wù)方,而由自己控制。他們將商業(yè)價(jià)值和對(duì)數(shù)據(jù)倉(cāng)庫(kù)整體影響排在前面兩個(gè)最重要的位置。當(dāng)出現(xiàn)資源沖突的時(shí)候,不由業(yè)務(wù)方的獨(dú)自利益為導(dǎo)向。