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

下載本文檔

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

文檔簡介

1、1. WhatisalogicaldatamappingandwhatdoesitmeantotheETLteam?什么是邏輯數(shù)據(jù)映射?它對ETL項(xiàng)目組的作用是什么?答:邏輯數(shù)據(jù)映射(LogicalDataMap)用來描述源系統(tǒng)的數(shù)據(jù)定義、目標(biāo)數(shù)據(jù)倉庫的模型以及將源系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換到數(shù)據(jù)倉庫中需要做操作和處理方式的說明文檔,通常以表格或Excel的格式保存如下的信息:目標(biāo)表名:目標(biāo)列名:目標(biāo)表類型:注明是事實(shí)表、維度表或支架維度表。SCD型:對于維度表而言。源數(shù)據(jù)庫名:源數(shù)據(jù)庫的實(shí)例名,或者連接字符串。源表名:源列名:轉(zhuǎn)換方法:需要對源數(shù)據(jù)做的操作,如Sum(amount)等。邏輯數(shù)據(jù)映射應(yīng)該貫

2、穿數(shù)據(jù)遷移項(xiàng)目的始終,在其中說明了數(shù)據(jù)遷移中的ETL策略。在進(jìn)行物理數(shù)據(jù)映射前進(jìn)行邏輯數(shù)據(jù)映射對ETL項(xiàng)目組是重要的,它起著元數(shù)據(jù)的作用。項(xiàng)目中最好選擇能生成邏輯數(shù)據(jù)映射的數(shù)據(jù)遷移工具。2. Whataretheprimarygoalsofthedatadiscoveryphaseofthedatawarehouseproject?在數(shù)據(jù)倉庫項(xiàng)目中,數(shù)據(jù)探索階段的主要目的是什么?答:在邏輯數(shù)據(jù)映射進(jìn)行之前,需要首先對所有的源系統(tǒng)進(jìn)行分析。對源系統(tǒng)的分析通常包括兩個(gè)階段,一個(gè)是數(shù)據(jù)探索階段(DataDiscoveryPhase),另一個(gè)是異常數(shù)據(jù)檢測階段。數(shù)據(jù)探索階段包括以下內(nèi)容:1 .收集所有

3、的源系統(tǒng)的文檔、數(shù)據(jù)字典等內(nèi)容。2 .收集源系統(tǒng)的使用情況,如誰在用、每天多少人用、占多少存儲(chǔ)空間等內(nèi)容。3 .判斷出數(shù)據(jù)的起始來源(System-of-Record)。4 .通過數(shù)據(jù)概況(DataProfiling)來對源系統(tǒng)的數(shù)據(jù)關(guān)系進(jìn)行分析。數(shù)據(jù)探索階段的主要目的是理解源系統(tǒng)的情況,為后續(xù)的數(shù)據(jù)建模和邏輯數(shù)據(jù)映射打下堅(jiān)實(shí)的基礎(chǔ)。3. Howisthesystem-of-recorddetermined?如何確定起始來源數(shù)據(jù)?答:這個(gè)問題的關(guān)鍵是理解什么是System-of-Record。System-of-Record和數(shù)據(jù)倉庫領(lǐng)域內(nèi)的其他很多概念一樣,不同的人對它有不同的定義。在Kim

4、ball的體系中,System-of-Record是指最初產(chǎn)生數(shù)據(jù)的地方,即數(shù)據(jù)的起始來源。在較大的企業(yè)內(nèi),數(shù)據(jù)會(huì)被冗余的保存在不同的地方,在數(shù)據(jù)的遷移過程中,會(huì)出現(xiàn)修改、清洗等操作,導(dǎo)致與數(shù)據(jù)的起始來源產(chǎn)生不同。起始來源數(shù)據(jù)對數(shù)據(jù)倉庫的建立有著非常重要的作用,尤其是對產(chǎn)生一致性維度來說。我們從起始來源數(shù)據(jù)的越下游開始建立數(shù)據(jù)倉庫,我們遇到垃圾數(shù)據(jù)的風(fēng)險(xiǎn)就會(huì)越大。Architecture4. WhatarethefourbasicDataFlowstepsofanETLprocess?在ETL過程中四個(gè)基本的過程分別是什么?答:Kimball數(shù)據(jù)倉庫構(gòu)建方法中,ETL的過程和傳統(tǒng)的實(shí)現(xiàn)方法有一

