數(shù)據(jù)倉庫的開發(fā)設(shè)計過程_第1頁
數(shù)據(jù)倉庫的開發(fā)設(shè)計過程_第2頁
數(shù)據(jù)倉庫的開發(fā)設(shè)計過程_第3頁
數(shù)據(jù)倉庫的開發(fā)設(shè)計過程_第4頁
數(shù)據(jù)倉庫的開發(fā)設(shè)計過程_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)倉庫之路

FAQ

FAQ目錄

一、與數(shù)據(jù)倉庫有關(guān)的幾個概念.....................3

1.1目錄.........................................3

二、數(shù)據(jù)倉庫產(chǎn)生的原因...........................8

三、數(shù)據(jù)倉庫體系結(jié)構(gòu)圖..........................11

四、數(shù)據(jù)倉庫設(shè)計................................12

4.1數(shù)據(jù)倉庫的建模..............................12

4.2數(shù)據(jù)倉庫建模的十條戒律:....................13

五、數(shù)據(jù)倉庫開發(fā)過程............................14

5.1數(shù)據(jù)模型的內(nèi)容..............................14

5.2數(shù)據(jù)模型轉(zhuǎn)變到數(shù)據(jù)倉庫......................14

5.3數(shù)據(jù)倉庫開發(fā)成功的關(guān)鍵......................15

六、數(shù)據(jù)倉庫的數(shù)據(jù)采集..........................16

6.1后臺處理....................................17

6.2中間處理....................................17

6.3前臺處理....................................18

6.4數(shù)據(jù)倉庫的技術(shù)體系結(jié)構(gòu)......................18

6.5數(shù)據(jù)的有效性檢查............................20

6.6清除和轉(zhuǎn)換數(shù)據(jù)..............................20

6.7簡單變換....................................22

6.8清潔和刷洗..................................24

6.9集成........................................25

6.10聚集和概括..................................27

6.11移動數(shù)據(jù)....................................27

七、如何建立數(shù)據(jù)倉庫............................30

7.1數(shù)據(jù)倉庫設(shè)計................................31

7.2數(shù)據(jù)抽取模塊................................32

7.3數(shù)據(jù)維護模塊................................33

一、與數(shù)據(jù)倉庫有關(guān)的幾個概念

1.1目錄

□Datawarehouse

□Datamart

□OLAP

□ROLAP

□MOLAP

□ClientOLAP

□DSS

□ETL

口Adhocquery

□EIS

□BPR

口BI

□Datamining

□CRM

□MetaData

Datawarehouse

本世紀80年代中期,“數(shù)據(jù)倉庫之父"WilliamH.Inmon先生在其《建立數(shù)據(jù)

倉庫》一書中定義了數(shù)據(jù)倉庫的概念,隨后又給出了更為精確的定義:數(shù)據(jù)倉

庫是在企業(yè)管理和決策中面向主題的、集成的、與時間相關(guān)的、不可修改的數(shù)

據(jù)集合。與其他數(shù)據(jù)庫應(yīng)用不同的是,數(shù)據(jù)倉庫更像一種過程,對分布在企業(yè)

內(nèi)部各處的業(yè)務(wù)數(shù)據(jù)的整合、加工和分析的過程。而不是一種可以購買的產(chǎn)品。

Datamart

即數(shù)據(jù)集市,或者叫做“小數(shù)據(jù)倉庫”。如果說數(shù)據(jù)倉庫是建立在企業(yè)級的數(shù)

據(jù)模型之上的話。那么數(shù)據(jù)集市就是企業(yè)級數(shù)據(jù)倉庫的一個子集,他主要面向

部門級業(yè)務(wù),并且只面向某個特定的主題。數(shù)據(jù)集市可以在一定程度上緩解訪

問數(shù)據(jù)倉庫的瓶頸。

OLAP

聯(lián)機分析處理(OLAP)的概念最早是由關(guān)系數(shù)據(jù)庫之父E.F.Codd于1993年提出

的。當(dāng)時,Codd認為聯(lián)機事務(wù)處理(OLTP)已不能滿足終端用戶對數(shù)據(jù)庫查詢分

析的需要,SQL對大數(shù)據(jù)庫進行的簡單查詢也不能滿足用戶分析的需求。用戶

的決策分析需要對關(guān)系數(shù)據(jù)庫進行大量計算才能得到結(jié)果,而查詢的結(jié)果并不

能滿足決策者提出的需求。因此Codd提出了多維數(shù)據(jù)庫和多維分析的概念,即

OLAPoCodd提出OLAP的12條準則來描述OLAP系統(tǒng):

準則1OLAP模型必須提供多維概念視圖

準則2透明性準則

準則3存取能力推測

準則4穩(wěn)定的報表能力

準則5客戶/服務(wù)器體系結(jié)構(gòu)

準則6維的等同性準則

準則7動態(tài)的稀疏矩陣處理準則

準則8多用戶支持能力準則

準則9非受限的跨維操作

準則10直觀的數(shù)據(jù)操縱

準則11靈活的報表生成

準則12不受限的維與聚集層次

ROLAP

基于Codd的12條準則,各個軟件開發(fā)廠家見仁見智,其中一個流派,認為可

以沿用關(guān)系型數(shù)據(jù)庫來存儲多維數(shù)據(jù),于是,基于稀疏矩陣表示方法的星型結(jié)

構(gòu)(starschema)就出現(xiàn)了。后來又演化出雪花結(jié)構(gòu)。為了與多維數(shù)據(jù)庫相區(qū)

別,則把基于關(guān)系型數(shù)據(jù)庫的OLAP稱為RelationalOLAP,簡稱ROLAP。代

表產(chǎn)品有InformixMetacube>MicrosoftSQLServer

OLAPServices.

MOLAP

嚴格遵照Codd的定義,自行建立了多維數(shù)據(jù)庫,來存放聯(lián)機分析系統(tǒng)數(shù)據(jù)的

ArborSoftware,開創(chuàng)了多維數(shù)據(jù)存儲的先河,后來的很多家公司紛紛采用多維

數(shù)據(jù)存儲。被人們稱為MuiltDimensionOLAP,簡稱MOLAP,代表產(chǎn)品有

