ETL架構(gòu)師面試題_第1頁
ETL架構(gòu)師面試題_第2頁
ETL架構(gòu)師面試題_第3頁
ETL架構(gòu)師面試題_第4頁
ETL架構(gòu)師面試題_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1. What is a logical data mapping and whatdoes it mean to the ETL team?什么是邏輯數(shù)據(jù)映射?它對 ETL項目組的作用是什么?答:邏輯數(shù)據(jù)映射(Logical Data Map )用來描述源系統(tǒng)的數(shù)據(jù)定義、目標(biāo)數(shù)據(jù)倉庫的模型以及將源系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換到數(shù)據(jù)倉庫中需要做操作和處理方式的說明文檔,通常以表格或Excel的格式保存如下的信息:目標(biāo)表名:目標(biāo)列名:目標(biāo)表類型:注明是事實表、維度表或支架維度表。SC四型:對于維度表而言。源數(shù)據(jù)庫名:源數(shù)據(jù)庫的實例名,或者連接字符串。源表名:源列名:轉(zhuǎn)換方法:需要對源數(shù)據(jù)做的操作,如 Sum(

2、amount)等。邏輯數(shù)據(jù)映射應(yīng)該貫穿數(shù)據(jù)遷移項目的始終,在其中說明了數(shù)據(jù)遷移中的ETL策略。在進行物理數(shù)據(jù)映射前進行邏輯數(shù)據(jù)映射對 ETL項目組是重要的,它起著元數(shù)據(jù)的作用。項目中最好選擇能生成邏輯數(shù)據(jù) 映射的數(shù)據(jù)遷移工具。II2. What are the primary goals of the data discovery phase of the data warehouse project?在數(shù)據(jù)倉庫項目中,數(shù)據(jù)探索階段的主要目的是什么? 答:在邏輯數(shù)據(jù)映射進行之前,需要首先對所有的源系統(tǒng)進行分析。對源系統(tǒng)的分析通常包括兩個階段, 一個是數(shù)據(jù)探索階段(Data Discovery

3、Phase ),另一個是異常數(shù)據(jù)檢測階段。數(shù)據(jù)探索階段包括以下內(nèi)容:1 .收集所有的源系統(tǒng)的文檔、數(shù)據(jù)字典等內(nèi)容。2 .收集源系統(tǒng)的使用情況,如誰在用、每天多少人用、占多少存儲空間等內(nèi)容。3 .判斷出數(shù)據(jù)的起始來源( System-of-Record )。4 .通過數(shù)據(jù)概況(Data Profiling )來對源系統(tǒng)的數(shù)據(jù)關(guān)系進行分析。 數(shù)據(jù)探索階段的主要目的是理解源系統(tǒng)的情況, 為后續(xù)的數(shù)據(jù)建模和邏輯數(shù)據(jù)映射打下堅實的基礎(chǔ)。3. How is the system -of-record determined?如何確定起始來源數(shù)據(jù)?答:這個問題的關(guān)鍵是理解什么是 System-of-Recor

4、d 。System-of-Record 和數(shù)據(jù)倉庫領(lǐng)域內(nèi)的其他很多概 念一樣,不同的人對它有不同的定義。在Kimball的體系中,System-of-Record是指最初產(chǎn)生數(shù)據(jù)的地方, 即數(shù)據(jù)的起始來源。在較大的企業(yè)內(nèi),數(shù)據(jù)會被冗余的保存在不同的地方,在數(shù)據(jù)的遷移過程中,會出現(xiàn) 修改、清洗等操作,導(dǎo)致與數(shù)據(jù)的起始來源產(chǎn)生不同。起始來源數(shù)據(jù)對數(shù)據(jù)倉庫的建立有著非常重要的作用,尤其是對產(chǎn)生一致性維度來說。我們從起始來 源數(shù)據(jù)的越下游開始建立數(shù)據(jù)倉庫,我們遇到垃圾數(shù)據(jù)的風(fēng)險就會越大。匚.11 II IIllII一Architecture4. What are the four basic Data

5、 Flow steps of an ETL process?在ETL過程中四個基本的過程分別是什么?答:Kimball數(shù)據(jù)倉庫構(gòu)建方法中,ETL的過程和傳統(tǒng)的實現(xiàn)方法有一些不同, 主要分為四個階段,分別是 抽?。╡xtract )、清洗(clean )、一致性處理(comform)和交付(delivery ),簡稱為 ECCD1 .抽取階段的主要任務(wù)是:讀取源系統(tǒng)的數(shù)據(jù)模型。連接并訪問源系統(tǒng)的數(shù)據(jù)。變化數(shù)據(jù)捕獲。抽取數(shù)據(jù)到數(shù)據(jù)準(zhǔn)備區(qū)。2 .清洗階段的主要任務(wù)是:清洗并增補列的屬性。清洗并增補數(shù)據(jù)結(jié)構(gòu)。清洗并增補數(shù)據(jù)規(guī)則。增補復(fù)雜的業(yè)務(wù)規(guī)則。建立元數(shù)據(jù)庫描述數(shù)據(jù)質(zhì)量。將清洗后的數(shù)據(jù)保存到數(shù)據(jù)準(zhǔn)備