5、些不同,主要分為四個(gè)階段,分別是抽取(extract)、清洗(clean)、一致性處理(comform)和交付(delivery),簡稱為ECCD1 .抽取階段的主要任務(wù)是:讀取源系統(tǒng)的數(shù)據(jù)模型。連接并訪問源系統(tǒng)的數(shù)據(jù)。變化數(shù)據(jù)捕獲。抽取數(shù)據(jù)到數(shù)據(jù)準(zhǔn)備區(qū)。2 .清洗階段的主要任務(wù)是:清洗并增補(bǔ)列的屬性。清洗并增補(bǔ)數(shù)據(jù)結(jié)構(gòu)。清洗并增補(bǔ)數(shù)據(jù)規(guī)則。增補(bǔ)復(fù)雜的業(yè)務(wù)規(guī)則。建立元數(shù)據(jù)庫描述數(shù)據(jù)質(zhì)量。將清洗后的數(shù)據(jù)保存到數(shù)據(jù)準(zhǔn)備區(qū)。3 .一致性處理階段的主要任務(wù)是:一致性處理業(yè)務(wù)標(biāo)簽,即維度表中的描述屬性。一致性處理業(yè)務(wù)度量及性能指標(biāo),通常是事實(shí)表中的事實(shí)。去除重復(fù)數(shù)據(jù)。國際化處理。將一致性處理后的數(shù)據(jù)保存

6、到數(shù)據(jù)準(zhǔn)備區(qū)。4 .交付階段的主要任務(wù)是:加載星型的和經(jīng)過雪花處理的維度表數(shù)據(jù)。產(chǎn)生日期維度。加載退化維度。加載子維度。加載1、2、3型的緩慢變化維度。處理遲到的維度和遲到的事實(shí)。加載多值維度。加載有復(fù)雜層級結(jié)構(gòu)的維度。加載文本事實(shí)到維度表。處理事實(shí)表的代理鍵。加載三個(gè)基本類型的事實(shí)表數(shù)據(jù)。加載和更新聚集。將處理好的數(shù)據(jù)加載到數(shù)據(jù)倉庫。從這個(gè)任務(wù)列表中可以看出,ETL的過程和數(shù)據(jù)倉庫建模的過程結(jié)合的非常緊密。換句話說,ETL系統(tǒng)的設(shè)計(jì)應(yīng)該和目標(biāo)表的設(shè)計(jì)同時(shí)開始。通常來說,數(shù)據(jù)倉庫架構(gòu)師和ETL系統(tǒng)設(shè)計(jì)師是同一個(gè)人。5. Whatarethepermissibledatastructuresfo

7、rthedatastagingarea?Brieflydescribetheprosandconsofeach.在數(shù)據(jù)準(zhǔn)備區(qū)中允許使用的數(shù)據(jù)結(jié)構(gòu)有哪些?各有什么優(yōu)缺點(diǎn)?答:1 .固定格式的文本文件。(FlatFile)FlatFile指的是一種保存在系統(tǒng)上的一種文本文件格式,它以類似數(shù)據(jù)庫的表的方式用行和列來保存數(shù)據(jù)。這種文件格式經(jīng)常用來進(jìn)行數(shù)據(jù)交換。用于保存數(shù)據(jù)不太合適。2 .XML數(shù)據(jù)集。多用于數(shù)據(jù)交換,用戶保存數(shù)據(jù)不太合適。3 .關(guān)系數(shù)據(jù)庫的表。保存數(shù)據(jù)的較理想選擇4 .獨(dú)立的數(shù)據(jù)庫表。獨(dú)立的數(shù)據(jù)庫表一般指建立的表和其他表沒有外鍵約束關(guān)系。這樣的表多用于數(shù)據(jù)處理。5 .三范式或者關(guān)系型模

8、型。6 .非關(guān)系型數(shù)據(jù)源。非關(guān)系型數(shù)據(jù)源一般包括COBOLcopybooks、VSAMDt件、Flat文件、Spreadsheets等。7 .維度模型。8 .原子事實(shí)表和聚集事實(shí)表。9 .代理鍵查找表。6. WhenshoulddatabesettodiskforsafekeepingduringtheETL?簡述ETL過程中哪個(gè)步驟應(yīng)該出于安全的考慮將數(shù)據(jù)寫到磁盤上?答:Staging的意思就是將數(shù)據(jù)寫到磁盤上。出于安全及ETL能方便重新開始,在數(shù)據(jù)準(zhǔn)備區(qū)(StagingArea)中的每個(gè)步驟中都應(yīng)該將數(shù)據(jù)寫到磁盤上,即生成文本文件或者將建立關(guān)系表保存數(shù)據(jù),而不應(yīng)該以數(shù)據(jù)不落地方式直接進(jìn)行E