Hyperion(原Arborsoftware)Essbase、ShowcaseSTRATEGY等。

ClientOLAP

相對于ServerOLAP而言。部分分析工具廠家建議把部分數(shù)據(jù)下載到本地,為

用戶提供本地的多維分析。代表產(chǎn)品有BrioDesigner,BusinessObject.

DSS

決策支持系統(tǒng)(DecisionSupportsystem),相當(dāng)于基于數(shù)據(jù)倉庫的應(yīng)用。決策

支持就是在收集所有有關(guān)數(shù)據(jù)和信息,經(jīng)過加工整理,來為企業(yè)決策管理層提

供信息,為決策者的決策提供依據(jù)。

ETL

數(shù)據(jù)抽取(Extract)、轉(zhuǎn)換(Transform)、清洗(Cleansing)、裝載(Load)

的過程。構(gòu)建數(shù)據(jù)倉庫的重要一環(huán),用戶從數(shù)據(jù)源抽取出所需的數(shù)據(jù),經(jīng)過數(shù)

據(jù)清洗,最終按照預(yù)先定義好的數(shù)據(jù)倉庫模型,將數(shù)據(jù)加載到數(shù)據(jù)倉庫中去。

Adhocquery

即席查詢,數(shù)據(jù)庫應(yīng)用最普遍的一種查詢,利用數(shù)據(jù)倉庫技術(shù),可以讓用戶隨

時可以面對數(shù)據(jù)庫,獲取所希望的數(shù)據(jù)。

EIS

領(lǐng)導(dǎo)信息系統(tǒng)(ExecutiveInformationSystem),指為了滿足無法專注于計算機

技術(shù)的領(lǐng)導(dǎo)人員的信息查詢需求,而特意制定的以簡單的圖形界面訪問數(shù)據(jù)倉

庫的一種應(yīng)用。

BPR

業(yè)務(wù)流程重整(BusinessProcessReengineering),指利用數(shù)據(jù)倉庫技術(shù),發(fā)現(xiàn)并

糾正企業(yè)業(yè)務(wù)流程中的弊端的一項工作。數(shù)據(jù)倉庫的重要作用之一。

BI

商業(yè)智能(BusinessIntelligence),指數(shù)據(jù)倉庫相關(guān)技術(shù)與應(yīng)用的通稱。指利用

各種智能技術(shù),來提升企業(yè)的商業(yè)競爭力。

Datamining

數(shù)據(jù)挖掘,DataMining是一種決策支持過程,它主要基于AI、機器學(xué)習(xí)、統(tǒng)計

學(xué)等技術(shù),高度自動化地分析企業(yè)原有的數(shù)據(jù),作出歸納性的推理,從中挖掘

出潛在的模式,預(yù)測客戶的行為,幫助企業(yè)的決策者調(diào)整市場策略,減少風(fēng)險,

作出正確的決策

CRM

客戶關(guān)系管理(CustomerRelationshipmanagement),數(shù)據(jù)倉庫是以數(shù)據(jù)庫技術(shù)

為基礎(chǔ)但又與傳統(tǒng)的數(shù)據(jù)庫應(yīng)用有著本質(zhì)區(qū)別的新技術(shù),CRM就是基于數(shù)據(jù)

倉庫技術(shù)的一種新應(yīng)用。但是,從商業(yè)運作的角度來講,CRM其實應(yīng)該算是

一個古老的"應(yīng)用"了。比如,酒店對客人信息的管理,如果某個客人是某酒店

的老主顧,那么該酒店很自然地會知道這位客人的某些習(xí)慣和喜好,如是否喜

歡靠路邊,是否吸煙,是否喜歡大床,喜歡什么樣的早餐,等等。當(dāng)客人再次

光臨時,不用客人自己提出來,酒店就會提供客人所喜歡的房間和服務(wù)。這就

是一種CRM.

MetaData

元數(shù)據(jù),關(guān)于數(shù)據(jù)倉庫的數(shù)據(jù),指在數(shù)據(jù)倉庫建設(shè)過程中所產(chǎn)生的有關(guān)數(shù)

據(jù)源定義,目標(biāo)定義,轉(zhuǎn)換規(guī)則等相關(guān)的關(guān)鍵數(shù)據(jù)。同時元數(shù)據(jù)還包含關(guān)于數(shù)

據(jù)含義的商業(yè)信息,所有這些信息都應(yīng)當(dāng)妥善保存,并很好地管理。為數(shù)據(jù)倉

庫的發(fā)展和使用提供方便。

二、數(shù)據(jù)倉庫產(chǎn)生的原因

事務(wù)處理環(huán)境不適宜DSS應(yīng)用的原因主要有以下五條:

(1)事務(wù)處理和分析處理的性能特性不同。

在事務(wù)處理環(huán)境中,用戶的行為特點是數(shù)據(jù)的存取操作頻率高而每次操作處

理的時間短;在分析處理環(huán)境中,用戶的行為模式與此完全不同,某個DSS應(yīng)用

程序可能需要連續(xù)幾個小時,從而消耗大量的系統(tǒng)資源。將具有如此不同處理性

能的兩種應(yīng)用放在同一個環(huán)境中運行顯然是不適當(dāng)?shù)摹?/p>

(2)數(shù)據(jù)集成問題。

DSS需要集成的數(shù)據(jù)。全面而正確的數(shù)據(jù)是有效的分析和決策的首要前提,

相關(guān)數(shù)據(jù)收集得越完整,得到的結(jié)果就越可靠。當(dāng)前絕大多數(shù)企業(yè)內(nèi)數(shù)據(jù)的真正

狀況是分散而非集成的。造成這種分散的原因有多種,主要有事務(wù)處理應(yīng)用分散、

“蜘蛛網(wǎng)”問題、數(shù)據(jù)不一致問題、外部數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。

(3)數(shù)據(jù)動態(tài)集成問題。

靜態(tài)集成的最大缺點在于,如果在數(shù)據(jù)集成后數(shù)據(jù)源中數(shù)據(jù)發(fā)生了變化,這

些變化將不能反映給決策者,導(dǎo)致決策者使用的是過時的數(shù)據(jù)。集成數(shù)據(jù)必須