6、區(qū)。3 . 一致性處理階段的主要任務(wù)是:一致性處理業(yè)務(wù)標(biāo)簽,即維度表中的描述屬性。ll II IIll II一致性處理業(yè)務(wù)度量及性能指標(biāo),通常是事實表中的事實。去除重復(fù)數(shù)據(jù)。國際化處理。將一致性處理后的數(shù)據(jù)保存到數(shù)據(jù)準(zhǔn)備區(qū)O4 .交付階段的主要任務(wù)是:加載星型的和經(jīng)過雪花處理的維度表數(shù)據(jù)O產(chǎn)生日期維度。加載退化維度。加載子維度。加載1、2、3型的緩慢變化維度。處理遲到的維度和遲到的事實。加載多值維度。加載有復(fù)雜層級結(jié)構(gòu)的維度。加載文本事實到維度表。處理事實表的代理鍵。加載三個基本類型的事實表數(shù)據(jù)。加載和更新聚集。將處理好的數(shù)據(jù)加載到數(shù)據(jù)倉庫。ETL系統(tǒng)ETL系統(tǒng)設(shè)計師是同一個人。從這個任務(wù)列表

7、中可以看出, ETL的過程和數(shù)據(jù)倉庫建模的過程結(jié)合的非常緊密。換句話說,的設(shè)計應(yīng)該和目標(biāo)表的設(shè)計同時開始。通常來說,數(shù)據(jù)倉庫架構(gòu)師和II5. What are the permissible data structures for the data staging area? Briefly describe the pros and cons of each.在數(shù)據(jù)準(zhǔn)備區(qū)中允許使用的數(shù)據(jù)結(jié)構(gòu)有哪些?各有什么優(yōu)缺點?答:1 .固定格式的文本文件。(Flat File )Flat File指的是一種保存在系統(tǒng)上的一種文本文件格式,它以類似數(shù)據(jù)庫的表的方式用行和列來保存數(shù)據(jù)。這種文件格式經(jīng)常用來進

8、行數(shù)據(jù)交換。用于保存數(shù)據(jù)不太合適。2 . XML數(shù)據(jù)集。多用于數(shù)據(jù)交換,用戶保存數(shù)據(jù)不太合適。3 .關(guān)系數(shù)據(jù)庫的表。保存數(shù)據(jù)的較理想選擇。4 .獨立的數(shù)據(jù)庫表。獨立的數(shù)據(jù)庫表一般指建立的表和其他表沒有外鍵約束關(guān)系。這樣的表多用于數(shù)據(jù)處理。5 .三范式或者關(guān)系型模型。6 .非關(guān)系型數(shù)據(jù)源。非關(guān)系型數(shù)據(jù)源一般包括 COBOL copy books、VSAMDt件、Flat文件、Spreadsheets等。7 .維度模型。8 .原子事實表和聚集事實表。9 .代理鍵查找表。II6. When should data be set to disk for safekeeping during the E

9、TL?簡述ETL過程中哪個步驟應(yīng)該出于安全的考慮將數(shù)據(jù)寫到磁盤上?答:Staging的意思就是將數(shù)據(jù)寫到磁盤上。出于安全及ETL能方便重新開始,在數(shù)據(jù)準(zhǔn)備區(qū)(Staging Area) 中的每個步驟中都應(yīng)該將數(shù)據(jù)寫到磁盤上,即生成文本文件或者將建立關(guān)系表保存數(shù)據(jù),而不應(yīng)該以數(shù)據(jù) 不落地方式直接進行ETLo例如,在數(shù)據(jù)抽取階段,我們需要連接到源系統(tǒng),為了對源系統(tǒng)的影響盡量小,我們需要將抽取的數(shù) 據(jù)保存成文本文件或者放入數(shù)據(jù)準(zhǔn)備區(qū)的表中,這樣,當(dāng)ETL過程出現(xiàn)錯誤而失敗時,我們就可以從這些文本文件開始ETL,而不需要再次影響源系統(tǒng)。Extract7. Describe techniques for

10、 extracting from heterogeneous data sources.簡述異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)抽取技術(shù)。答:在數(shù)據(jù)倉庫項目中,需要抽取的數(shù)據(jù)經(jīng)常來自不同的數(shù)據(jù)源,它們的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)都可能 不同,即稱之為異構(gòu)數(shù)據(jù)源。在對異構(gòu)數(shù)據(jù)源進行整合抽取時,我們需要做的事情依次是標(biāo)識出所有的源系統(tǒng),對源系統(tǒng)進行概況 分析,定義數(shù)據(jù)匹配邏輯,建立篩選規(guī)則,生成一致性維度。對于源數(shù)據(jù)的操作系統(tǒng)平臺和數(shù)據(jù)平臺各不相同的情況,我們需要根據(jù)實際情況來確定如何進行數(shù)據(jù) 抽取,通常的方法有建立 ODBCM接、定義接口文件、建立 DBLINK等方法。II8. What is the best appr

11、oach for handling ERP source data?從ERP源系統(tǒng)中抽取數(shù)據(jù)最好的方法是什么?答:ERP系統(tǒng)的產(chǎn)生是為了解決企業(yè)內(nèi)異構(gòu)數(shù)據(jù)的整合。這個問題也是數(shù)據(jù)倉庫系統(tǒng)面臨的主要問題。ERP的解決方案是將企業(yè)內(nèi)的各個應(yīng)用(包括銷售、會計、人力資源、庫存和產(chǎn)品等)建立在相同的平臺 和相同的應(yīng)用框架下,即在應(yīng)用操作層將企業(yè)內(nèi)的數(shù)據(jù)進行了一致性處理。而數(shù)據(jù)倉庫是在應(yīng)用操作層之 上建立一致性的規(guī)則并進行一致性處理。目前比較流行的ERP系統(tǒng)有SAP、PeopleSoft、Oracle、Baan和J.D.EDwards (大部分沒接觸過)。如果企業(yè)內(nèi)只有一套 ERP系統(tǒng),那么數(shù)據(jù)就已經(jīng)是