9、TLo例如,在數(shù)據(jù)抽取階段,我們需要連接到源系統(tǒng),為了對源系統(tǒng)的影響盡量小,我們需要將抽取的數(shù)據(jù)保存成文本文件或者放入數(shù)據(jù)準(zhǔn)備區(qū)的表中,這樣,當(dāng)ETL過程出現(xiàn)錯(cuò)誤而失敗時(shí),我們就可以從這些文本文件開始ETL,而不需要再次影響源系統(tǒng)。Extract7. Describetechniquesforextractingfromheterogeneousdatasources.簡述異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)抽取技術(shù)。答:在數(shù)據(jù)倉庫項(xiàng)目中,需要抽取的數(shù)據(jù)經(jīng)常來自不同的數(shù)據(jù)源,它們的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)都可能不同,即稱之為異構(gòu)數(shù)據(jù)源。在對異構(gòu)數(shù)據(jù)源進(jìn)行整合抽取時(shí),我們需要做的事情依次是標(biāo)識出所有的源系統(tǒng),對源系統(tǒng)進(jìn)

10、行概況分析,定義數(shù)據(jù)匹配邏輯,建立篩選規(guī)則,生成一致性維度。對于源數(shù)據(jù)的操作系統(tǒng)平臺(tái)和數(shù)據(jù)平臺(tái)各不相同的情況,我們需要根據(jù)實(shí)際情況來確定如何進(jìn)行數(shù)據(jù)抽取,通常的方法有建立ODBCM接、定義接口文件、建立DBLINK等方法。WhatisthebestapproachforhandlingERPsourcedata?從ERP源系統(tǒng)中抽取數(shù)據(jù)最好的方法是什么?答:ERP系統(tǒng)的產(chǎn)生是為了解決企業(yè)內(nèi)異構(gòu)數(shù)據(jù)的整合。這個(gè)問題也是數(shù)據(jù)倉庫系統(tǒng)面臨的主要問題。ERP的解決方案是將企業(yè)內(nèi)的各個(gè)應(yīng)用(包括銷售、會(huì)計(jì)、人力資源、庫存和產(chǎn)品等)建立在相同的平臺(tái)和相同的應(yīng)用框架下,即在應(yīng)用操作層將企業(yè)內(nèi)的數(shù)據(jù)進(jìn)行了一致

11、性處理。而數(shù)據(jù)倉庫是在應(yīng)用操作層之上建立一致性的規(guī)則并進(jìn)行一致性處理。目前比較流行的ERP系統(tǒng)有SAP、PeopleSoft、Oracle、Baan和J.D.EDwards(大部分沒接觸過)。如果企業(yè)內(nèi)只有一套ERP系統(tǒng),那么數(shù)據(jù)就已經(jīng)是一致的了,為數(shù)據(jù)抽取提供了方便。如果企業(yè)內(nèi)除了ERP外還有其他系統(tǒng),則數(shù)據(jù)抽取會(huì)變得復(fù)雜。因?yàn)槟壳暗腅RP系統(tǒng)的數(shù)據(jù)模型都非常復(fù)雜,可能有幾百幾千個(gè)表,并且較難理解。直接在ERP系統(tǒng)上建立數(shù)據(jù)捕獲和抽取是非常復(fù)雜的。最好的辦法是購買能針又ERP系統(tǒng)數(shù)據(jù)抽取提供功能的ETL工具,將ERP內(nèi)部的復(fù)雜性留給ETL廠商處理。9. Explain thepros and

12、 cons ofcommunicatingwithdatabasesnativelyversusODBC.簡述直接連接數(shù)據(jù)庫和使用ODBM接數(shù)據(jù)庫進(jìn)行通訊的優(yōu)缺點(diǎn)。答:通常連接數(shù)據(jù)庫的方式分為兩類,一類是直接連接,另一類是通過ODBC1接。直接連接的方式主要是通過COBOLPL/SQL、Transact-SQL等方式連接數(shù)據(jù)庫。這種方式的優(yōu)點(diǎn)是運(yùn)行性能高,可以使用DBMS1供的一些特殊功能。缺點(diǎn)是通用性差。ODBO為windows應(yīng)用程序訪問數(shù)據(jù)庫提供的一組接口。ODBC勺優(yōu)點(diǎn)是靈活性,通過改變驅(qū)動(dòng)和連接方式可以使用不同的數(shù)據(jù)庫。ODBCT式的缺點(diǎn)是性能差。使用ODBC接方式實(shí)現(xiàn)ETL的話,在