以一定的周期(例如24小時)進行刷新,我們稱其為動態(tài)集成。顯然,事務(wù)處

理系統(tǒng)不具備動態(tài)集成的能力。

(4)歷史數(shù)據(jù)問題。

事務(wù)處理一般只需要當(dāng)前數(shù)據(jù),在數(shù)據(jù)庫中一般也是存儲短期數(shù)據(jù),切不同

數(shù)據(jù)的保存期限也不一樣,即使有一些歷史數(shù)據(jù)保存下來了,也被束之高閣,未

得到充分利用。但對于決策分析而言,歷史數(shù)據(jù)是相當(dāng)重要的,許多分析方法必

須一大量的歷史數(shù)據(jù)為依托。沒有歷史數(shù)據(jù)的詳細分析,是難以把握企業(yè)的發(fā)展

趨勢的。DSS對數(shù)據(jù)在空間和時間的廣度上都有了更高的要求,而事務(wù)處理環(huán)境

難以滿足這些要求。

(5)數(shù)據(jù)的綜合問題。

在事務(wù)處理系統(tǒng)中積累了大量的細節(jié)數(shù)據(jù),一般而言,DSS并不對這些細節(jié)

數(shù)據(jù)進行分析。在分析前,往往需要對細節(jié)數(shù)據(jù)進行不同程度的綜合。而事務(wù)處

理系統(tǒng)不具備這種綜合能力,根據(jù)規(guī)范化理論,這種綜合還往往因為是一種數(shù)據(jù)

冗余而加以限制。

要提高分析和決策的效率和有效性,分析型處理及其數(shù)據(jù)必須與操作型處理及

其數(shù)據(jù)相分離。必須把分析型數(shù)據(jù)從事務(wù)處理環(huán)境中提取出來,按照DSS處理的

需要進行重新組織,建立單獨的分析處理環(huán)境,數(shù)據(jù)倉庫正是為了構(gòu)建這種新的

分析處理環(huán)境而出現(xiàn)的一種數(shù)據(jù)存儲和組織技術(shù)。

三、數(shù)據(jù)倉庫體系結(jié)構(gòu)圖

中6

OWEA

■拄用戶

DWLA

敬■

具?幅

XA

改第臬#RM5M

“分場

數(shù)據(jù)倉庫結(jié)構(gòu)的元件

E/UikingUsing

DataWarehouseDesignDataMartDesign

k

o

pEnd-UserTools

o

OperationalDatai

DataMartsq

DataTransformations£

DBSchemaTransformationSchedulingOLAP

MicrosoftReposHoi

DataWarehouseManagement

DataFlow

四、數(shù)據(jù)倉庫設(shè)計

4.1數(shù)據(jù)倉庫的建模

□數(shù)據(jù)模型

1)所有的實體都是平等關(guān)系。

2)僅僅從數(shù)據(jù)模型的角度來著手設(shè)計數(shù)據(jù)倉庫會產(chǎn)生一種“平面”效應(yīng)。

□星型連接

1)事實表:位于星型連接的中央,它是被大量載入數(shù)據(jù)的實體。

2)維表:周圍的其它實體。

3)在很多情況下:文本數(shù)據(jù)與數(shù)值數(shù)據(jù)是分離開的。

通過數(shù)據(jù)預(yù)連接和建立有選擇的數(shù)據(jù)冗余,設(shè)計者為訪問和分析過程大大簡化了

數(shù)據(jù)。

星型連接應(yīng)用于設(shè)計數(shù)據(jù)倉庫中很大的實體,而數(shù)據(jù)模型則應(yīng)用于數(shù)據(jù)倉庫中較

小的實體。

4.2數(shù)據(jù)倉庫建模的十條戒律:

1)必須回答緊迫的問題;

2)必須有正確的事實表;

3)將有正確的維表,描述必須按最終用戶的業(yè)務(wù)術(shù)語表達;

4)必須理解數(shù)據(jù)倉庫所影響的公司過程或影響數(shù)據(jù)倉庫的公司過程;

5)對于事實表,應(yīng)該有正確的“粒度”;

6)根據(jù)需要存儲正確長度的公司歷史數(shù)據(jù);

7)以一種對于公司有意義的方式來集成所有必要的數(shù)據(jù);

8)創(chuàng)建必要的總結(jié)表;

9)創(chuàng)建必要的索引;

10)能夠加載數(shù)據(jù)倉庫數(shù)據(jù)庫并使它以一種適宜的方式可用。

五、數(shù)據(jù)倉庫開發(fā)過程

□建立或獲得企業(yè)的數(shù)據(jù)模型;

□定義記錄系統(tǒng);

□設(shè)計數(shù)據(jù)倉庫并按主題領(lǐng)域進行組織;

□設(shè)計和建立操作型環(huán)境中的記錄系統(tǒng)和數(shù)據(jù)倉庫之間的接口,這些接口

能保證數(shù)據(jù)倉庫的載入工作能有序的進行;

□開始載入第一個主題領(lǐng)域,進入載入和反饋過程,數(shù)據(jù)倉庫中的數(shù)據(jù)在

此過程中也在不斷地改變。

5.1數(shù)據(jù)模型的內(nèi)容

□標(biāo)識主要主題領(lǐng)域。

口各個主要主題之間的各種關(guān)系。

口清晰地定義模型的邊界。

□把原始數(shù)據(jù)和導(dǎo)出數(shù)據(jù)分離。

□每個主題領(lǐng)域需要標(biāo)識

/鍵碼

,屬性

/屬性分組之間的關(guān)系

,多重出現(xiàn)的數(shù)據(jù)

/數(shù)據(jù)的類型

5.2數(shù)據(jù)模型轉(zhuǎn)變到數(shù)據(jù)倉庫

□如果原先沒有時間元素的話,時間元素必須加入到鍵碼結(jié)構(gòu)中

□必須清除所有的純操作型數(shù)據(jù)

□需要將參照完整性關(guān)系轉(zhuǎn)換成“人工關(guān)系”

□將經(jīng)常需要用到的到處數(shù)據(jù)假如到設(shè)計中

□對數(shù)據(jù)的結(jié)構(gòu)進行調(diào)整