12、一致的了,為數(shù)據(jù)抽取提供了方便。如果企業(yè)內(nèi)除 了 ERP外還有其他系統(tǒng),則數(shù)據(jù)抽取會變得復(fù)雜。因為目前的ERP系統(tǒng)的數(shù)據(jù)模型都非常復(fù)雜,可能有幾百幾千個表,并且較難理解。直接在ERP系統(tǒng)上建立數(shù)據(jù)捕獲和抽取是非常復(fù)雜的。最好的辦法是購買能針又ERP系統(tǒng)數(shù)據(jù)抽取提供功能的 ETL工具,將ERP內(nèi)部的復(fù)雜性留給 ETL廠商處理。9. Explain the pros and cons of communicating with databases natively versus ODBC.簡述直接連接數(shù)據(jù)庫和使用 ODBC1接數(shù)據(jù)庫進行通訊的優(yōu)缺點。答:通常連接數(shù)據(jù)庫的方式分為兩類,一類是直接連接

13、,另一類是通過ODBC1接。直接連接的方式主要是通過 COBOL PL/SQL、Transact-SQL等方式連接數(shù)據(jù)庫。這種方式的優(yōu)點是運 行性能高,可以使用 DBMS1供的一些特殊功能。缺點是通用性差。ODBO為windows應(yīng)用程序訪問數(shù)據(jù)庫提供的一組接口。ODBC勺優(yōu)點是靈活性,通過改變驅(qū)動和連接方式可以使用不同的數(shù)據(jù)庫。ODBCT式的缺點是性能差。使用 ODBC接方式實現(xiàn)ETL的話,在ETL程序和至少要有兩層,分別是 ODBCManager層和ODBQDriver層。另外,使用 ODBCT式不能使用 DBMSg供的 一些特殊的功能。II10. Describe three chang