13、ETL程序和至少要有兩層,分別是ODBCManager層和ODBCDriver層。另外,使用ODBCT式不能使用DBMSg供的一些特殊的功能。10. Describethreechangedatacapture(CDC)practicesandtheprosandconsofeach.簡述出三種變化數(shù)據(jù)捕獲技術(shù)及其優(yōu)缺點(diǎn)。答:變化數(shù)據(jù)捕獲(CDC技術(shù)是ETL工作中的重點(diǎn)和難點(diǎn),通常需要在增量抽取時(shí)完成。實(shí)現(xiàn)變化數(shù)據(jù)捕獲時(shí)最理想的是找到源系統(tǒng)的DBA如果不能找到,就需要ETL項(xiàng)目組自己進(jìn)行檢測數(shù)據(jù)的變化。下面是一些常用的技術(shù)。1 .采用審計(jì)列審計(jì)列指表中如“添加日期”、“修改日期”、“修改人”等

14、信息的字段。應(yīng)用程序在對該表的數(shù)據(jù)進(jìn)行操作時(shí),同時(shí)更新這些字段,或者建立觸發(fā)器來更新這些字段。采用這種方式進(jìn)行變化數(shù)據(jù)捕獲的優(yōu)點(diǎn)是方便,容易實(shí)現(xiàn)。缺點(diǎn)是如果操作型系統(tǒng)沒有相應(yīng)的審計(jì)字段,需要改變已有的操作型系統(tǒng)的數(shù)據(jù)結(jié)構(gòu),以保證獲取過程涉及的每張表都有審計(jì)字段。2 .數(shù)據(jù)庫日志DBM用志獲取是一種通過DBMS1供的日志系統(tǒng)來獲得變化的數(shù)據(jù)。它的優(yōu)點(diǎn)是對數(shù)據(jù)庫或訪問數(shù)據(jù)庫的操作系統(tǒng)的影響最小。缺點(diǎn)是要求DBMSC持,并且對日志記錄的格式非常了解。3 .全表掃描全表掃描或者全表導(dǎo)出文件后進(jìn)行掃描對比也可以進(jìn)行變化數(shù)據(jù)捕獲,尤其是捕獲刪除的數(shù)據(jù)時(shí)。這種方法的優(yōu)點(diǎn)是,思路清晰,適應(yīng)面廣,缺點(diǎn)是效率比較

15、差。DataQuality11. Whatarethefourbroadcategoriesofdataqualitychecks?Provideanimplementationtechniqueforeach.數(shù)據(jù)質(zhì)量檢查的四大類是什么?為每類提供一種實(shí)現(xiàn)技術(shù)。答:數(shù)據(jù)質(zhì)量檢查是ETL工作中非常重要的一步,主要關(guān)注一下四個(gè)方面。1 .正確性檢查(Corret)檢查數(shù)據(jù)值及其描述是否真實(shí)的反映了客觀事務(wù)。例如地址的描述是否完全。2 .明確性檢查(Unambiguous)檢查數(shù)據(jù)值及其描述是否只有一個(gè)意思或者只有一個(gè)解釋。例如地名相同的兩個(gè)縣需要加區(qū)分方法。3 .一致性檢查(Consistent

16、)檢查數(shù)據(jù)值及其描述是否統(tǒng)一的采用固定的約定符號來表示。例如幣別中人民幣用CNY'。4 .完全性檢查(Complete)完全性有兩個(gè)需要檢查的地方,一個(gè)是檢查字段的數(shù)據(jù)值及其描述是否完全。例如檢查是否有空值。另一個(gè)是檢查記錄的合計(jì)值是否完全,有沒有遺忘某些條件。12. AtwhichstageoftheETLshoulddatabeprofiled?簡述應(yīng)該在ETL的哪個(gè)步驟來實(shí)現(xiàn)概況分析?答:數(shù)據(jù)概況分析是對源數(shù)據(jù)內(nèi)容的概況進(jìn)行分析,應(yīng)該在項(xiàng)目的開始后盡早完成,它會(huì)對設(shè)計(jì)和實(shí)現(xiàn)有很大的影響。在完成需求收集后就應(yīng)該立即開始數(shù)據(jù)概況分析。數(shù)據(jù)概況分析不光是對源系統(tǒng)的數(shù)據(jù)概況的定量描述,而

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

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

19、據(jù)質(zhì)量?答:在數(shù)據(jù)倉庫項(xiàng)目中,通常通過不規(guī)則數(shù)據(jù)的檢測工作(AnomalyDetection)來量化源系統(tǒng)的數(shù)據(jù)質(zhì)量。除非成立專門的數(shù)據(jù)質(zhì)量調(diào)查項(xiàng)目組,否則這個(gè)工作應(yīng)該由ETL項(xiàng)目組完成。通??梢圆捎梅纸MSQL來檢查數(shù)據(jù)是否符合域的定義規(guī)則。對于數(shù)據(jù)量小的表,可以直接使用類似下面的SQL完成。selectstate,count(*)fromorder_detailgroupbystate對于數(shù)據(jù)量大的表,一般通過采樣技術(shù)來減少數(shù)據(jù)量,然后進(jìn)行不規(guī)則數(shù)據(jù)檢測。類似SQL如下。selecta.*fromemployeea,(selectrownumcounter,a.*fromemployeea)

20、Bwherea.emp_id=b.emp_idandmod(b.counter,trunc(selectcount(*)fromemployee)/1000,0)=0如果可以采用專門的數(shù)據(jù)概況分析工具進(jìn)行的話,可以減少很大的工作量。Buildingmappings15. Whataresurrogatekeys?Explainhowthesurrogatekeypipelineworks.什么是代理鍵?簡述代理鍵替換管道如何工作。答:在維度表的遷移過程中,有一種處理方式是使用無意義的整型值分配給維度記錄并作為維度記錄的主鍵,這些作為主鍵的整型值稱為代理鍵(SurrogateKey)。使用代理鍵

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

22、 WhydodatesrequirespecialtreatmentduringtheETLprocess?為什么在ETL的過程中需要對日期進(jìn)行特殊處理?答:在數(shù)據(jù)倉庫的項(xiàng)目中,分析是主導(dǎo)需求,而基于日期和時(shí)間的分析更是占了很大的比重。而在操作型源系統(tǒng)中,日期通常都是SQL的DATETIM國的。如果在分析時(shí),使用SQL對這種類型的字段臨時(shí)處理會(huì)出現(xiàn)一些問題,如效率很差,不同的用戶會(huì)采用不同的格式化方法導(dǎo)致報(bào)表不統(tǒng)一。所以,在數(shù)據(jù)倉庫的建模時(shí)都會(huì)建立日期維度表和時(shí)間維度表,將用到的和日期相關(guān)的描述都冗余到該表中。但是,并不是所有的日期都被轉(zhuǎn)化為日期維度表的外鍵。日期維度表中的記錄是有限的,有些日

23、期如生日等可能會(huì)比日期維度表中記錄的最小日期還要早,這類字段可以直接在數(shù)據(jù)倉庫中保存SQL的DATETIME®。而像購買日期等與分析的業(yè)務(wù)緊密相關(guān)的通常都需要轉(zhuǎn)化為日期維度表的外鍵,可以用日期維度表中統(tǒng)一的描述信息進(jìn)行分析。17. Explainthethreebasicdeliverystepsforconformeddimensions.簡述對一致性維度的三種基本的交付步驟。答:數(shù)據(jù)整合的關(guān)鍵就是生成一致性維度,再通過一致性維度將來自不同數(shù)據(jù)源的事實(shí)數(shù)據(jù)合并到一起,供分析使用。通常來說,生成一致性維度有如下三個(gè)步驟:1 .標(biāo)準(zhǔn)化(Standardizing)標(biāo)準(zhǔn)化的目的是使不同數(shù)

24、據(jù)源的數(shù)據(jù)編碼方式,數(shù)據(jù)格式等相同,為下一步數(shù)據(jù)匹配打下基礎(chǔ)。2 .匹配(MatchingandDeduplication)數(shù)據(jù)匹配的工作有兩種,一種是將不同數(shù)據(jù)源的標(biāo)識同一事物的不同屬性匹配到一起,是數(shù)據(jù)更完善;另一種是將不同數(shù)據(jù)源的相同數(shù)據(jù)標(biāo)識成重復(fù),為下一步的篩選打下基礎(chǔ)。3 .篩選(Surviving)數(shù)據(jù)篩選的主要目的是選定一致性維度作為主數(shù)據(jù)(MasterData),也就是最終交付的一致性維度數(shù)NamethethreefundamentalfactgrainsanddescribeanETLapproachforeach.簡述三種基本事實(shí)表,并說明ETL的過程中如何處理它們。答:事

25、實(shí)表從粒度的角色來劃分可以分為三類,分別是交易粒度事實(shí)表(TransactionGrain)、周期快照粒度事實(shí)表(PeriodicSnapshot)和累計(jì)快照粒度事實(shí)表(AccumulatingSnapshot)。在事實(shí)表的設(shè)計(jì)時(shí),一定要注意一個(gè)事實(shí)表只能有一個(gè)粒度,不能將不同粒度的事實(shí)建立在同一張事實(shí)表中。交易粒度事實(shí)表的來源伴隨交易事件成生的數(shù)據(jù),例如銷售單。在ETL過程中,以原子粒度直接進(jìn)行遷移。周期快照事實(shí)表是用來記錄有規(guī)律的,固定時(shí)間間隔的業(yè)務(wù)累計(jì)數(shù)據(jù),例如庫存日快照。在ETL過程中,以固定的時(shí)間間隔生成累計(jì)數(shù)據(jù)。累積快照事實(shí)表用來記錄具有時(shí)間跨度的業(yè)務(wù)處理過程的整個(gè)過程的信息。在E

26、TL過程中,隨著業(yè)務(wù)處理過程的步驟逐步完善該表中的記錄。19. Howarebridgetablesdeliveredtoclassifygroupsofdimensionrecordsassociatedtoasinglefact?簡述橋接表是如何將維度表和事實(shí)表進(jìn)行關(guān)聯(lián)的?答:橋接表(BridgeTable)是維度建模中的一類比較特殊的表。在數(shù)據(jù)倉庫的建模時(shí),會(huì)遇到具有層次結(jié)構(gòu)的維度表,對于這樣的表有一種建模方式是建立父子表,即每條記錄上包括一個(gè)指向其父記錄的字段。這種父子表的建立在層級深度可變時(shí)尤其有用,是一個(gè)緊湊而有效的建模方式。但是這種建模方式也有缺點(diǎn),就是用標(biāo)準(zhǔn)SQL很難對遞歸結(jié)構(gòu)

27、進(jìn)行操作。與這種遞歸結(jié)構(gòu)的父子表不同,橋接表采用不同的建模方式也可以表示這種層級結(jié)構(gòu)。橋接表是建立在維度表和事實(shí)表中間的一個(gè)具有較多冗余信息的表,其中的記錄包含層級結(jié)構(gòu)中節(jié)點(diǎn)到其下面每個(gè)節(jié)點(diǎn)的路徑。表結(jié)構(gòu)如下所示:父關(guān)鍵字子關(guān)鍵字父層數(shù)層名底端標(biāo)識頂端標(biāo)識在橋接表中,節(jié)點(diǎn)與其下面的任意一個(gè)節(jié)點(diǎn)都建立一個(gè)關(guān)聯(lián)記錄保存在表中,即父子關(guān)系不再局限在相鄰層,如第一層與第三層同樣有父子關(guān)系,通過父層數(shù)可以區(qū)分相隔了幾層。這樣,可以通過父層數(shù)和父子關(guān)系來進(jìn)行層級結(jié)構(gòu)的查詢。當(dāng)然,橋接表也不是一個(gè)完備的解決方案,它只能是在某些情況下是查詢變得容易20. Howdoeslatearrivingdataaffe

28、ctdimensionsandfacts?Sharetechniquesforhandlingeach.遲到的數(shù)據(jù)對事實(shí)表和維度表有什么影響?怎樣來處理這個(gè)問題?答:遲到的數(shù)據(jù)分為兩種,一種是遲到的事實(shí)表數(shù)據(jù),另一種是遲到的維度表數(shù)據(jù)。對于遲到的事實(shí)記錄,我們可以插入到相應(yīng)的事實(shí)表中。在插入的同時(shí),還需要做一些處理。首先,對于具有SCDTYPE2型維度的事實(shí)記錄需要在插入前判斷該事實(shí)記錄的發(fā)生日期到目前為止,維度記錄是否發(fā)生過變化,如果有變化,該事實(shí)記錄需要對應(yīng)到事實(shí)發(fā)生時(shí)的維度記錄上。其次,在事實(shí)記錄插入完成后,與該事實(shí)表相關(guān)的聚集事實(shí)表和合并事實(shí)表需要做相應(yīng)的處理。對于遲到的維度記錄,我們

29、需要做的處理要復(fù)雜一些。首先,如果遲到的維度記錄是第一次進(jìn)入數(shù)據(jù)倉庫中,那么需要在維度表中生成一條維度記錄,并將與該維度記錄對應(yīng)的事實(shí)記錄的外鍵進(jìn)行更新。其次,如果遲到的維度記錄是對原維度進(jìn)行的修改,那么我們在維度表中生成一條新記錄的同時(shí),還需要找到維度本次變化到下次變化間的事實(shí)行,并將其維度外鍵更新為新加維度的代理關(guān)鍵字。Metadata21. DescribethedifferenttypesofETLmetadataandprovideexamplesofeach.舉例說明各種ETL過程中的元數(shù)據(jù)。答:元數(shù)據(jù)是ETL項(xiàng)目組面對的一個(gè)非常重要的主題,對于整個(gè)數(shù)據(jù)倉庫項(xiàng)目也是非常重要的一部分

30、。對于元數(shù)據(jù)的分類和使用沒有很確定的定義。通常來說,我們可以把元數(shù)據(jù)分為三類,分別為業(yè)務(wù)元數(shù)據(jù)(BusinessMetadata),技術(shù)元數(shù)據(jù)(TechnicalMetadata)和過程處理元數(shù)據(jù)(ProcessExecutionMetadata)。業(yè)務(wù)元數(shù)據(jù),是從業(yè)務(wù)的角度對數(shù)據(jù)的描述。通常是用來給報(bào)表工具和前端用戶對數(shù)據(jù)進(jìn)行分析和使用提供幫助。技術(shù)元數(shù)據(jù),是從技術(shù)的角度對數(shù)據(jù)的描述。通常包括數(shù)據(jù)的一些屬性,如數(shù)據(jù)類型、長度、或者數(shù)據(jù)概況分析后一些結(jié)果。過程處理元數(shù)據(jù),是ETL處理過程中的一些統(tǒng)計(jì)數(shù)據(jù),通常包括有多少條記錄被加載,多少條記錄被拒絕接受等數(shù)據(jù)22. Shareacceptabl

31、emechanismsforcapturingoperationalmetadata.簡述獲取操作型元數(shù)據(jù)的方法。答:操作型元數(shù)據(jù)(OperationalMetadata),也就是過程處理元數(shù)據(jù),記錄的是ETL過程中數(shù)據(jù)遷移情況,如上次遷移日期,加載的記錄數(shù)等信息。這部分元數(shù)據(jù)在ETL加載失敗時(shí)會(huì)非常重要。一般來說,對于使用ETL工具的數(shù)據(jù)加載,像遷移調(diào)度時(shí)間、遷移調(diào)度順序,失敗處理等內(nèi)容都可以在由在遷移工具中定義生成。像上次遷移日期等數(shù)據(jù)可以建表保存。如果是手工編寫ETL程序的話,操作型元數(shù)據(jù)的處理會(huì)麻煩一些,需要自己來獲取和存儲(chǔ)。獲取的方式,不同的編程方式會(huì)不盡相同。23. Offerte

32、chniquesforsharingbusinessandtechnicalmetadata.Optimization/Operations簡述共享業(yè)務(wù)元數(shù)據(jù)和技術(shù)元數(shù)據(jù)的方法。答:為了能共享各種元數(shù)據(jù),在數(shù)據(jù)倉庫的構(gòu)建過程中必須要有一些元數(shù)據(jù)標(biāo)準(zhǔn),并在實(shí)際開發(fā)中遵守這些標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)包括元數(shù)據(jù)命名規(guī)則、存儲(chǔ)規(guī)則及共享規(guī)則等內(nèi)容。有關(guān)元數(shù)據(jù)標(biāo)準(zhǔn)的內(nèi)容可以參看公共倉庫元模型(CommonWarehouseMetamodel,CWM的相關(guān)資料。在最基本的層面上,企業(yè)應(yīng)該在下面三個(gè)方面制定好標(biāo)準(zhǔn)。1 .命名規(guī)則命名規(guī)則應(yīng)該在ETL組開始編碼前制定好,范圍包括表、歹U、約束、索引等等數(shù)據(jù)庫對象以及其他

33、一些編碼規(guī)則。如果企業(yè)有自己的命名規(guī)則,ETL組應(yīng)該遵守企業(yè)的命名規(guī)則。當(dāng)企業(yè)的命名規(guī)則不能完全滿足需求時(shí),ETL組可以制定補(bǔ)充規(guī)則或者新的規(guī)則。對企業(yè)命名規(guī)則的改變需要有詳細(xì)的文檔記錄,并提交企業(yè)相關(guān)部門審核。2 .架構(gòu)在ETL組開始工作前,架構(gòu)應(yīng)該先被設(shè)計(jì)好。例如ETL引擎是和數(shù)據(jù)倉庫放在同一臺(tái)服務(wù)器上還是單獨(dú)設(shè)立服務(wù)器;數(shù)據(jù)準(zhǔn)備區(qū)是建立成臨時(shí)的還是持久的;數(shù)據(jù)倉庫是基于維度建模的還是3NF建模的。并且這些內(nèi)容應(yīng)該有詳細(xì)的文檔記錄。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)容

