真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)據(jù)倉庫建模與ETL的實踐技巧有哪些

小編給大家分享一下數(shù)據(jù)倉庫建模與ETL的實踐技巧有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在和田縣等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站設計、網(wǎng)站建設 網(wǎng)站設計制作按需求定制開發(fā),公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站設計,全網(wǎng)整合營銷推廣,成都外貿(mào)網(wǎng)站建設公司,和田縣網(wǎng)站建設費用合理。

一、Data倉庫的架構

Data倉庫(Data Warehouse DW)是為了便于多維分析和多角度展現(xiàn)而將Data按特定的模式進行存儲所建立起來的關系型Datcbase,它的Data基于OLTP源Systam。Data倉庫中的Data是細節(jié)的、集成的、面向主題的,以OLAPSystam的分析需求為目的。

Data倉庫的架構模型包括了星型架構與雪花型架構兩種模式。星型架構的中間為事實表,四周為維度表,類似星星;而相比較而言,雪花型架構的中間為事實表,兩邊的維度表可以再有其關聯(lián)子表,從而表達了清晰的維度層次關系。

OLAPSystam的分析需求和ETL的處理效率兩方面來考慮:星型結構聚合快,分析效率高;而雪花型結構明確,便于與OLTPSystam交互。因此,在實際項目中,我們將綜合運用星型架構與雪花型架構來設計Data倉庫。

那么,下面我們就來看一看,構建企業(yè)級Data倉庫的流程。

二、構建企業(yè)級Data倉庫五步法

(一)、確定主題

即確定Data分析或前端展現(xiàn)的主題。例如:我們希望分析某年某月某一地區(qū)的啤酒銷售情況,這就是一個主題。主題要體現(xiàn)出某一方面的各分析角度(維度)和統(tǒng)計數(shù)value型Data(量度)之間的關系,確定主題時要綜合考慮。

我們可以形象的將一個主題想象為一顆星星:統(tǒng)計數(shù)value型Data(量度)存在于星星中間的事實表;分析角度(維度)是星星的各個角;我們將通過維度的組合,來考察量度。那么,“某年某月某一地區(qū)的啤酒銷售情況”這樣一個主題,就要求我們通過時間和地區(qū)兩個維度的組合,來考察銷售情況這個量度。從而,不同的主題來源于Data倉庫中的不同子集,我們可以稱之為Data集市。Data集市體現(xiàn)了Data倉庫某一方面的信息,多個Data集市構成了Data倉庫。

(二)、確定量度

在確定了主題以后,我們將考慮要分析的技術指標,諸如年銷售額之類。它們一般為數(shù)value型Data。我們或者將該Data匯總,或者將該Data取次數(shù)、獨立次數(shù)或取最大最小value等,這樣的Data稱為量度。

量度是要統(tǒng)計的指標,必須事先選擇恰當,基于不同的量度可以進行復雜關鍵性能指標(KPI)等的設計和計算。

(三)、確定事實Data粒度

在確定了量度之后,我們要考慮到該量度的匯總情況和不同維度下量度的聚合情況??紤]到量度的聚合程度不同,我們將采用“最小粒度原則”,即將量度的粒度設置到最小。

例如:假設目前的Data最小記錄到秒,即Datcbase中記錄了每一秒的交易額。那么,如果我們可以確認,在將來的分析需求中,時間只需要精確到天就可以的話,我們就可以在ETL處理過程中,按天來匯總Data,此時,Data倉庫中量度的粒度就是“天”;反過來,如果我們不能確認將來的分析需求在時間上是否需要精確到秒,那么,我們就需要遵循“最小粒度原則”,在Data倉庫的事實表中保留每一秒的Data,以便日后對“秒”進行分析。

在采用“最小粒度原則”的同時,我們不必擔心海量Data所帶來的匯總分析效率問題,因為在后續(xù)建立多維分析模型(CUBE)的時候,我們會對Data提前進行匯總,從而保障產(chǎn)生分析結果的效率。關于建立多維分析模型(CUBE)的相關問題,我們將在下期欄目中予以闡述。

(四)、確定維度

維度是指分析的各個角度。例如我們希望按照時間,或者按照地區(qū),或者按照產(chǎn)品進行分析,那么這里的時間、地區(qū)、產(chǎn)品就是相應的維度?;诓煌木S度,我們可以看到各量度的匯總情況,也可以基于所有的維度進行交叉分析。