/增加數(shù)據(jù)陣列

/增加數(shù)據(jù)冗余

/在合適的情況下進一步分離數(shù)據(jù)

/在合適的時候合并數(shù)據(jù)表

□需要做數(shù)據(jù)的穩(wěn)定性分析

5.3數(shù)據(jù)倉庫開發(fā)成功的關(guān)鍵

關(guān)鍵:是數(shù)據(jù)體系結(jié)構(gòu)設(shè)計者和DSS分析者之間的反饋循環(huán)。有幾點觀

察結(jié)果對數(shù)據(jù)倉庫環(huán)境的成功建立是至關(guān)重要的問題:

nDSS分析人員一定要嚴格遵循“給我我所要的東西,然后我能告訴你我

真正需要的東西”的工作模式;

□反饋循環(huán)的周期越短,越有可能成功;

□需要調(diào)整的數(shù)據(jù)量越大,反饋循環(huán)所需要的周期就越長

六、數(shù)據(jù)倉庫的數(shù)據(jù)采集

許多部件構(gòu)成了數(shù)據(jù)倉庫系統(tǒng)。這個系統(tǒng)從現(xiàn)有的操作系統(tǒng)開始,一部分為支

持數(shù)據(jù)倉庫而設(shè)的后臺處理,以訪問和運用數(shù)據(jù)倉庫內(nèi)數(shù)據(jù)的用戶工具而結(jié)束。

在中間是個分散過程,它使數(shù)據(jù)以一種局部而不是集中的方式來支持用戶。至于

其他系統(tǒng),則是覆蓋這些處理過程技術(shù)的基礎(chǔ),如安全系統(tǒng),它不僅控制著在終

端數(shù)據(jù)倉庫的輸入過程,還控制著用戶在數(shù)據(jù)倉庫的前臺訪問能力。數(shù)據(jù)倉庫處

理的部件如圖:

6.1后臺處理

數(shù)據(jù)倉庫系統(tǒng)的后臺處理利用了操作系統(tǒng)的數(shù)據(jù)存儲器,以進入數(shù)據(jù)倉庫內(nèi)占

有活動區(qū)域:這個處理包括以下幾個部分:

□數(shù)據(jù)處理為數(shù)據(jù)倉庫收集數(shù)據(jù)的過程是從當(dāng)前操作系統(tǒng)開始的。該數(shù)據(jù)

倉庫的后臺處理需要被分成可管理的幾個處理模塊。操作系統(tǒng)生成必須處

理和輸入到數(shù)據(jù)倉庫的事務(wù)。在數(shù)據(jù)倉庫系統(tǒng)的結(jié)構(gòu)內(nèi)必須有一種方法來

截取和收集那些在操作系統(tǒng)內(nèi)已改變的數(shù)據(jù),主要用于數(shù)據(jù)倉庫的輸入處

理。

□數(shù)據(jù)采集在收集到操作數(shù)據(jù)存儲器內(nèi)的變化后,數(shù)據(jù)倉庫的后臺處理必

須采集所有同以前收集的事務(wù)相關(guān)的數(shù)據(jù)。數(shù)據(jù)采集過程通常僅僅獲取驅(qū)

動數(shù)據(jù)采集過程的關(guān)鍵信息。

數(shù)據(jù)制備成事務(wù)庫并用I條更新和供給數(shù)據(jù)倉庫系統(tǒng)。這個過程在整個數(shù)

據(jù)倉庫系統(tǒng)中是最復(fù)雜的,因為用戶正處理多種遺留數(shù)據(jù)源。這些數(shù)據(jù)源中的一

些較為容易使用,而大部分則不是這樣。

6.2中間處理

數(shù)據(jù)倉庫系統(tǒng)的中間處理利用了一個登臺區(qū)域來完成在數(shù)據(jù)倉庫中對用戶游

泳的數(shù)據(jù)。登臺區(qū)域有時被叫正式地指定為操作數(shù)據(jù)存儲器。

□數(shù)據(jù)清理在收集到所有從操作系統(tǒng)存儲器得來的相關(guān)信息后,數(shù)據(jù)必須

在放入數(shù)據(jù)倉庫之前進行清理,以獲得一個適當(dāng)?shù)慕y(tǒng)一的格式和定義。

□數(shù)據(jù)的放置和分發(fā)當(dāng)完成數(shù)據(jù)清理后,數(shù)據(jù)就必須放置到數(shù)據(jù)倉庫中。

□標(biāo)準報表的編譯和索引在數(shù)據(jù)已放入數(shù)據(jù)倉庫數(shù)據(jù)存儲器之后,對包含于

數(shù)據(jù)倉庫系統(tǒng)內(nèi)的標(biāo)準報表必須進行編譯和索引。在這個過程結(jié)束后,報

表很像數(shù)據(jù)倉庫內(nèi)的原始數(shù)據(jù),將讓用戶在線有用,不必用紙張的形式發(fā)

送。

中間處理更新了數(shù)據(jù)倉庫中登臺區(qū)域的數(shù)據(jù),并使之成為可供最終客戶,也就

是數(shù)據(jù)倉庫系統(tǒng)的用戶使用的信息庫。

6.3前臺處理

前臺處理過程涉及到允許用戶對數(shù)據(jù)倉庫所包含的信息進行正確的訪問,及提

供用戶工具集所需的目錄和中間數(shù)據(jù)信息。大多數(shù)數(shù)據(jù)倉庫項目的目標(biāo)應(yīng)當(dāng)是驅(qū)

使這一過程進入強大的用戶領(lǐng)域,并脫離信息系統(tǒng)空間。然而,需要構(gòu)造幾個關(guān)

鍵的應(yīng)用程序以用于經(jīng)驗不足的數(shù)據(jù)倉庫用戶。該過程的任務(wù)包括用新的信息內(nèi)

容來更新訪問數(shù)據(jù)倉庫的應(yīng)用程序,通過適當(dāng)?shù)挠脩艄ぞ呓M內(nèi)的視圖或分類定義

來提高訪問能力。

6.4數(shù)據(jù)倉庫的技術(shù)體系結(jié)構(gòu)

雖然普遍認為數(shù)據(jù)倉庫系統(tǒng)能夠改善最終用戶查詢、報表生成和DSS能力,