34、也應(yīng)該有詳細(xì)的文檔記錄。在ETL的開發(fā)中,制定好元數(shù)據(jù)標(biāo)準(zhǔn)并能很好的遵守,那么建立好的數(shù)據(jù)倉庫的元數(shù)據(jù)就可以很好的完成共享功能。24. Statetheprimarytypesoftablesfoundinadatawarehouseandtheorderwhichtheymustbeloadedtoenforcereferentialintegrity.簡述數(shù)據(jù)倉庫中的表的基本類型,以及為了保證引用完整性該以什么樣的順序?qū)λ鼈冞M(jìn)行加載。答:數(shù)據(jù)倉庫中的表的基本類型有維度表、事實(shí)表、子維度表、橋接表等幾類。其中子維度表即雪花模型由支架維度技術(shù)處理,橋接表用來處理多值維度或?qū)蛹壗Y(jié)構(gòu)。數(shù)據(jù)倉庫中需

35、要加載的各類表之間有相互依賴的關(guān)系,所以加載時(shí)需要以一定的順序進(jìn)行加載。下面是一些加載的基本原則:子維度表加載成功后,再加載維度表。維度表加載成功后,再加載橋接表。子維度表、維度表和橋接表都加載成功后,再加載事實(shí)表。這個(gè)加載順序可以通過主外鍵的關(guān)系來確定。(注意,此回答為總線架構(gòu)的數(shù)據(jù)倉庫的表的加載順序。)25. WhatarethecharacteristicsofthefourlevelsoftheETLsupportmodel?簡述ETL技術(shù)支持工作的四個(gè)級別的特點(diǎn)。答:數(shù)據(jù)倉庫上線后,ETL組需要為保證ETL工作的正常運(yùn)行提供技術(shù)支持。通常這種技術(shù)支持工作分為四個(gè)級別。1 .第一級別的

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

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

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

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

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

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