這里我們首先要確定維度的層次(HierarChy)和級別(Level。我們在時間維度上,按照“年-季度-月”形成了一個層次,其中“年”、“季度”、“月”成為了這個層次的3個級別;同理,當我們建立產(chǎn)品維度時,我們可以將“產(chǎn)品大類-產(chǎn)品子類-產(chǎn)品”劃為一個層次,其中包含“產(chǎn)品大類”、“產(chǎn)品子類”、“產(chǎn)品”三個級別。

那么,我們分析中所用到的這些維度,在Data倉庫中的存在形式是怎樣的呢?

我們可以將3個級別設置成一張Data表中的3個字段,比如時間維度;我們也可以使用三張表,分別保存產(chǎn)品大類、產(chǎn)品子類、產(chǎn)品三部分Data,比如產(chǎn)品維度。

另外,value得一提的是,我們在建立維度表時要充分使用代理鍵。代理鍵是數(shù)value型的ID號碼(例如每張表的第一個字段),它唯一標識了每一維度成員。更重要的是,在聚合時,數(shù)value型字段的匹配和比較,JOIN效率高,便于聚合。同時,代理鍵對緩慢變化維度有著重要的意義,在原Data主鍵相同的情況下,它起到了對新Data與歷史Data的標識作用。

在此,我們不妨談一談維度表隨時間變化的問題,這是我們經(jīng)常會遇到的情況,我們稱其為緩慢變化維度。

比如我們增加了新的產(chǎn)品,或者產(chǎn)品的ID號碼修改了,或者產(chǎn)品增加了一個新的屬性,此時,維度表就會被修改或者增加新的記錄行。這樣,我們在ETL的過程中,就要考慮到緩慢變化維度的處理。對于緩慢變化維度,有三種情況:

1、緩慢變化維度第一種TYPE:

歷史Data需要修改。這種情況下,我們使用UPDATEmethod來修改維度表中的Data。例如:產(chǎn)品的ID號碼為123,后來發(fā)現(xiàn)ID號碼錯了,需要改寫成456,那么,我們就在ETL處理時,直接修改維度表中原來的ID號碼為456。

2、緩慢變化維度第二種TYPE:

歷史Data保留,新增Data也要保留。這時,要將原Data更新,將新Data插入,我們使用UPDATE / INSERT。比如:某一員工2005年在A部門,2006年時他調(diào)到了B部門。那么在統(tǒng)計2005年的Data時就應該將該員工定位到A部門;而在統(tǒng)計2006年Data時就應該定位到B部門,然后再有新的Data插入時,將按照新部門(B部門)進行處理,這樣我們的做法是將該維度成員列表加入標識列,將歷史的Data標識為“過期”,將目前的Data標識為“當前的”。另一種method是將該維度打上時間戳,即將歷史Data生效的時間段作為它的一個屬性,在與原始表匹配生成事實表時將按照時間段進行關聯(lián),這種method的好處是該維度成員生效時間明確。

3、緩慢變化維度第三種TYPE:

新增Data維度成員改變了屬性。例如:某一維度成員新加入了一列,該列在歷史Data中不能基于它瀏覽,而在目前Data和將來Data中可以按照它瀏覽,那么此時我們需要改變維度表屬性,即加入新的字段列。那么,我們將使用存儲過程或程式生成新的維度屬性,在后續(xù)的Data中將基于新的屬性進行查看。

(五)、創(chuàng)建事實表

在確定好事實Data和維度后,我們將考慮加載事實表。

在公司的大量Data堆積如山時,我們想看看里面究竟是什么,結果發(fā)現(xiàn)里面是一筆筆生產(chǎn)記錄,一筆筆交易記錄… 那么這些記錄是我們將要建立的事實表的原始Data,即關于某一主題的事實記錄表。

我們的做法是將原始表與維度表進行關聯(lián),生成事實表。注意在關聯(lián)時有為空的Data時(Data源臟),需要使用外連接,連接后我們將各維度的代理鍵取出放于事實表中,事實表除了各維度代理鍵外,還有各量度Data,這將來自原始表,事實表中將存在維度代理鍵和各量度,而不應該存在描述性信息,即符合“瘦高原則”,即要求事實表Data條數(shù)盡量多(粒度最小),而描述性信息盡量少。

如果考慮到擴展,可以將事實表加一唯一標識列,以為了以后擴展將該事實作為雪花型維度,不過不需要時一般建議不用這樣做。

事實Data表是Data倉庫的核心,需要精心維護,在JOIN后將得到事實Data表,一般記錄條數(shù)都比較大,我們需要為其設置復合主鍵和索引,以呈現(xiàn)Data的完整性和基于Data倉庫的查詢性能優(yōu)化。事實Data表與維度表一起放于Data倉庫中,如果前端需要連接Data倉庫進行查詢,我們還需要建立一些相關的中間匯總表或物化視,以方便查詢。

 三、什么是ETL

在Data倉庫的構建中,ETL貫穿于項目始終,它是整個Data倉庫的生命線,包括了Data清洗、整合、convert、加載等各個過程。如果說Data倉庫是一座大廈,那么ETL就是大廈的根基。ETL抽取整合Data的好壞直接影響到最終的結果展現(xiàn)。所以ETL在整個Data倉庫項目中起著十分關鍵的作用,必須擺到十分重要的位置。

ETL是Data抽取(ExtraCt)、convert(Transform)、加載(Load )的簡寫,它是指:將OLTPSystam中的Data抽取出來,并將不同Data源的Data進行convert和整合,得出一致性的Data,然后加載到Data倉庫中。

那么,在這一convert過程中,我們就完成了對Data格式的更正、對Data字段的合并、以及新增指標的計算三項操作。類似地,我們也可以根據(jù)其他需求,完善Data倉庫中的Data。

簡而言之,通過ETL,我們可以基于源Systam中的Data來生成Data倉庫。ETL為我們搭建了OLTPSystam和OLAPSystam之間的橋梁。

 四、項目實踐技巧

(一)、準備區(qū)的運用

在構建Data倉庫時,如果Data源位于一臺服務器上,Data倉庫在另一臺服務器端,考慮到Data源Server端訪問頻繁,并且Data量大,需要不斷更新,所以可以建立準備區(qū)Datcbase。先將Data抽取到準備區(qū)中,然后基于準備區(qū)中的Data進行處理,這樣處理的好處是防止了在原OLTPSystam中頻繁訪問,進行Data計算或排序等操作。

例如我們可以按照天將Data抽取到準備區(qū)中,基于Data準備區(qū),我們將進行Data的convert、整合、將不同Data源的Data進行一致性處理。Data準備區(qū)中將存在原始抽取表、convert中間表和臨時表以及ETL日志表等。

(二)、時間戳的運用

時間維度對于某一事實主題來說十分重要,因為不同的時間有不同的統(tǒng)計Data信息,那么按照時間記錄的信息將發(fā)揮很重要的作用。在ETL中,時間戳有其特殊的作用,在上面提到的緩慢變化維度中,我們可以使用時間戳標識維度成員;在記錄Datcbase和Data倉庫的操作時,我們也將使用時間戳標識信息。例如:在進行Data抽取時,我們將按照時間戳對OLTPSystam中的Data進行抽取,比如在午夜0:00取前一天的Data,我們將按照OLTPSystam中的時間戳取GETDATE到GETDATE減一天,這樣得到前一天Data。

(三)、日志表的運用

在對Data進行處理時,難免會發(fā)生Data處理錯誤,產(chǎn)生出錯信息,那么我們?nèi)绾潍@得出錯信息并及時修正呢? method是我們使用一張或多張Log日志表,將出錯信息記錄下來,在日志表中我們將記錄每次抽取的條數(shù)、處理成功的條數(shù)、處理失敗的條數(shù)、處理失敗的Data、處理時間等等。這樣,當Data發(fā)生錯誤時,我們很容易發(fā)現(xiàn)問題所在,然后對出錯的Data進行修正或重新處理。