而且能幫助組織投入公司數(shù)據(jù)以獲取市場競爭優(yōu)勢,但在數(shù)據(jù)倉庫系統(tǒng)構(gòu)成方面

看法卻不盡相同。數(shù)據(jù)倉庫的技術(shù)體系結(jié)構(gòu)如下圖:

夕陪[幽據(jù)

□設(shè)計模塊:用于設(shè)計數(shù)據(jù)倉庫數(shù)據(jù)庫

□數(shù)據(jù)獲取模塊:用于從源文件和源數(shù)據(jù)庫中獲取數(shù)據(jù),并進行清潔、傳輸,

將它加到數(shù)據(jù)倉庫數(shù)據(jù)庫中

□管理模塊:用于管理數(shù)據(jù)倉庫的運行

□信息目錄模塊:用于為管理者和企業(yè)用戶提供有關(guān)存儲在數(shù)據(jù)倉庫數(shù)據(jù)庫

中的數(shù)據(jù)的內(nèi)容和含義信息

□數(shù)據(jù)訪問模塊:用于為企業(yè)的最終用戶提供訪問和分析數(shù)據(jù)倉庫數(shù)據(jù)的工

□中間件模塊:用于最終用戶工具提供訪問數(shù)據(jù)倉庫數(shù)據(jù)庫的方法

□數(shù)據(jù)傳遞模塊:用于向其他倉庫和外部系統(tǒng)中分配數(shù)據(jù)倉庫數(shù)據(jù)

數(shù)據(jù)倉庫的三個重要組成部分,專家們一般把整個數(shù)據(jù)倉庫的建設(shè)按照其不

同性質(zhì),把它分為三個截然不同的部分,分別是:源數(shù)據(jù)、數(shù)據(jù)準備、以及數(shù)據(jù)

呈現(xiàn)。現(xiàn)在講的最多的OLAP分析和決策支持等,都是屬于數(shù)據(jù)呈現(xiàn)的部分,下

面我們來講一講數(shù)據(jù)準備階段的問題。

6.5數(shù)據(jù)的有效性檢查

為避免數(shù)據(jù)冗余,要認識到數(shù)據(jù)裝入數(shù)據(jù)倉庫之前,應(yīng)該對數(shù)據(jù)進行有效性檢

查,這是很重要的。如果沒有進行刃具的有效性檢查,就有可能破壞依賴于數(shù)據(jù)

倉庫的商務(wù)分析的完整性,幫助檢查數(shù)據(jù)的有效性的最好方法是源系統(tǒng)專家。源

系統(tǒng)專家包括具有技術(shù)專業(yè)知識和非技術(shù)知識的人士。

檢查數(shù)據(jù)倉庫中數(shù)據(jù)的有效性是一個非常耗時但必不可少的過程。建議該過程

應(yīng)高度自動化。SQLServer7中有許多內(nèi)置功能,可自動進行數(shù)據(jù)有效性檢查。

6.6清除和轉(zhuǎn)換數(shù)據(jù)

有效性檢查是決定是否符合給定標(biāo)準的過程。標(biāo)準是依賴于安裝的,為某個站

點開發(fā)和執(zhí)行的標(biāo)準可能在其他地方毫無意義。如果數(shù)據(jù)不在給定的界限之內(nèi),

它就成為我們稱作scrubbing(清除)過程的對象。清除數(shù)據(jù)包括對那些在給定范

圍之外的數(shù)據(jù)采取糾正措施。

數(shù)據(jù)倉庫中的數(shù)據(jù)來自于多種業(yè)務(wù)數(shù)據(jù)源,這些數(shù)據(jù)源可能是在不同的硬件平

臺上,使用不同的操作系統(tǒng),因而數(shù)據(jù)以不同的格式存在不同的數(shù)據(jù)庫中。如何

向數(shù)據(jù)倉庫中加載這些數(shù)量大、種類多的數(shù)據(jù),已成為建立數(shù)據(jù)倉庫所面臨的一

個關(guān)鍵問題。

在數(shù)據(jù)遷移的過程中,通常需要將操作數(shù)據(jù)轉(zhuǎn)換成另一種格式以更加適用于數(shù)

據(jù)倉庫設(shè)計%在太多數(shù)情況下,轉(zhuǎn)換是將數(shù)據(jù)匯總,以使它更有意義。

在轉(zhuǎn)換結(jié)構(gòu)中,確保能找出一種最好的方法保證數(shù)據(jù)從傳統(tǒng)的數(shù)據(jù)存儲器到

數(shù)據(jù)倉庫的同步。同步結(jié)構(gòu)應(yīng)當(dāng)把重點放在轉(zhuǎn)換語言的標(biāo)準化、數(shù)據(jù)移動平臺、

通信策略和支持策略方面。數(shù)據(jù)倉庫與操作數(shù)據(jù)存儲器之間的同步過程能夠采取

不同的結(jié)構(gòu)。

除尋找自動化轉(zhuǎn)換操作的工具之外,還應(yīng)估計數(shù)據(jù)轉(zhuǎn)換的復(fù)雜性。大多數(shù)傳

統(tǒng)的數(shù)據(jù)存儲方法缺乏標(biāo)準,常常有些不規(guī)則的東西讓開發(fā)員摸不著頭腦。工具

正在不斷改進以有助于轉(zhuǎn)換過程的自動化,包括復(fù)雜問題,如掩匿的數(shù)據(jù)、傳統(tǒng)

標(biāo)準的缺乏及不統(tǒng)一的關(guān)鍵數(shù)據(jù)。

提取處理是數(shù)據(jù)倉庫成功的關(guān)鍵。在提取過程中,數(shù)據(jù)會被格式化,并分發(fā)給

需要從操作環(huán)境中共享數(shù)據(jù)的資源。元數(shù)據(jù)存儲的工作是定義和解釋數(shù)據(jù)資源和

數(shù)據(jù)標(biāo)準。因此,在操作數(shù)據(jù)上執(zhí)行的轉(zhuǎn)換過程應(yīng)該用元數(shù)據(jù)存儲中定義的標(biāo)準

數(shù)據(jù)格式放置數(shù)據(jù)。

我們可以定義數(shù)據(jù)變換的幾個基本類型,每一類都有自己的特點和表現(xiàn)形式:

□簡單變換

單變換是所有數(shù)據(jù)變換的基本構(gòu)成單元。這一類中包括的數(shù)據(jù)處理一次只

針對一個字段,而不是考慮相關(guān)字段的值。

□清潔和刷洗

目的是為了保證前后一致地格式化和使用某一字段或相關(guān)的字段群。

O集成

集成是將業(yè)務(wù)數(shù)據(jù)從一個或幾個來源中取出,并逐字段地將數(shù)據(jù)影射到數(shù)據(jù)

倉庫的新數(shù)據(jù)結(jié)構(gòu)上。

□聚集和概括

聚集和概括是把業(yè)務(wù)環(huán)境中找到的零星數(shù)據(jù)壓縮成數(shù)據(jù)倉庫環(huán)境中的較少數(shù)

據(jù)塊,有時進行聚集中的細節(jié)數(shù)據(jù)是為了避免倉庫存入業(yè)務(wù)環(huán)境中的那樣具體的

數(shù)據(jù),有時則是為了建立包括倉庫的聚集副本或概括副本的數(shù)據(jù)商場。

6.7簡單變換

顧名思義,它是數(shù)據(jù)變換中最簡單的形式,這些變換一次改變一個數(shù)據(jù)屬性而

不考慮該屬性的背景或與它相關(guān)的其他信息。

□數(shù)據(jù)類型轉(zhuǎn)換

最常見的簡單變換是轉(zhuǎn)換一個數(shù)據(jù)元的類型。當(dāng)現(xiàn)有應(yīng)用程序存儲某個類型的

數(shù)據(jù)只在該應(yīng)用程序的背景下有意義,在企業(yè)水平上卻沒有意義時,就常常要求

進行這類變換。

這類轉(zhuǎn)換可以通過編碼程序中的簡單程序邏輯完成,或者運用數(shù)據(jù)倉庫數(shù)據(jù)變

換工具完成。

□日期/時間格式的轉(zhuǎn)換

□因為大多數(shù)業(yè)務(wù)環(huán)境都有許多不同的日期和時間類型,所以幾乎每個數(shù)據(jù)

倉庫的實現(xiàn)都必須將日期和時間變換成標(biāo)準的倉庫格式。這可以通過手工

程序編碼來完成。它能把一個日期或時間字段拆成幾個子部分,然后再將

它們拼成想要的字段。然而市場上的大多數(shù)數(shù)據(jù)變換工具只提供了日期和

時間格式之間迅速進行簡單轉(zhuǎn)換的設(shè)施,而手工編碼上下的功夫要少得多。

□字段解碼

簡單地說,數(shù)據(jù)一般不應(yīng)該以編碼的格式放在數(shù)據(jù)倉庫中。我們在業(yè)務(wù)數(shù)據(jù)庫

中建立代碼是為了節(jié)省數(shù)據(jù)庫存儲空間。雖然人不理解這些代碼,但這并不是大

問題,因為我們與那些代碼的交互作用是由應(yīng)用程序管理的。這些程序在必要的

時候會成為我們破解那些值的代碼。

在數(shù)據(jù)倉庫環(huán)境中,情況就大不一樣了。因為擁護可能來自公司的任何部門,

所以倉庫的所有用戶不可能都有足夠的背景知識和培訓(xùn),使他們能夠理解在業(yè)務(wù)

數(shù)據(jù)庫中使用的編碼值。

因此,業(yè)務(wù)系統(tǒng)和外部數(shù)據(jù)中的編碼值在存入數(shù)據(jù)倉庫之前,應(yīng)該轉(zhuǎn)換為經(jīng)過

解碼的、易于理解的相應(yīng)值。一方面,我們想把編碼值充分擴展,使它們?yōu)樽畲?/p>