14、e data capture (CDC)practices and the pros and cons of each.簡述出三種變化數(shù)據(jù)捕獲技術(shù)及其優(yōu)缺點。答:變化數(shù)據(jù)捕獲(CDC技術(shù)是ETL工作中的重點和難點,通常需要在增量抽取時完成。實現(xiàn)變化數(shù)據(jù)捕 獲時最理想的是找到源系統(tǒng)的 DBA如果不能找到,就需要 ETL項目組自己進行檢測數(shù)據(jù)的變化。下面是 一些常用的技術(shù)。1 .采用審計列審計列指表中如“添加日期”、“修改日期”、“修改人”等信息的字段。應(yīng)用程序在對該表的數(shù)據(jù) 進行操作時,同時更新這些字段,或者建立觸發(fā)器來更新這些字段。采用這種方式進行變化數(shù)據(jù)捕獲的優(yōu)點是方便,容易實現(xiàn)。缺點是如果

15、操作型系統(tǒng)沒有相應(yīng)的審計字段,需要改變已有的操作型系統(tǒng)的數(shù)據(jù)結(jié) 構(gòu),以保證獲取過程涉及的每張表都有審計字段。2 .數(shù)據(jù)庫日志DBM用志獲取是一種通過 DBMS1供的日志系統(tǒng)來獲得變化的數(shù)據(jù)。它的優(yōu)點是對數(shù)據(jù)庫或訪問數(shù)據(jù) 庫的操作系統(tǒng)的影響最小。缺點是要求DBMSC持,并且對日志記錄的格式非常了解。3 .全表掃描全表掃描或者全表導(dǎo)出文件后進行掃描對比也可以進行變化數(shù)據(jù)捕獲,尤其是捕獲刪除的數(shù)據(jù)時。這 種方法的優(yōu)點是,思路清晰,適應(yīng)面廣,缺點是效率比較差。Data QualityII11. What are the four broad categories of data quality che

16、cks? Provide an implementationtechnique for each.數(shù)據(jù)質(zhì)量檢查的四大類是什么?為每類提供一種實現(xiàn)技術(shù)。答:數(shù)據(jù)質(zhì)量檢查是 ETL工作中非常重要的一步,主要關(guān)注一下四個方面。1 .正確性檢查(Corret )檢查數(shù)據(jù)值及其描述是否真實的反映了客觀事務(wù)。例如地址的描述是否完全。2 .明確性檢查(Unambiguous;)檢查數(shù)據(jù)值及其描述是否只有一個意思或者只有一個解釋。例如地名相同的兩個縣需要加區(qū)分方法。3 . 一致性檢查(Consistent ) 檢查數(shù)據(jù)值及其描述是否統(tǒng)一的采用固定的約定符號來表示。例如幣別中人民幣用CNY'。4 .完全

17、性檢查(Complete)完全性有兩個需要檢查的地方,一個是檢查字段的數(shù)據(jù)值及其描述是否完全。例如檢查是否有空值。 另一個是檢查記錄的合計值是否完全,有沒有遺忘某些條件。12. At which stage of the ETL should data be profiled?簡述應(yīng)該在ETL的哪個步驟來實現(xiàn)概況分析?答:數(shù)據(jù)概況分析是對源數(shù)據(jù)內(nèi)容的概況進行分析,應(yīng)該在項目的開始后盡早完成,它會對設(shè)計和實 現(xiàn)有很大的影響。在完成需求收集后就應(yīng)該立即開始數(shù)據(jù)概況分析。ll ll IIll數(shù)據(jù)概況分析不光是對源系統(tǒng)的數(shù)據(jù)概況的定量描述,而且為ETL系統(tǒng)中需要建立的錯誤事件事實表(Error Eve

18、nt Table )和審計維度表(Audit Dimension )打下基礎(chǔ),為其提供數(shù)據(jù)。13. What are the essential deliverables of thedata quality portion of ETL?ETL項目中的數(shù)據(jù)質(zhì)量部分核心的交付物有那些?答:ETL項目中數(shù)據(jù)質(zhì)量部分的核心的交付物主要有下面三個:1 .數(shù)據(jù)概況分析結(jié)果數(shù)據(jù)概況分析結(jié)果是對源系統(tǒng)的數(shù)據(jù)狀況的分析產(chǎn)物,包括如源系統(tǒng)中有多少個表,每個表有多少字 段,其中多少為空,表間的外鍵關(guān)系是否存在等反映源系統(tǒng)數(shù)據(jù)質(zhì)量的內(nèi)容。這些內(nèi)容用來決定數(shù)據(jù)遷移 的設(shè)計和實現(xiàn),并提供給錯誤事件事實表和審計維度表需

19、要的相關(guān)數(shù)據(jù)。2 .錯誤事件事實表錯誤事件事實表及相關(guān)的一系列維度表是數(shù)據(jù)質(zhì)量檢查部分的一個主要交付物。粒度是每一次數(shù)據(jù)質(zhì) 量檢查中的錯誤信息。相關(guān)維度包括日期維度表、遷移信息維度表、錯誤事件信息維度表,其中錯誤事件 信息維度表中檢查的類型、源系統(tǒng)的信息、涉及的表信息、檢查使用的SQL等內(nèi)容。錯誤事件事實表不提供給前臺用戶。3 .審計維度表審計維度表是給最終用戶提供數(shù)據(jù)質(zhì)量說明的一個維度表。它描述了用戶使用的事實表的數(shù)據(jù)來源, 數(shù)據(jù)質(zhì)量情況等內(nèi)容。14. How can data quality be quantified in the data warehouse?如何來量化數(shù)據(jù)倉庫中的數(shù)據(jù)

20、質(zhì)量?II答:在數(shù)據(jù)倉庫項目中,通常通過不規(guī)則數(shù)據(jù)的檢測工作(Anomaly Detection )來量化源系統(tǒng)的數(shù)據(jù)質(zhì)量。除非成立專門的數(shù)據(jù)質(zhì)量調(diào)查項目組,否則這個工作應(yīng)該由 ETL項目組完成。通常可以采用分組 SQL來檢查數(shù)據(jù)是否符合域的定義規(guī)則。對于數(shù)據(jù)量小的表,可以直接使用類似下面的SQL完成。select state, count(*) from order_detail group by state對于數(shù)據(jù)量大的表,一般通過采樣技術(shù)來減少數(shù)據(jù)量,然后進行不規(guī)則數(shù)據(jù)檢測。類似SQL如下select a.* from employee a, (select rownum counter

21、, a.* from employee a) B where a.emp_id=b.emp_id and mod(b.counter, trunc(select count(*) from employee)/1000,0) = 0如果可以采用專門的數(shù)據(jù)概況分析工具進行的話,可以減少很大的工作量。Building mappings15. What are surrogate keys? Explain how the surrogate key pipeline works.什么是代理鍵?簡述代理鍵替換管道如何工作。答:在維度表的遷移過程中,有一種處理方式是使用無意義的整型值分配給維度記錄并作

22、為維度記錄 的主鍵,這些作為主鍵的整型值稱為代理鍵( Surrogate Key)。使用代理鍵有很多好處,如隔離數(shù)據(jù)倉庫 與操作環(huán)境,歷史記錄的保存,查詢速度快等。同時,在事實表的遷移過程中,為了保證參照完整性也需要進行代理鍵的替換工作。為了代理鍵替換 的效率高一些,我們通常在數(shù)據(jù)準(zhǔn)備區(qū)中建立代理鍵查找表(Surrogate Mapping Table or Lookup Table )代理鍵查找表中保存最新的代理鍵和自然鍵的對應(yīng)關(guān)系。在對事實表進行代理鍵替換時,為了保證效率高,需要把代理鍵查找表中的數(shù)據(jù)加載到內(nèi)存中,并可以開多線程依次替換同一記錄的中的不同代理鍵,使一 條事實記錄在所有的代理

23、鍵都替換完后再寫如磁盤中,這樣的替換過程稱為代理鍵替換管道(SurrogateKey Pipeline )。II16. Why do dates require special treatment during the ETL process?為什么在ETL的過程中需要對日期進行特殊處理?答:在數(shù)據(jù)倉庫的項目中,分析是主導(dǎo)需求,而基于日期和時間的分析更是占了很大的比重。而在操 作型源系統(tǒng)中,日期通常都是SQL的DATETIM國的。如果在分析時,使用 SQL對這種類型的字段臨時處理 會出現(xiàn)一些問題,如效率很差,不同的用戶會采用不同的格式化方法導(dǎo)致報表不統(tǒng)一。所以,在數(shù)據(jù)倉庫 的建模時都會建立日期

24、維度表和時間維度表,將用到的和日期相關(guān)的描述都冗余到該表中。但是,并不是所有的日期都被轉(zhuǎn)化為日期維度表的外鍵。日期維度表中的記錄是有限的,有些日期如 生日等可能會比日期維度表中記錄的最小日期還要早,這類字段可以直接在數(shù)據(jù)倉庫中保存SQL的DATETIME®。而像購買日期等與分析的業(yè)務(wù)緊密相關(guān)的通常都需要轉(zhuǎn)化為日期維度表的外鍵,可以用日期 維度表中統(tǒng)一的描述信息進行分析。17. Explain the three basic delivery steps for conformed dimensions.簡述對一致性維度的三種基本的交付步驟。答:數(shù)據(jù)整合的關(guān)鍵就是生成一致性維度,再通過

25、一致性維度將來自不同數(shù)據(jù)源的事實數(shù)據(jù)合并到一 起,供分析使用。通常來說,生成一致性維度有如下三個步驟:1 .標(biāo)準(zhǔn)化(Standardizing )標(biāo)準(zhǔn)化的目的是使不同數(shù)據(jù)源的數(shù)據(jù)編碼方式,數(shù)據(jù)格式等相同,為下一步數(shù)據(jù)匹配打下基礎(chǔ)。2 .匹配(Matching and Deduplication )數(shù)據(jù)匹配的工作有兩種,一種是將不同數(shù)據(jù)源的標(biāo)識同一事物的不同屬性匹配到一起,是數(shù)據(jù)更完善;另一種是將不同數(shù)據(jù)源的相同數(shù)據(jù)標(biāo)識成重復(fù),為下一步的篩選打下基礎(chǔ)。3 .篩選(Surviving )數(shù)據(jù)篩選的主要目的是選定一致性維度作為主數(shù)據(jù)(Master Data),也就是最終交付的一致性維度數(shù)II18.

26、Name the three fundamental fact grains and describe an ETL approach for each.簡述三種基本事實表,并說明 ETL的過程中如何處理它們。答:事實表從粒度的角色來劃分可以分為三類,分別是交易粒度事實表( Transaction Grain )、周期 快照粒度事實表(Periodic Snapshot )和累計快照粒度事實表( Accumulating Snapshot )。在事實表的 設(shè)計時,一定要注意一個事實表只能有一個粒度,不能將不同粒度的事實建立在同一張事實表中。交易粒度事實表的來源伴隨交易事件成生的數(shù)據(jù),例如銷售單

27、。在ETL過程中,以原子粒度直接進行遷移。周期快照事實表是用來記錄有規(guī)律的,固定時間間隔的業(yè)務(wù)累計數(shù)據(jù),例如庫存日快照。在ETL過程中,以固定的時間間隔生成累計數(shù)據(jù)。累積快照事實表用來記錄具有時間跨度的業(yè)務(wù)處理過程的整個過程的信息。在ETL過程中,隨著業(yè)務(wù)處理過程的步驟逐步完善該表中的記錄。19. How are bridge tables delivered to classify groups of dimension records associated to a singlefact?簡述橋接表是如何將維度表和事實表進行關(guān)聯(lián)的?答:橋接表(Bridge Table )是維度建模中的一類

28、比較特殊的表。在數(shù)據(jù)倉庫的建模時,會遇到具有層次結(jié)構(gòu)的維度表,對于這樣的表有一種建模方式是建立父子表, 即每條記錄上包括一個指向其父記錄的字段。這種父子表的建立在層級深度可變時尤其有用,是一個緊湊 而有效的建模方式。但是這種建模方式也有缺點,就是用標(biāo)準(zhǔn) SQL很難對遞歸結(jié)構(gòu)進行操作。與這種遞歸結(jié)構(gòu)的父子表不同,橋接表采用不同的建模方式也可以表示這種層級結(jié)構(gòu)。橋接表是建立 在維度表和事實表中間的一個具有較多冗余信息的表,其中的記錄包含層級結(jié)構(gòu)中節(jié)點到其下面每個節(jié)點 的路徑。表結(jié)構(gòu)如下所示:II父關(guān)鍵字子關(guān)鍵字父層數(shù)層名底端標(biāo)識頂端標(biāo)識在橋接表中,節(jié)點與其下面的任意一個節(jié)點都建立一個關(guān)聯(lián)記錄保存在

29、表中,即父子關(guān)系不再局限在 相鄰層,如第一層與第三層同樣有父子關(guān)系,通過父層數(shù)可以區(qū)分相隔了幾層。這樣,可以通過父層數(shù)和 父子關(guān)系來進行層級結(jié)構(gòu)的查詢。當(dāng)然,橋接表也不是一個完備的解決方案,它只能是在某些情況下是查詢變得容易。20. How does late arriving data affect dimensions and facts? Share techniques for handling each.遲到的數(shù)據(jù)對事實表和維度表有什么影響?怎樣來處理這個問題?答:遲到的數(shù)據(jù)分為兩種,一種是遲到的事實表數(shù)據(jù),另一種是遲到的維度表數(shù)據(jù)。對于遲到的事實記錄,我們可以插入到相應(yīng)的事實表中。

30、在插入的同時,還需要做一些處理。首先, 對于具有SCDTYPE2型維度的事實記錄需要在插入前判斷該事實記錄的發(fā)生日期到目前為止,維度記錄是 否發(fā)生過變化,如果有變化,該事實記錄需要對應(yīng)到事實發(fā)生時的維度記錄上。其次,在事實記錄插入完 成后,與該事實表相關(guān)的聚集事實表和合并事實表需要做相應(yīng)的處理。對于遲到的維度記錄,我們需要做的處理要復(fù)雜一些。首先,如果遲到的維度記錄是第一次進入數(shù)據(jù) 倉庫中,那么需要在維度表中生成一條維度記錄,并將與該維度記錄對應(yīng)的事實記錄的外鍵進行更新。其 次,如果遲到的維度記錄是對原維度進行的修改,那么我們在維度表中生成一條新記錄的同時,還需要找 到維度本次變化到下次變化間

31、的事實行,并將其維度外鍵更新為新加維度的代理關(guān)鍵字。MetadataII21. Describe the different types of ETL metadata and provide examples of each.舉例說明各種ETL過程中的元數(shù)據(jù)。答:元數(shù)據(jù)是ETL項目組面對的一個非常重要的主題, 對于整個數(shù)據(jù)倉庫項目也是非常重要的一部分。 對于元數(shù)據(jù)的分類和使用沒有很確定的定義。通常來說,我們可以把元數(shù)據(jù)分為三類,分別為業(yè)務(wù)元數(shù)據(jù)( Business Metadata ),技術(shù)元數(shù)據(jù) (Technical Metadata )和過程處理元數(shù)據(jù)(Process Execution

32、 Metadata )。業(yè)務(wù)元數(shù)據(jù),是從業(yè)務(wù)的角度對數(shù)據(jù)的描述。通常是用來給報表工具和前端用戶對數(shù)據(jù)進行分析和使 用提供幫助。技術(shù)元數(shù)據(jù),是從技術(shù)的角度對數(shù)據(jù)的描述。通常包括數(shù)據(jù)的一些屬性,如數(shù)據(jù)類型、長度、或者數(shù) 據(jù)概況分析后一些結(jié)果。過程處理元數(shù)據(jù),是 ETL處理過程中的一些統(tǒng)計數(shù)據(jù),通常包括有多少條記錄被加載,多少條記錄被 拒絕接受等數(shù)據(jù)22. Share acceptable mechanisms for capturing operational metadata.簡述獲取操作型元數(shù)據(jù)的方法。答:操作型元數(shù)據(jù)(Operational Metadata ),也就是過程處理元數(shù)據(jù),記錄的

33、是 ETL過程中數(shù)據(jù)遷 移情況,如上次遷移日期,加載的記錄數(shù)等信息。這部分元數(shù)據(jù)在ETL加載失敗時會非常重要。一般來說,對于使用 ETL工具的數(shù)據(jù)加載,像遷移調(diào)度時間、遷移調(diào)度順序,失敗處理等內(nèi)容都可以 在由在遷移工具中定義生成。像上次遷移日期等數(shù)據(jù)可以建表保存。如果是手工編寫ETL程序的話,操作型元數(shù)據(jù)的處理會麻煩一些,需要自己來獲取和存儲。獲取的方 式,不同的編程方式會不盡相同。II23. Offer techniques for sharing business andtechnical metadata.Optimization/Operations簡述共享業(yè)務(wù)元數(shù)據(jù)和技術(shù)元數(shù)據(jù)的方法

34、。答:為了能共享各種元數(shù)據(jù),在數(shù)據(jù)倉庫的構(gòu)建過程中必須要有一些元數(shù)據(jù)標(biāo)準(zhǔn),并在實際開發(fā)中遵 守這些標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)包括元數(shù)據(jù)命名規(guī)則、存儲規(guī)則及共享規(guī)則等內(nèi)容。有關(guān)元數(shù)據(jù)標(biāo)準(zhǔn)的內(nèi)容可以參 看公共倉庫元模型(Common Warehouse Metamodel, CWM的相關(guān)資料 。在最基本的層面上,企業(yè)應(yīng)該在下面三個方面制定好標(biāo)準(zhǔn)。1 .命名規(guī)則命名規(guī)則應(yīng)該在ETL組開始編碼前制定好,范圍包括表、歹U、約束、索引等等數(shù)據(jù)庫對象以及其他一 些編碼規(guī)則。如果企業(yè)有自己的命名規(guī)則,ETL組應(yīng)該遵守企業(yè)的命名規(guī)則。當(dāng)企業(yè)的命名規(guī)則不能完全滿足需求時,ETL組可以制定補充規(guī)則或者新的規(guī)則。對企業(yè)命名規(guī)則的

35、改變需要有詳細的文檔記錄,并 提交企業(yè)相關(guān)部門審核。2 .架構(gòu)在ETL組開始工作前,架構(gòu)應(yīng)該先被設(shè)計好。例如ETL引擎是和數(shù)據(jù)倉庫放在同一臺服務(wù)器上還是單獨設(shè)立服務(wù)器;數(shù)據(jù)準(zhǔn)備區(qū)是建立成臨時的還是持久的;數(shù)據(jù)倉庫是基于維度建模的還是3NF建模的。并且這些內(nèi)容應(yīng)該有詳細的文檔記錄。3 .基礎(chǔ)結(jié)構(gòu)系統(tǒng)的基礎(chǔ)結(jié)構(gòu)也應(yīng)該先確定好。例如解決方案是基于 Windows的還是基于UNIX的。這些企業(yè)基礎(chǔ)結(jié)構(gòu)元數(shù)據(jù)應(yīng)該在ETL組開始工作前制定好。這些內(nèi)容也應(yīng)該有詳細的文檔記錄。在ETL的開發(fā)中,制定好元數(shù)據(jù)標(biāo)準(zhǔn)并能很好的遵守,那么建立好的數(shù)據(jù)倉庫的元數(shù)據(jù)就可以很好的 完成共享功能。II24. State th

36、e primary types of tables found in a data warehouse and the order which they must be loaded to enforce referential integrity.簡述數(shù)據(jù)倉庫中的表的基本類型,以及為了保證引用完整性該以什么樣的順序?qū)λ鼈冞M行加載。答:數(shù)據(jù)倉庫中的表的基本類型有維度表、事實表、子維度表、橋接表等幾類。其中子維度表即雪花 模型由支架維度技術(shù)處理,橋接表用來處理多值維度或?qū)蛹壗Y(jié)構(gòu)。數(shù)據(jù)倉庫中需要加載的各類表之間有相互依賴的關(guān)系,所以加載時需要以一定的順序進行加載。下面 是一些加載的基本原則:子維度

