設(shè)計(jì)大數(shù)據(jù)系統(tǒng)架構(gòu)的分析
大數(shù)據(jù)的系統(tǒng)架構(gòu)設(shè)計(jì)主要包含3個(gè)方面ETL設(shè)計(jì)、ODS層、OLAP(聯(lián)機(jī)分析處理),重點(diǎn)對(duì)ETL和OLAP進(jìn)行分析:
一、ETL設(shè)計(jì)
ETL是將各個(gè)不同的業(yè)務(wù)系統(tǒng)的數(shù)據(jù)經(jīng)過(guò)抽取(Extrace)、清洗轉(zhuǎn)換(Transform)之后加載(Load)到數(shù)據(jù)倉(cāng)庫(kù)的過(guò)程,目的是將分散、零亂、標(biāo)準(zhǔn)不統(tǒng)一的數(shù)據(jù)整合到一起、為企業(yè)決策提供分析依據(jù)。例如集團(tuán)公司下有多個(gè)業(yè)務(wù)線B2C官網(wǎng)、天貓京東等第三方平臺(tái)下單用戶統(tǒng)一到一個(gè)系統(tǒng)中。
ETL實(shí)現(xiàn)方式有三種:
1、借助ETL工具實(shí)現(xiàn),Informatica、Kettle、Oracle的OWB、SQL server 2000的DTS。借助工具可以快速建立ETL工程,不需要復(fù)雜的工作,但是在提高速度和降低靈活性的同時(shí)也缺少了靈活性。
2、通過(guò)SQL方式實(shí)現(xiàn),優(yōu)點(diǎn)是靈活但是對(duì)技術(shù)要求較高,工作量大。
3、ETL工具和SQL相結(jié)合,綜合兩種方式可以極大的提高ETL的開發(fā)速度和效率。
數(shù)據(jù)抽取
1、與存放DW的數(shù)據(jù)庫(kù)相同數(shù)據(jù)源的處理情況下,部分ETL工具有提供數(shù)據(jù)庫(kù)連接功能,DW數(shù)據(jù)庫(kù)服務(wù)器和原業(yè)務(wù)系統(tǒng)之間建立鏈接關(guān)系通過(guò)SQL查詢語(yǔ)句直接訪問(wèn)。
2、與DW數(shù)據(jù)庫(kù)系統(tǒng)不同數(shù)據(jù)源可以通過(guò)ODBC(開發(fā)數(shù)據(jù)庫(kù)鏈接,解決異構(gòu)數(shù)據(jù)庫(kù)共享而產(chǎn)生)的方式建立數(shù)據(jù)庫(kù)鏈接。也可以通過(guò)工具將元數(shù)據(jù)導(dǎo)出為.txt或.xls文件,也可以通過(guò)程序接口完成。如果是通過(guò)把元數(shù)據(jù)做成文件的形式,需要捋清業(yè)務(wù)類型和加載周期,不同業(yè)務(wù)類型對(duì)應(yīng)不同業(yè)務(wù)線。
3、對(duì)于數(shù)據(jù)量大的系統(tǒng),必須考慮增量抽取,同時(shí)業(yè)務(wù)系統(tǒng)數(shù)據(jù)量每天每小時(shí)每分鐘都在不停的增加。業(yè)務(wù)系統(tǒng)記錄下業(yè)務(wù)發(fā)生的時(shí)間作為時(shí)間戳,這個(gè)時(shí)間戳可以作為增量標(biāo)志,每次抽取之前判斷ODS中記錄的時(shí)間,根據(jù)這個(gè)時(shí)間戳來(lái)抽取數(shù)據(jù)。
數(shù)據(jù)清洗
數(shù)據(jù)清洗就是過(guò)濾掉不符合要求的數(shù)據(jù),不符合要求的數(shù)據(jù)包括:不完整數(shù)據(jù)、錯(cuò)誤數(shù)據(jù)、重復(fù)數(shù)據(jù)。對(duì)于各種不符合要求的數(shù)據(jù)有不同的處理方式。
1、不完整數(shù)據(jù)如果是重要關(guān)鍵的數(shù)據(jù),可以補(bǔ)齊的記錄,由業(yè)務(wù)部門補(bǔ)齊之后在寫入數(shù)據(jù)倉(cāng)庫(kù)。如果是少量非關(guān)鍵數(shù)據(jù)缺失可以忽略。有些非關(guān)鍵數(shù)據(jù)可以通過(guò)后期替換或賦值(回歸模型、決策樹模型、貝葉斯定理、隨機(jī)森林等預(yù)測(cè)缺失值的最近替代量)來(lái)彌補(bǔ)。
2、重復(fù)數(shù)據(jù)的清洗是一個(gè)反復(fù)的過(guò)程,在整理出一批重復(fù)數(shù)據(jù)之后,需要業(yè)務(wù)部門確定排除,同時(shí)也可以作為將來(lái)驗(yàn)證數(shù)據(jù)的依據(jù)。所有工作的前提是保證不能把有效數(shù)據(jù)過(guò)濾。
3、錯(cuò)誤數(shù)據(jù)分為兩種,一種是字符錯(cuò)誤錯(cuò)誤,例如字符串?dāng)?shù)據(jù)后面有一個(gè)回車操作,日期格式不正確等。另外一種是業(yè)務(wù)數(shù)據(jù)錯(cuò)誤,例如兩個(gè)不同平臺(tái)的訂單混亂在一起。對(duì)于第一種錯(cuò)誤數(shù)據(jù)通過(guò)SQL語(yǔ)句修正,第二種數(shù)據(jù)就需要由業(yè)務(wù)人員進(jìn)行判斷。
數(shù)據(jù)轉(zhuǎn)換
需要從多個(gè)不同的業(yè)務(wù)系統(tǒng)抽取,各個(gè)不同的業(yè)務(wù)數(shù)據(jù)涉及到不同數(shù)據(jù)粒度、商務(wù)規(guī)則。
1、不一致數(shù)據(jù)轉(zhuǎn)換是一個(gè)整合過(guò)程,例如同一張訂單在CRM系統(tǒng)和結(jié)算系統(tǒng)中不同的編碼,在抽取之后需要轉(zhuǎn)換成統(tǒng)一的編碼。
2、數(shù)據(jù)粒度的轉(zhuǎn)換,不同系統(tǒng)之間的數(shù)據(jù)維度明細(xì)不一致。數(shù)據(jù)粒度影響著數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)量大小,也影響著可以查詢到的數(shù)據(jù)類型。在數(shù)據(jù)量大小和查詢?cè)敿?xì)程度之間要做出權(quán)衡。
3、商務(wù)規(guī)則不一致,不同的企業(yè)、不同的系統(tǒng)之間會(huì)有不同的數(shù)據(jù)指標(biāo)。
二、ODS層設(shè)計(jì)
ODS,可操作數(shù)據(jù)庫(kù),是存儲(chǔ)整個(gè)數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)的地方,元數(shù)據(jù)經(jīng)過(guò)ETL抽取之后再到OLAP分析庫(kù),ODS設(shè)計(jì)與DW設(shè)計(jì)著眼點(diǎn)不同。
步驟一:數(shù)據(jù)調(diào)研。
步驟二:確定數(shù)據(jù)范圍,在數(shù)據(jù)調(diào)研的基礎(chǔ)對(duì)ODS進(jìn)行主題劃分,需要綜合各種業(yè)務(wù)系統(tǒng)的信息模型,進(jìn)行宏觀歸并。
步驟三:定義主題元素,定義數(shù)據(jù)維度(數(shù)據(jù)維度名稱、維度成員、維度層次、維度成員之間隸屬關(guān)系)、度量、數(shù)據(jù)粒度、存儲(chǔ)期限。
三、OLAP設(shè)計(jì)
在介紹OLAP之前,我們需要知道OLAP(聯(lián)機(jī)分析處理)與OLTP(聯(lián)機(jī)事物處理)的區(qū)別,OLTP是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的主要應(yīng)用,主要是基本的、日常的業(yè)務(wù)處理。OLAP是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的主要應(yīng)用,支持復(fù)雜的分析操作,側(cè)重點(diǎn)是決策支持,提供直觀易懂的查詢結(jié)果。
OLAP通過(guò)多維度來(lái)分析數(shù)據(jù),維度分析方式有鉆取、切片和切塊、旋轉(zhuǎn)。
鉆?。菏歉淖兙S的層次,變換分析的粒度。包括向下鉆取和向上鉆取,向上鉆取是在某一維上將低層次的細(xì)節(jié)概況到高層次的匯總數(shù)據(jù),或者減少維數(shù);向下則是從匯總數(shù)據(jù)深入到細(xì)節(jié)數(shù)據(jù)進(jìn)行觀察或增加新維。
切片和切塊:在一部分維上選定值后,關(guān)心度量數(shù)據(jù)在剩余維上的分布。如果剩余的維只有兩個(gè),則是切片;多個(gè)則是切塊。
旋轉(zhuǎn):在變換維的方向之后,在表格中重新安排維的放置,如進(jìn)行行列互換。
OLAP的關(guān)鍵幾個(gè)概念。
主題:全部數(shù)據(jù)對(duì)象的一個(gè)子集,它代表了某一條業(yè)務(wù)分支或者業(yè)務(wù)過(guò)程,一般而言創(chuàng)建主題是為了按照業(yè)務(wù)對(duì)象或者業(yè)務(wù)過(guò)程進(jìn)行管理。
指標(biāo):指標(biāo)是說(shuō)明總體數(shù)量特征的概念,如GMV、在網(wǎng)用戶數(shù)等。
維度:觀察數(shù)據(jù)的特定角度,考慮為題時(shí)的一類屬性,屬性集合構(gòu)成一個(gè)維度(如地域維度、時(shí)間維度、部門維度)。
維度層次:按業(yè)務(wù)的組織結(jié)構(gòu)表達(dá)數(shù)據(jù)的等級(jí)關(guān)系。數(shù)據(jù)的某個(gè)特定角度下還可以存在細(xì)節(jié)程度不同的各個(gè)描述方面,如時(shí)間維度下的:日期、月份、季度等。
定時(shí)查詢:在定制好OLAP查詢后、根據(jù)用戶設(shè)定的查詢條件和查詢時(shí)間定時(shí)的執(zhí)行查詢,并可將查詢結(jié)果保存以便用戶查看。
即時(shí)查詢:定制好OLAP查詢后,用戶觸發(fā)該查詢方式,同時(shí)可以任意更改查詢的條件值,但查詢的結(jié)果是不能更改的。
數(shù)據(jù)行過(guò)濾:通過(guò)設(shè)定某列數(shù)據(jù)的顯示范圍,過(guò)濾掉不滿足的數(shù)據(jù)顯示,達(dá)到對(duì)數(shù)據(jù)過(guò)濾的目的。
數(shù)據(jù)警告:通過(guò)對(duì)數(shù)據(jù)閾值的設(shè)定,對(duì)滿足閾值設(shè)定的數(shù)據(jù)進(jìn)行特殊標(biāo)識(shí),達(dá)到對(duì)異常數(shù)據(jù)報(bào)警的效果。
大數(shù)據(jù)架構(gòu)設(shè)計(jì)的關(guān)鍵首要是要滿足業(yè)務(wù)需求,提煉業(yè)務(wù)需求的非功能特性,提出針對(duì)性的架構(gòu)設(shè)計(jì)方案。作業(yè)自主研發(fā)能力有限的企業(yè),在大數(shù)據(jù)系統(tǒng)建設(shè)中首要是合理的選擇技術(shù)組件,如果科技力量更強(qiáng)可以考慮參與開源社區(qū)對(duì)組件的優(yōu)化完善等工作中。大數(shù)據(jù)系統(tǒng)架構(gòu)如何設(shè)計(jì)?中琛魔方大數(shù)據(jù)表示大數(shù)據(jù)系統(tǒng)在深度自學(xué)習(xí)外,未來(lái)將通過(guò)逐步開放合作理念,對(duì)接外部第三方平臺(tái),盡可能覆蓋用戶線上線下全生命周期行為軌跡,掌握用戶各行為觸點(diǎn)數(shù)據(jù),結(jié)合機(jī)器自學(xué)習(xí)功能,從根本上提升產(chǎn)品銷售能力和客戶全方位體驗(yàn)感知。