多數(shù)的用戶理解;另一方面,把一個值擴展得太多要占用額外的存儲空間,而且

把該值當(dāng)作查詢中的檢索標(biāo)準也很困難。由于顧客情況代碼不被普遍理解,所以

應(yīng)該擴展為一個有意義的、易于理解的值,以便倉庫用戶能夠認出它。用到的準

則是:必須長到足以被大多數(shù)倉庫用戶理解。

從技術(shù)角度看,字段解碼是個非常易于實現(xiàn)的過程,它可以很容易地結(jié)合到變

換程序中去,也可以在數(shù)據(jù)轉(zhuǎn)換工具中輕松地完成,然而,確定應(yīng)該進行多少解

碼工作是很難的。但一個好的解決方法往往提供了足夠的解碼,這樣即使普遍用

戶也可以理解字段值的含義,并且可以用全面理解數(shù)據(jù)元值及其用法的元數(shù)據(jù)加

深他的理解。

6.8清潔和刷洗

清潔和刷洗是兩個可互換的術(shù)語,指的是比簡單變換更復(fù)雜的一種數(shù)據(jù)變換。

在這種變換中,要檢查的是字段或字段組的實際內(nèi)容而不僅是存儲格式。一種清

潔是檢查數(shù)據(jù)字段中的有效值。這可以通過范圍檢驗、枚舉清單和相關(guān)檢驗來完

成。

□有效值

范圍檢驗是數(shù)據(jù)刷洗的最簡單形式,它是指檢驗一個字段中的數(shù)據(jù)以保證它落

在預(yù)期范圍之內(nèi),通常是數(shù)字范圍或日期范圍。

枚舉清單也相對容易實現(xiàn)。這種方法是對照數(shù)據(jù)字段可接受值的清單檢驗該字

段的值。

相關(guān)檢驗稍微復(fù)雜一些,因為它要求將一個字段中的值與另一個字段中的值進

行對比。

當(dāng)然,數(shù)據(jù)清潔規(guī)則往往是這些不同方法的結(jié)合。

□復(fù)雜的重新格式化

數(shù)據(jù)刷洗的另一主要類型是重新格式化某些類型的數(shù)據(jù),這種方法適用于可以

用許多不同方式存儲在不同數(shù)據(jù)來源中的信息,必須在數(shù)據(jù)倉庫中把這類信息轉(zhuǎn)