37、表加載成功后,再加載維度表。維度表加載成功后,再加載橋接表。子維度表、維度表和橋接表都加載成功后,再加載事實表。這個加載順序可以通過主外鍵的關(guān)系來確定。(注意,此回答為總線架構(gòu)的數(shù)據(jù)倉庫的表的加載順序。)25. What are the characteristics of the four levels of the ETL support model?簡述ETL技術(shù)支持工作的四個級別的特點。答:數(shù)據(jù)倉庫上線后,ETL組需要為保證ETL工作的正常運行提供技術(shù)支持。通常這種技術(shù)支持工作 分為四個級別。II1 .第一級別的技術(shù)支持通常是電話支持人員,屬于技術(shù)支持服務(wù)窗口(Help Desk )類

38、型。如果數(shù)據(jù)遷移出現(xiàn)錯誤或者用戶發(fā)現(xiàn)數(shù)據(jù)有問題,問題通過電話反映到第一級別的技術(shù)支持處。第一級別支持人員 通過ETL項目組提供的一些問題的解決辦法盡可能的解決發(fā)現(xiàn)的問題,阻止問題升級。2 .第二級別的技術(shù)支持通常是系統(tǒng)管理員和 DBA如果第一級別不能解決問題,問題反映到第二級別。 第二級別的人員通常技術(shù)上比較強,硬件基礎(chǔ)結(jié)構(gòu)和軟件架構(gòu)上的問題都可以解決。3 .第三級別的技術(shù)支持通常是 ETL項目負責(zé)人。如果第二級別不能解決問題,問題反映到第三級別。 ETL項目負責(zé)人應(yīng)該具備足夠的知識, 能夠解決生產(chǎn)環(huán)境中的絕大部分問題。 ETL項目負責(zé)人在必要時可以 和開發(fā)人員或者外部產(chǎn)品提供商對某些問題進行