(四)、使用調(diào)度

在對Data倉庫進行增量更新時必須使用調(diào)度,即對事實Data表進行增量更新處理。在使用調(diào)度前要考慮到事實Data量,確定需要多長時間更新一次。比如希望按天進行查看,那么我們最好按天進行抽取,如果Data量不大,可以按照月或半年對Data進行更新。如果有緩慢變化維度情況,調(diào)度時需要考慮到維度表更新情況,在更新事實Data表之前要先更新維度表。

調(diào)度是Data倉庫的關鍵環(huán)節(jié),要考慮縝密。在ETL的流程搭建好后,要定期對其運行,所以調(diào)度是運行ETL流程的關鍵步驟。每一次調(diào)度除了寫入Log日志表的Data處理信息外,還要使用發(fā)送Email或報警服務等,這樣也方便的技術人員對ETL流程的把握,增強了安全性和Data處理的準確性。

 五、總結

構建企業(yè)級Data倉庫需要簡單的五步,掌握了這五步的method,我們可以構建一個強大的Data倉庫。然而,每一步都有很深的內(nèi)容需要研究與挖掘,尤其在實際項目中,我們要綜合考慮。例如:如果Data源的臟Data很多,在搭建Data倉庫之前我們首先要進行Data清洗,以剔除掉不需要的信息和臟Data。

ETL是OLTPSystam和OLAPSystam之間的橋梁,是Data從源Systam流入Data倉庫的通道。在Data倉庫的項目實施中,它關系到整個項目的Data質(zhì)量,所以馬虎不得,必須將其擺到重要位置,將Data倉庫這一大廈的根基筑牢。

以上是“數(shù)據(jù)倉庫建模與ETL的實踐技巧有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁標題:數(shù)據(jù)倉庫建模與ETL的實踐技巧有哪些
鏈接URL:http://weahome.cn/article/jpocgc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部