換成一種統(tǒng)一的表示方式。最需要格式化的信息之一是地址信息,由于沒有一種

獲取地址的標(biāo)準方式,所以同一個地址可以用許多不同方式表達出來。這就要求

將地址解析成幾個組成部分,然后將這些組成部分進行轉(zhuǎn)換并重新排列成一個同

意的格式。

6.9集成

要把從全然不同的數(shù)據(jù)源中得到的業(yè)務(wù)數(shù)據(jù)結(jié)合在一起,真正的困難在于將它

們集成為一個緊密結(jié)合的數(shù)據(jù)模型。這是因為數(shù)據(jù)必須從多個數(shù)據(jù)源中提取出

來,并結(jié)合成為一個新的實體。這些數(shù)據(jù)來源往往遵守的不是同一套業(yè)務(wù)規(guī)則,

在生成新數(shù)據(jù)時,必須考慮到這一差異。

□字段水平的簡單影射

字段水平的簡單映射在必須執(zhí)行的數(shù)據(jù)變換總量中站去了大部分。這種映射的

定義是指數(shù)據(jù)中的一個字段被轉(zhuǎn)移到目標(biāo)數(shù)據(jù)字段中的過程。在這過程中,這個

字段可以利用前面討論過的任何一種簡單變換進行變換,它可以被刷洗或重新格

式化。

□復(fù)雜集成

在一般的數(shù)據(jù)倉庫中,數(shù)據(jù)轉(zhuǎn)移和集成中的10%?20%要比從源字段到目標(biāo)字

段的簡單移動復(fù)雜一些。為了將源數(shù)據(jù)變換為目標(biāo)數(shù)據(jù),這些復(fù)雜集成必須做更

多的分析。

□通用標(biāo)識符問題

通用標(biāo)識符問題是許多公司在建立數(shù)據(jù)倉庫時所遇到的最困難的集成問題之

-0當(dāng)同一業(yè)務(wù)實體存在于多個系統(tǒng)源,并且沒有明確的辦法確認這些實體其實

是同一實體的時候,往往會發(fā)生這個問題。

這個問題往往很難用自動化方法解決,通常要求復(fù)雜的算法配對可能的匹配。

有時在倉庫中存入可能的匹配是可以接受的,但有時這些匹配在存入數(shù)據(jù)倉庫之

前必須先由人來檢驗。很多公司實行一種兩階段戰(zhàn)略來處理該問題。第一階段是

隔離,在這一階段中,我們試圖保證實體的每次出現(xiàn)都指派一個唯一標(biāo)識符;第

二階段是調(diào)和,我們開始確認哪些實體其實是相同的,并且將該實體的各次出現(xiàn)

合并在一起。

□目標(biāo)元素的多個來源

當(dāng)同一個目標(biāo)數(shù)據(jù)元有多個來源時,會出現(xiàn)另一個復(fù)雜的數(shù)據(jù)集成問題,即很

難保證該元素的各個來源總能保持一致。實際上,這樣的數(shù)據(jù)元存在矛盾值比不

同來源中的值相同更為普遍。解決沖突的簡單辦法是指定某一系統(tǒng)在沖突中占據(jù)

主導(dǎo)地位。

□數(shù)據(jù)丟失問題

數(shù)值沒有值的問題與一個數(shù)據(jù)元有多個沖突值的問題一樣困難。有時為一個丟

失的元素把空白或空值賦進倉庫中也是可以接受的,而有時數(shù)據(jù)元必須有值,對

該表格所做的查詢才會有效。必須為該數(shù)據(jù)賦一些估計值。如果是業(yè)務(wù)系統(tǒng),數(shù)

據(jù)庫中有這種明知不準確的值是沒有意義的,但對數(shù)據(jù)倉庫來說,有估計值比根

本沒有值可能要好得多。因此,對于倉庫中的每種數(shù)據(jù)類型,設(shè)計人員必須在存

入估計數(shù)據(jù)的內(nèi)在風(fēng)險和數(shù)據(jù)丟失所造成的誤解的風(fēng)險之間進行權(quán)衡。

用于這一目的最普遍技術(shù)是生成使曲線平滑的數(shù)據(jù)。然而,很多企業(yè)都有非常

復(fù)雜的數(shù)據(jù)估計方法。這些方法能夠調(diào)節(jié)許多變量,為丟失的數(shù)據(jù)生成一個非常

接近實際的值。

□衍生數(shù)據(jù)/計算數(shù)據(jù)

數(shù)據(jù)變換的最常見形式之一就是計算和生成衍生數(shù)據(jù)元或計算數(shù)據(jù)元。它包括

平均值、總和或統(tǒng)計計算,還包括復(fù)雜的業(yè)務(wù)計算。衍生數(shù)據(jù)字段通常是冗余的,

因為計算中涉及的數(shù)據(jù)也存儲在倉庫中,然而,它能大大簡化查詢,保證存入倉

庫中的這些衍生值的正確性和一致性,這樣,在查詢中可以選用它們,而不必在

用戶需要時都計算一次。在這方面,數(shù)據(jù)變換工具是很有用的,因為這些工具能

迅速而輕松地進行各種計算,無需擔(dān)心編程員是否正確地編寫了計算邏輯。

6.10聚集和概括

大多數(shù)數(shù)據(jù)倉庫都要用到數(shù)據(jù)的某種聚集和概括。這通常有助于將某一實體的

實例數(shù)目減少到易于駕馭的水平,也有助于預(yù)先計算出廣泛應(yīng)用的概括數(shù)字,以

使每個查詢不必計算它們。概括是指按照一個或幾個業(yè)務(wù)維將相近的數(shù)值加在一

起。聚集指將不同業(yè)務(wù)元素加在一起或為一個公共總數(shù)。在數(shù)據(jù)倉庫中它們是以

相同的方式進行的。

數(shù)據(jù)倉庫中存放的最具體的數(shù)據(jù)不與業(yè)務(wù)系統(tǒng)中存放的細節(jié)數(shù)據(jù)一樣聚集。這

時,就有必要在變換業(yè)務(wù)數(shù)據(jù)的過程中加入一些數(shù)據(jù)聚集功能。這可以減少存儲