39、交流,以便找出解決問題的辦法。4 .第四級別的技術(shù)支持通常是 ETL的實際開發(fā)人員。如果第三級別不能解決問題,問題反映到第四級 別。ETL的實際開發(fā)人員可以對代碼進行跟蹤分析并找到問題的解決辦法。如果問題出現(xiàn)在產(chǎn)品供應(yīng)商的 應(yīng)用中,還需要供應(yīng)商提供技術(shù)支持。在小一些的數(shù)據(jù)倉庫環(huán)境中,也是通常的情況下,第三級別和第四級別可以合并在一起。合并后對第 二級別的要求會高一些。不建議每次出現(xiàn)問題都找ETL的開發(fā)人員。第一級別的技術(shù)支持人員不應(yīng)該僅僅提供電話支持服務(wù),在將問題反映給下一個級別前,要盡自己的能力去解決問題。s26. What steps do you take to determine th

40、e bottleneck of a slow running ETL process?如果ETL進程運行較慢,需要分哪幾步去找到 ETL系統(tǒng)的瓶頸問題。答:ETL系統(tǒng)遇到性能問題,運行很慢是一件較常見的事情,這時要做的是逐步找到系統(tǒng)的瓶頸在哪 里。首先要確定是由CPU內(nèi)存、I/O和網(wǎng)絡(luò)等產(chǎn)生的瓶頸,還是由 ETL處理過程產(chǎn)生的瓶頸。如果環(huán)境沒有瓶頸,那么需要分析 ETL的代碼。這時,我們可以采用排除的方法,需要隔離不同的操 作,并分別對它們進行測試。如果是采用純手工編碼方式的ETL處理,隔離不同的操作要麻煩一些,這時需要根據(jù)編碼的實際情況來處理。如果是采用ETL工具的話,目前的ETL工具應(yīng)該都