42、howtoestimatetheloadtimeofalargeETLjob.RealTimeETL簡述如何評估大型ETL數(shù)據(jù)加載時(shí)間。答:評估一個(gè)大型的ETL的數(shù)據(jù)加載時(shí)間是一件很復(fù)雜的事情。數(shù)據(jù)加載分為兩類,一類是初次加載,另一類是增量加載。在數(shù)據(jù)倉庫正式投入使用時(shí),需要進(jìn)行一次初次加載,而這次初次加載需要的時(shí)間一般較難預(yù)料。在數(shù)據(jù)倉庫的日常使用和維護(hù)中,每天需要對數(shù)據(jù)倉庫進(jìn)行增量加載。增量加載的數(shù)據(jù)量要比初次加載小很多。下面以初次加載為例來談?wù)勅绾卧u估大型ETL的數(shù)據(jù)加載時(shí)間。對初次加載的加載時(shí)間進(jìn)彳f預(yù)估,需要將整個(gè)ETL過程分成抽取、轉(zhuǎn)換和加載三部分,分別對這三部分進(jìn)行評估。1 .對

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

44、比較小。如果要評估這部分需要的時(shí)間的話,最簡單的評估方法是先評估出抽取時(shí)間和加載時(shí)間,然后運(yùn)行整個(gè)過程,用整體時(shí)間減去抽取時(shí)間和加載時(shí)間。3 .對加載時(shí)間的評估很多原因都可能影響加載時(shí)間,其中最重要的兩個(gè)分別是索引和日志。對加載時(shí)間的評估,也可以像評估抽取時(shí)間時(shí)一樣,選擇加載數(shù)據(jù)的一部分,如1/200進(jìn)行加載,計(jì)算出時(shí)間后乘以200來作為整體加載時(shí)間??傊笮虴TL數(shù)據(jù)的加載時(shí)間的評估是很困難的,我們采用的方法主要是類比評估,即選擇一部分?jǐn)?shù)據(jù)減少整體時(shí)間進(jìn)行評估。在進(jìn)行評估時(shí)要注意到測試環(huán)境和生產(chǎn)環(huán)境的配置等的差別會(huì)引起評估結(jié)果的偏差。雖然這種對時(shí)間的評估一定會(huì)有誤差,但是可以做為整體加載時(shí)