在數(shù)據(jù)倉庫中的行數(shù)。

聚集還可以去除數(shù)據(jù)倉庫中的過時細節(jié)。在許多情況下,數(shù)據(jù)在一定時期內(nèi)要

以很具體的水平存放著,一旦數(shù)據(jù)到了某一時限,對所有這些細節(jié)的需求就大大

減弱了。此時,這些非常具體的數(shù)據(jù)應(yīng)該傳送到離線存儲器或近線存儲器中,而

數(shù)據(jù)的概括形式則可以存放在數(shù)據(jù)倉庫中。

目前可以得到的數(shù)據(jù)刷洗工具中,許多都已內(nèi)置了概括功能,尤其是在時間維

上進行聚集的功能。當(dāng)然,不管如何做到這一點,重要的是用戶能夠輕松地訪問

元數(shù)據(jù),了解生成總和數(shù)據(jù)所用的標(biāo)準。

6.11移動數(shù)據(jù)

將數(shù)據(jù)移出操作系統(tǒng)一般包括:在數(shù)據(jù)最終復(fù)制到數(shù)據(jù)倉庫之前,將它們

拷貝到一個中間位置。理想狀況下,拷貝數(shù)據(jù)的過程應(yīng)該在操作系統(tǒng)不忙時進行。

確保了解自己的商務(wù)及其支持系統(tǒng)。如果還未完成大量的更新,就不應(yīng)該移動數(shù)

據(jù)。如果數(shù)據(jù)倉庫中的數(shù)據(jù)來自多個相互關(guān)聯(lián)的操作系統(tǒng),就應(yīng)該保證在這些系

統(tǒng)同步工作時移動數(shù)據(jù)。

廣義的數(shù)據(jù)準備,覆蓋面很廣泛,包含了從數(shù)據(jù)源抽取數(shù)據(jù),一直到最終數(shù)

據(jù)呈現(xiàn)在用戶面前之間的所有工作,這其中的最主要的工作就是數(shù)據(jù)的抽取、轉(zhuǎn)

換、清洗、裝載等一系列工作。在最初的數(shù)據(jù)倉庫實現(xiàn)之前所有的這些工作都是

用程序手工實現(xiàn)的。這樣就造成了一個非常嚴重的問題,就是數(shù)據(jù)倉庫的持續(xù)發(fā)

展問題,因為利用程序?qū)崿F(xiàn)每一個數(shù)據(jù)抽取過程,導(dǎo)致所有的數(shù)據(jù)邏輯都隱藏在

程序內(nèi)部,當(dāng)數(shù)據(jù)倉庫進一步發(fā)展時,這些程序的管理和修改,將成為阻礙數(shù)據(jù)

倉庫發(fā)展的最大的障礙。

經(jīng)過一段時間的發(fā)展,人們最終認識到ETL工具的重要性,于是相關(guān)的ETL

工具也紛紛出臺,其中比較著名的是IBM的Visualwarehouse,Ardent公司的

datastage等等。如何判斷一個ETL工具的優(yōu)略呢,一般而言,主要有一下幾個

因素:

1OPENdatasource就是說這種工具必須從

Thetoolsmustextractdatafrommostkindof很多不同的數(shù)據(jù)源抽取

datasourceuse數(shù)據(jù),并盡可能地使用數(shù)

NativedatabaseDriver據(jù)源本身提供的驅(qū)動程

序來提高使用效率

2OPENtargetDatabase要支持不同的數(shù)據(jù)庫作

TheToolsmustcanUsemostdatabaselike為數(shù)據(jù)倉庫的載體

(DB2,ORACLE.ETC.)asTargetdatabase.

3Schedulejob可以定時進行數(shù)據(jù)的更

新的整理

4HighPerformance較高的工作效率

5Metadatamanagement完善的元數(shù)據(jù)管理,可以

對整個ETL過程中產(chǎn)生

的元數(shù)據(jù)進行管理

6Parallelsupport支持并行數(shù)據(jù)抽取

7VisualizeUI可視化的工作界面

8Customdefineprogram可以支持用戶自定義的

程序做一些普通SQL語

句無法完成的工作

9Security支持多用戶和多用戶組

Supportmultiuserandusergroup的工作方式

10Incrementdataextractsupport可以實現(xiàn)數(shù)據(jù)的增量抽

11UsesubjecttomanageETLJob用戶可以對所有進程按

照主題進行管理

12EnableComplexcleansingandtransform支持復(fù)雜的數(shù)據(jù)清洗工

AutomaticgenerateSQL,CustomSQL作,自動生成SQL語句,

support用戶自定義SQL

13SupportMDDdataload可以支持多維數(shù)據(jù)庫的

數(shù)據(jù)加載

14SupportTBdataextractandload可以支持TB級別的數(shù)據(jù)

加載

15Datamodelexportandimport現(xiàn)有設(shè)置可以進行

Export和import

七、如何建立數(shù)據(jù)倉庫

數(shù)據(jù)倉庫的實現(xiàn)主要以關(guān)系數(shù)據(jù)庫(RDB)技術(shù)為基礎(chǔ),因為關(guān)系數(shù)據(jù)庫的

數(shù)據(jù)存儲和管理技術(shù)發(fā)展得較為成熟,其成本和復(fù)雜性較低,已開發(fā)成功的大

型事務(wù)數(shù)據(jù)庫多為關(guān)系數(shù)據(jù)庫,但關(guān)系數(shù)據(jù)庫系統(tǒng)并不能滿足數(shù)據(jù)倉庫的數(shù)據(jù)

存儲要求,需要通過使用一些技術(shù),如動態(tài)分區(qū)、位圖索引、優(yōu)化查詢等,使

關(guān)系數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)倉庫應(yīng)用環(huán)境中的性能得到大幅度的提高。

數(shù)據(jù)倉庫在構(gòu)建之初應(yīng)明確其主題,主題是一個在較高層次將數(shù)據(jù)歸類的標(biāo)

準,每一個主題對應(yīng)一個宏觀的分析領(lǐng)域,針對具體決策需求可細化為多個主

題表,具體來說就是確定決策涉及的范圍和所要解決的問題。但是主

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論