41、有隔離不同處理的功能,隔離起來相對容易一些。分析最好從抽取操作開始,然后依次分析各種計算、查找表、聚集、過濾等轉(zhuǎn)換環(huán)節(jié)的處理操作,最 后分析加載操作。實際的處理中,可以按照下面的七個步驟來查找瓶頸。ll ll IIll ll1 .隔離并執(zhí)行抽取查詢語句。先將抽取部分隔離出來,去掉轉(zhuǎn)換和交付,可以將數(shù)據(jù)直接抽取到文件中。如果這一步效率很差,基 本確定是抽取SQL的問題。從經(jīng)驗來看,未經(jīng)調(diào)優(yōu)的 SQL是一個最常見的導(dǎo)致 ETL效率差的原因。如果這 步?jīng)]有問題進入第二步。2 .去掉過濾條件。這一條是針對全抽取,然后在 ETL處理中進行過濾的處理方式而言。在ETL處理中做過濾處理有時會產(chǎn)生瓶頸。可以先

42、將過濾去掉,如果確定為這個原因,可以考慮在抽取時進行數(shù)據(jù)過濾。3 .排除查找表的問題。參照數(shù)據(jù)在ETL處理過程中通常會加載到內(nèi)存中,目的是做代碼和名稱的查找替換,也稱查找表。有 時查找表的數(shù)據(jù)量過大也會產(chǎn)生瓶頸??梢灾饌€隔離查找表,來確定是否是這里出現(xiàn)問題。注意要將查找 表的數(shù)據(jù)量降到最低,通常一個自然鍵一個代理鍵就可以,這樣可以減少不必要的數(shù)據(jù)I/O。4 .分析排序和聚集操作。排序和聚集操作都是非常費資源的操作。對這部分隔離,來判斷是否因為它們引起性能問題。如果確定是因為這個,需要考慮是否可以將排序和聚集處理移出數(shù)據(jù)庫和ETL工具,移到操作系統(tǒng)中來處理。5 .隔離并分析每一個計算和轉(zhuǎn)換處理。