45、間的一個(gè)參考。Describethearchitectureoptionsforimplementingreal-timeETL.簡述在架構(gòu)實(shí)時(shí)ETL時(shí)的可以選擇的架構(gòu)部件。答:在建立數(shù)據(jù)倉庫時(shí),ETL通常都采用批處理的方式,一般來說是每天的夜間進(jìn)行跑批。隨著數(shù)據(jù)倉庫技術(shù)的逐步成熟,企業(yè)對數(shù)據(jù)倉庫的時(shí)間延遲有了更高的要求,也就出現(xiàn)了目前常說的實(shí)時(shí)ETL(Real-TimeETL)。實(shí)時(shí)ETL是數(shù)據(jù)倉庫領(lǐng)域里比較新的一部分內(nèi)容。在構(gòu)建實(shí)時(shí)ETL架構(gòu)的數(shù)據(jù)倉庫時(shí),有幾種技術(shù)可供選擇。1,微批處理(microbatchETL,MB-ET。微批處理的方式和我們通常的ETL處理方式很相似,但是處理的時(shí)間間隔要短,例如間隔一個(gè)小時(shí)處理一次。2. 企業(yè)應(yīng)用集成(EnterpriseApplicationIntegration,EAI)EAI也稱為功能整合,通常由中間件來完成數(shù)據(jù)的交互。而通常的ETL稱為數(shù)據(jù)整合

溫馨提示

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

最新文檔

評論

0/150

提交評論