43、有時轉(zhuǎn)換過程中的處理操作也會引起ETL工作的性能。逐步隔離移除它們來判斷哪里出了問題。要注意觀察像默認值、數(shù)據(jù)類型轉(zhuǎn)換等操作。6 .隔離更新策略。更新操作在數(shù)據(jù)量非常大時是性能非常差的。隔離這部分,看看是否這里出了問題。如果確定是因為大批量更新出了性能問題。應(yīng)該考慮將insert、update和delete分開處理。7 .檢測加載數(shù)據(jù)的數(shù)據(jù)庫I/O。如果前面各部分都沒有問題,最后需要檢測是目標(biāo)數(shù)據(jù)庫的性能問題??梢哉覀€文件代替數(shù)據(jù)庫,如果性能提高很多,需要仔細檢測目標(biāo)數(shù)據(jù)庫的加載過程中的操作。例如是否關(guān)閉了所有的約束,關(guān)閉了所有的索引,是否使用了批量加載工具。如果性能還沒有提高,可以考慮使用并

44、行加載策略。II27. Describe how to estimate the load timeof a large ETL job.Real Time ETL簡述如何評估大型ETL數(shù)據(jù)加載時間。答:評估一個大型的ETL的數(shù)據(jù)加載時間是一件很復(fù)雜的事情。 數(shù)據(jù)加載分為兩類,一類是初次加載, 另一類是增量加載。在數(shù)據(jù)倉庫正式投入使用時,需要進行一次初次加載,而這次初次加載需要的時間一般較難預(yù)料。在 數(shù)據(jù)倉庫的日常使用和維護中,每天需要對數(shù)據(jù)倉庫進行增量加載。增量加載的數(shù)據(jù)量要比初次加載小很 多。下面以初次加載為例來談?wù)勅绾卧u估大型 ETL的數(shù)據(jù)加載時間。對初次加載的加載時間進彳f預(yù)估,需要將

45、整個 ETL過程分成抽取、轉(zhuǎn)換和加載三部分,分別對這三部 分進行評估。1 .對抽取時間的評估。抽取通常占用的ETL的大部分時間,而且對這部分需要時間的評 估也是非常困難的。為了對這部分時 間進行評估,我們可以將查詢時間分成兩部分,一部分是查詢響應(yīng)時間,另一部分是數(shù)據(jù)返回時間。查詢 響應(yīng)時間指從查詢開始執(zhí)行到結(jié)果開始返回這段時間。數(shù)據(jù)返回時間指第一條記錄返回到最后一條記錄返 回的時間。另外,初次加載的數(shù)據(jù)量太大,我們可以考慮選擇其中的一部分來評估整體的時間,實際處理中,可 以選擇事實表的一個分區(qū)。一般來說各個分區(qū)的數(shù)據(jù)量差不多,評估出一個分區(qū)的時間,乘上分區(qū)數(shù)可以 作為整體的評估時間。2 .對數(shù)

46、據(jù)轉(zhuǎn)換時間的評估數(shù)據(jù)轉(zhuǎn)換工作通常在內(nèi)存中完成,一般來說都有著非??斓乃俣?,占總體時間的比重比較小。如果要 評估這部分需要的時間的話,最簡單的評估方法是先評估出抽取時間和加載時間,然后運行整個過程,用 整體時間減去抽取時間和加載時間。3 .對加載時間的評估很多原因都可能影響加載時間,其中最重要的兩個分別是索引和日志。r il I iiilli1/200進行加載,計對加載時間的評估,也可以像評估抽取時間時一樣,選擇加載數(shù)據(jù)的一部分,如 算出時間后乘以200來作為整體加載時間??傊?,大型ETL數(shù)據(jù)的加載時間的評估是很困難的,我們采用的方法主要是類比評估,即選擇一部分 數(shù)據(jù)減少整體時間進行評估。在進行

47、評估時要注意到測試環(huán)境和生產(chǎn)環(huán)境的配置等的差別會引起評估結(jié)果 的偏差。雖然這種對時間的評估一定會有誤差,但是可以做為整體加載時間的一個參考。28. Describe the architecture options for implementing real -time ETL.簡述在架構(gòu)實時ETL時的可以選擇的架構(gòu)部件。答:在建立數(shù)據(jù)倉庫時,ETL通常都采用批處理的方式,一般來說是每天的夜間進行跑批。隨著數(shù)據(jù)倉庫技術(shù)的逐步成熟,企業(yè)對數(shù)據(jù)倉庫的時間延遲有了更高的要求,也就出現(xiàn)了目前常說的 實時ETL ( Real-Time ETL )。實時ETL是數(shù)據(jù)倉庫領(lǐng)域里比較新的一部分內(nèi)容。在構(gòu)建實時ETL架構(gòu)的數(shù)據(jù)倉庫時,有幾種技術(shù)可供選擇。1,微批處理(microbatch ETL , MB-ET。微批處理的方式和我們通常的 ETL處理方式很相似,但是處理的時間間隔要短,例如間隔一個小時處 理一次。2. 企業(yè)應(yīng)用集成( Enterprise Application Integration, EAI)EAI也稱為功能整合,通常由中間件來完成數(shù)據(jù)的交互。而通常的ETL稱為數(shù)據(jù)整合。對實時性要求非常高的系統(tǒng),可以考慮使用EAI作為ETL的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論