版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
可修改歡送下載精品Word可修改歡送下載精品Word可修改歡送下載精品WordOracle9iWarehouseBuilder培訓(xùn)資料
目錄TOC\o"1-3"\h\z簡(jiǎn)介 4提綱 4前提 5培訓(xùn)目標(biāo) 5反應(yīng)與意見 5Module1:在WarehouseBuilder中設(shè)置環(huán)境 6開始 6環(huán)境 6Module2創(chuàng)立數(shù)據(jù)源 8導(dǎo)入數(shù)據(jù)源元數(shù)據(jù) 8Module3設(shè)計(jì)數(shù)據(jù)倉庫 11創(chuàng)立分段傳輸區(qū)〔StagingArea〕 11創(chuàng)立數(shù)據(jù)倉庫模型 14Module4:建立映射及轉(zhuǎn)換 20創(chuàng)立PL/SQLFunction 20導(dǎo)入一個(gè)已經(jīng)存在的過程〔Procedure〕 20創(chuàng)立映射裝載數(shù)據(jù) 20Module5:配置,部署及運(yùn)行 29環(huán)境 29配置 29部署對(duì)象 32運(yùn)行數(shù)據(jù)裝載 33Module6:生命周期管理 35將數(shù)據(jù)源元數(shù)據(jù)的變化反映到OWB存儲(chǔ)中 35對(duì)于目標(biāo)的變化管理 36Module7:元數(shù)據(jù)報(bào)告 38從WarehouseBuilder客戶端看 38
簡(jiǎn)介Oracle9iWarehouseBuilder(OWB)是Oracle完整智能解決方案中的一局部。其作用主要是完成數(shù)據(jù)倉庫的設(shè)計(jì)及抽取、轉(zhuǎn)換、裝載設(shè)計(jì)(Extract,TransformandLoadETL)與生成??梢栽O(shè)計(jì)OracleDiscoverer的EndUserLayer并與Oracle9i數(shù)據(jù)庫緊密集成。提綱本資料的目標(biāo)是例示OWB的功能,因此中間沒有什么重復(fù)工作,在某些方面較為簡(jiǎn)潔。另外,本資料沒有論述如何建立數(shù)據(jù)倉庫的模型及如何進(jìn)行性能優(yōu)化,該局部?jī)?nèi)容請(qǐng)參考相關(guān)Oracle資料。本資料分為以下幾個(gè)局部,每一個(gè)針對(duì)OWB的一特定領(lǐng)域。Module1:建立環(huán)境
該模塊描述如何建立環(huán)境。也給出了一些源數(shù)據(jù)的詳細(xì)數(shù)據(jù)結(jié)構(gòu)。
Module2:建立數(shù)據(jù)源
該模塊讓用戶建立基于9i數(shù)據(jù)庫種子對(duì)象得源數(shù)據(jù)模塊。該步驟僅是整個(gè)解決方案中的第一步。在后面的階段,我們將回頭來改變數(shù)據(jù)源對(duì)象,以舉例顯示生命周期管理。
Module3:設(shè)計(jì)數(shù)據(jù)倉庫
該模塊顯示W(wǎng)arehouseBuilder創(chuàng)立表、視圖、方案的一些特征。在此局部我們將練習(xí)創(chuàng)立事實(shí)表及維。完成這些工作后,就能將數(shù)據(jù)載入這些結(jié)構(gòu)中定下數(shù)據(jù)倉庫。
Module4:設(shè)計(jì)映射與轉(zhuǎn)換模型
OWB的核心功能是基于ETL過程,轉(zhuǎn)換及進(jìn)行它們的設(shè)計(jì)。本模塊將展示如何利用OWB映射設(shè)計(jì)工具完成這些過程的設(shè)計(jì)。將充分利用前面在OWB中定義好的數(shù)據(jù)源與數(shù)據(jù)目標(biāo),允許客戶化PL/SQL開發(fā)輔助數(shù)據(jù)轉(zhuǎn)換。也將看到如何重用PL/SQL。Module5:配置,部署,運(yùn)行
在設(shè)計(jì)完數(shù)據(jù)倉庫后,下一步當(dāng)然就是在數(shù)據(jù)庫中安裝它,并載入數(shù)據(jù)。本模塊將展示如何配置在前面中創(chuàng)立的模塊,并運(yùn)行映射,載入數(shù)據(jù)。
Module6:生命周期管理
數(shù)據(jù)倉庫是一個(gè)一直在進(jìn)化的系統(tǒng)。為了處理數(shù)據(jù)源及數(shù)據(jù)目標(biāo)的變化,OWB提供了用戶數(shù)據(jù)源協(xié)調(diào)及數(shù)據(jù)倉庫升級(jí)的手段。本局部將展示這些內(nèi)容。
Module7:元數(shù)據(jù)報(bào)告
本模塊是可選做的一局部,因?yàn)楸仨毎惭bOracle9iAS并正確配置。元數(shù)據(jù)報(bào)告模塊將展示OWBBrowser的能力。該瀏覽器可以進(jìn)行線性分析、影響分析及更多的報(bào)表。前提為完本錢培訓(xùn),必須滿足以下幾點(diǎn)前提:安裝Oracle9i數(shù)據(jù)庫安裝WarehouseBuilder及存儲(chǔ)庫有足夠的權(quán)限以授予權(quán)限,創(chuàng)立用戶,安裝運(yùn)行時(shí),如果需要的話,還安裝Browser企業(yè)管理器并設(shè)置,以能從OEM中調(diào)度jobOracleWorkflowset安裝并設(shè)置以能創(chuàng)立工作流安裝9iAS及Portal,如果練習(xí)元數(shù)據(jù)報(bào)告的話有一定的WarehouseBuilder根本概念知識(shí)有一定的Oracle9i數(shù)據(jù)庫概念有一定的Oracle9iETL概念有一定的SQL及PL/SQL知識(shí),才能在你自己的環(huán)境下寫出客戶化的代碼培訓(xùn)目標(biāo)本培訓(xùn)的幾個(gè)目標(biāo)是:對(duì)WarehouseBuilder的能力有一個(gè)綜合認(rèn)識(shí)利用WarehouseBuilder進(jìn)行一個(gè)完整的設(shè)計(jì)、部署及運(yùn)行周期反應(yīng)與意見假設(shè)對(duì)本培訓(xùn)資料有何意見,請(qǐng)將意見反應(yīng)給我們,以便我們改良和提高。請(qǐng)聯(lián)系:閔文杰技術(shù)咨詢參謀
Module1:在WarehouseBuilder中設(shè)置環(huán)境為開始始用WarehouseBuilder,我們首先必須創(chuàng)立一個(gè)工程〔project〕.我們?nèi)」こ堂鸛WEEK。開始將Xweek.zip文件移動(dòng)到本地硬盤并解壓。假設(shè)在C盤上,你也可以放在其他磁盤上,解壓完后,將有如下目錄:C– Xweek– SourceFiles SQLScripts建好這些目錄后,開始進(jìn)入WarehouseBuilder。登陸到WarehouseBuilder,并進(jìn)入管理局部??梢匀缦?種方式實(shí)現(xiàn)。輸入用戶名及口令后,在“選擇要翻開得工程〞處,點(diǎn)擊“取消〞,就進(jìn)入管理局部。輸入用戶名及口令后,在“選擇要翻開得工程〞處,隨便選一個(gè)工程翻開,然后使用控制臺(tái)點(diǎn)擊“管理〞按鈕進(jìn)行切換,就進(jìn)入管理局部。在管理局部:高亮度“工程〞然后點(diǎn)鼠標(biāo)右鍵,選擇“創(chuàng)立工程〞。
(或者到管理菜單中選擇“創(chuàng)立工程〞)給出一個(gè)名字,如“Xweek〞選擇工程版本標(biāo)簽號(hào)(例如Xweek)點(diǎn)擊完成按鈕提交切換工程到新工程?,F(xiàn)在就在該工程下開始工作。環(huán)境整個(gè)培訓(xùn)都是基于Oracle9i中生成的用戶對(duì)象。以下為包括這些表的對(duì)象列表。OrderEntry用戶名: OE口令: OE(default)表名CUSTOMERSINVENTORIESORDERSORDER_ITEMSPRODUCT_DESCRIPTIONSPRODUCT_INFORMATIONPRODUCT_REF_LIST_NESTEDTABSUBCATEGORY_REF_LIST_NESTEDTABWAREHOUSESHumanResources用戶名: HR口令: HR(default)TABLE_NAMECOUNTRIESDEPARTMENTSEMPLOYEESJOBSJOB_HISTORYLOCATIONSREGIONSCustomerAddresses顧客地址存儲(chǔ)在以逗號(hào)分割的平面文件中。文件名為Customer_address.txt,存儲(chǔ)在文件夾\Xweek\SourceFiles中。驅(qū)動(dòng)器為你解壓zip文件的驅(qū)動(dòng)器。文件格式:CustomerID,Streetnameandnumber,Zip/postalCode,CityName,State/ProvinceCode,CountryCode例子:101,514WSuperiorSt,46901,Kokomo102,2515BloydAve,46218,Indianapolis,103,8768NStateRd37,47404,Bloomington,104,6445BayHarborLn,46254,Indianapolis,105,4019W3RdSt,47404,Bloomington,106,1608PortageAve,46616,SouthBend852,1539StripesRd,3413,Baden-Daettwil,AG,CH853,1540StripesCrt,3413,Baden-Daettwil,AG,CH905,1592SilveradoSt,361123,Bangalore,Kar,906,1593SilveradoSt,361112,Bangalore,Kar,
Module2創(chuàng)立數(shù)據(jù)源導(dǎo)入數(shù)據(jù)源元數(shù)據(jù)在本培訓(xùn)的第一局部,主要講述定義數(shù)據(jù)源對(duì)象的結(jié)構(gòu)。定義數(shù)據(jù)源對(duì)象的結(jié)構(gòu)包括如下行為:定義和創(chuàng)立針對(duì)平面文件的數(shù)據(jù)源模塊 定義和創(chuàng)立針對(duì)關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)源模塊從數(shù)據(jù)源對(duì)象導(dǎo)入元數(shù)據(jù)到數(shù)據(jù)源模塊在下面的段落中,將定義企業(yè)數(shù)據(jù)倉庫和隨之產(chǎn)生的數(shù)據(jù)集市的結(jié)構(gòu)。創(chuàng)立模塊,導(dǎo)入平面文件
本練習(xí)中,將創(chuàng)立平面文件模塊,然后導(dǎo)入customers文件。將包括連接到后面customers表的地址列。在工程樹中創(chuàng)立新模塊,命名為SourceFiles選擇GenericFileBasedApplication類型選中“繼續(xù)導(dǎo)入元數(shù)據(jù)向?qū)Ж暀谠谙驅(qū)е羞x擇文件customer_address.txt抽樣對(duì)各列重新命名如下:
C1Customer_IDC2StreetC3PostalCodeC4CityC5StateCodeC6CountryCode其他3個(gè)文件命名如下:CusSource1Customer1.txtC1FnameC2LnameC3MiddinitialC4PhonehomeC5Address1C6Address2C7CityC8StateC9ZipC10PhonebC11Cellphone Order_status_list.txtC1Status_CodeC2Status_DescSuppliers_list.txtC1Supplier_IDC2Supplier_nameC3Status完成該向?qū)Р⑻峤辉獢?shù)據(jù)。創(chuàng)立OrderEntry模塊并導(dǎo)入表在工程樹中,創(chuàng)立新模塊,命名Oracle_OE。選擇GenericOracleDatabaseApplication作為模塊類型,Oracle8i/9i為數(shù)據(jù)庫版本。使用OracleDataDictionary并創(chuàng)立數(shù)據(jù)庫鏈路(點(diǎn)擊創(chuàng)立新數(shù)據(jù)庫鏈路按鈕)名字: OELink輸入hostname,portandSID:本例中為localhost,1521,orcl用戶名,口令(OE/OE)點(diǎn)擊創(chuàng)立并測(cè)試選中“繼續(xù)導(dǎo)入元數(shù)據(jù)向?qū)Ж曔x擇全部對(duì)象導(dǎo)入完成導(dǎo)入。提交元數(shù)據(jù)。創(chuàng)立HumanResources模塊并導(dǎo)入表在工程樹中,創(chuàng)立新模塊,命名Oracle_HR。選擇GenericOracleDatabaseApplication作為模塊類型,Oracle8i/9i為數(shù)據(jù)庫版本。使用OracleDataDictionary并創(chuàng)立數(shù)據(jù)庫鏈路(點(diǎn)擊創(chuàng)立新數(shù)據(jù)庫鏈路按鈕)名字: HRLink輸入hostname,portandSID:本例中為localhost,1521,orcl用戶名,口令(HR/HR)點(diǎn)擊創(chuàng)立并測(cè)試選中“繼續(xù)導(dǎo)入元數(shù)據(jù)向?qū)Ж曔x擇全部對(duì)象導(dǎo)入完成導(dǎo)入。提交元數(shù)據(jù)上面導(dǎo)入了數(shù)據(jù)源元數(shù)據(jù),基于這些數(shù)據(jù)源,我們將創(chuàng)立數(shù)據(jù)倉庫對(duì)象并從這些表中抽取數(shù)據(jù)。
Module3設(shè)計(jì)數(shù)據(jù)倉庫數(shù)據(jù)倉庫設(shè)計(jì)包括一個(gè)數(shù)據(jù)倉庫方案〔即用戶〕及一個(gè)中間區(qū),用于分段傳輸〔staging〕信息。創(chuàng)立分段傳輸區(qū)〔StagingArea〕一個(gè)分段傳輸區(qū)是存放臨時(shí)數(shù)據(jù)的地方以用于進(jìn)一步處理。使用Oracle9iETL新的特性,例如外部表〔ExternalTables〕,該區(qū)變得多余了。本練習(xí)示范老代碼的使用(e.g.使用SQL*Loader裝載數(shù)據(jù))及使用外部表〔ExternalTables〕的新的方式。建議兩個(gè)練習(xí)都做,因?yàn)閃arehouseBuilder也支持Oracle8.1.7數(shù)據(jù)庫目標(biāo)〔現(xiàn)在有許多這種應(yīng)用〕。創(chuàng)立模塊及數(shù)據(jù)對(duì)象Stagingarea包括許多由用戶創(chuàng)立的表。下述步驟創(chuàng)立staging模塊、表及映射:創(chuàng)立模塊,命名為Staging選擇數(shù)據(jù)倉庫目標(biāo)類型,其他默認(rèn)。提交該元數(shù)據(jù)。翻開剛創(chuàng)立的模塊。創(chuàng)立新的映射(命名為stg_customer_address_map)并最大化編輯器。拖取映射平面文件圖標(biāo)到畫布上,從列表中選擇customer_address_txt文件。拖取“映射表〞圖標(biāo)到畫布上,選擇第一項(xiàng)“創(chuàng)立未綁定的映射表〔不具有屬性〕〞對(duì)話框。輸入該新映射表的名字(stg_cust_addresses)使用自動(dòng)映射映射整個(gè)平面文件到stg_cust_addresses(選擇缺省項(xiàng)后點(diǎn)擊開始)確認(rèn)列的數(shù)據(jù)類型是正確的。(請(qǐng)使用varchar2代替char類型)為了在存儲(chǔ)中建立該表,在對(duì)象stg_cust_addresses的頭上點(diǎn)擊右鍵,選擇協(xié)調(diào)出站〔reconcileoutbound〕在警告對(duì)話框上點(diǎn)擊“確定〞。選擇第一項(xiàng),“創(chuàng)立新的表〞并選擇Staging,其為唯一的缺省值選項(xiàng)。關(guān)閉該映射并提交元數(shù)據(jù)。此時(shí)在存儲(chǔ)庫中即有了新的表和新的映射,對(duì)兩者進(jìn)行校驗(yàn)。后面我們將回到該映射并運(yùn)行它。到此為止,該映射就完成了。其他Staging表和映射此處不再枚舉。除上面的方法外,我們也可以使用創(chuàng)立表的向?qū)?chuàng)立新表,然后逐一輸入列名。另外一種創(chuàng)立對(duì)象stg_cust_addresses的方法是是適用外部表〔ExternalTable〕功能。實(shí)現(xiàn)該方式如下所示:LogintoSQL*PlusasSYSDBA,以便于建立新用戶創(chuàng)立用戶名:Wh_Xweek及口令(Wh_Xweek)授予用戶DBA權(quán)限(此處為簡(jiǎn)便使用,在現(xiàn)實(shí)世界中應(yīng)謹(jǐn)慎使用)從OE用戶,將orders表select權(quán)限授予給Wh_Xweek用戶(grantselectonorderstowh_xweek;)連接到該用戶從平面文件customer_address.txt創(chuàng)立外部表。在數(shù)據(jù)庫中創(chuàng)立目錄
Createdirectoryxweek_filesas‘c:\xweek\sourcefiles’;
創(chuàng)立外部表定義
CREATETABLEstg_cust_addresses_ext(CUSTOMER_IDNUMBER,STREETVARCHAR2(27),POSTALCODENUMBER,CITYVARCHAR2(16),STATECODEVARCHAR2(4),COUNTRYCODEVARCHAR2(2))ORGANIZATIONEXTERNAL(TYPEoracle_loaderDEFAULTDIRECTORYxweek_filesLOCATION('customer_address.txt'))REJECTLIMITUNLIMITED;在WarehouseBuilder中導(dǎo)入該表。此時(shí),在WarehouseBuilder中有了2個(gè)顧客地址表,一個(gè)用于staging表,用于SQL*Loader裝載數(shù)據(jù),另外一個(gè)是利用外部表來訪問。兩者都在后面映射中使用。提交元數(shù)據(jù)。我們?cè)趕taging區(qū)創(chuàng)立一個(gè)視圖用于轉(zhuǎn)換時(shí)間標(biāo)記列為常規(guī)日期。在Staging模塊中創(chuàng)立新視圖。命名該視圖為stg_orders并添加適當(dāng)列,如下:
設(shè)定查詢,并確認(rèn)列的順序如上所述。selectorder_id,to_date(to_char(order_date,'DD-MON-YYYYHH24:MI:SS'),'DD-MON-YYYYHH24:MI:SS')order_date,order_mode,customer_id,caseorder_statuswhen0then'ENT'when1then'VER'when2then'BKD'when3then'BIL'when4then'SPD'when5then'HOL'when6then'CCK'when7then'DMG'when8then'RET'when9then'INV'when10then'CAN'else'NON'end,order_total,sales_rep_id,promotion_idfromoe.orders提交元數(shù)據(jù)。第3個(gè)對(duì)象是基于平面文件,用于未來維的源數(shù)據(jù)表??梢允褂们懊嫠鰏tg_cust_addresses中兩種機(jī)制中的任一種方式創(chuàng)立。在模塊staging中創(chuàng)立一個(gè)表,用于存儲(chǔ)從文件“Order_status_list.txt〞中的信息,命名為stg_order_status,命名映射為stg_ord_stat_map〔如果采用該種方式創(chuàng)立〕。列名
Status_Code
Status_Desc
確認(rèn)表中列的數(shù)據(jù)類型正確。(將Char改為Varchar2)提交元數(shù)據(jù)。第四個(gè)對(duì)象也用于未來維的源數(shù)據(jù)表??梢允褂们懊嫠鰏tg_cust_addresses中兩種機(jī)制中的任一種方式創(chuàng)立。在模塊staging中創(chuàng)立一個(gè)表,用于存儲(chǔ)從文件“Suppliers_list.txt〞中的信息,命名為stg_suppliers,命名映射為stg_suppliers_map〔如果采用該種方式創(chuàng)立〕。列名取名為:
supplier_ID
Supplier_Name
Status
確認(rèn)表中列的數(shù)據(jù)類型正確。(將Char改為Varchar2)提交元數(shù)據(jù)。創(chuàng)立數(shù)據(jù)倉庫模型在本局部,我們主要討論定義目標(biāo)數(shù)據(jù)倉庫對(duì)象結(jié)構(gòu)。該數(shù)據(jù)倉庫是簡(jiǎn)單的星型模型,數(shù)據(jù)來源于用戶OE,HR及Staging模塊。主要關(guān)心的是Order及Inventory信息。該星型模型不保存詳細(xì)訂單信息,也就意味著訂單詳細(xì)在本數(shù)據(jù)倉庫中沒有。簡(jiǎn)化有時(shí)是一種商業(yè)分析的需要。事實(shí)表〔Facttables〕orders的事實(shí)表(name:Orders)收集有關(guān)定單的信息。包含以下度量〔measures〕:Quantity NumberAmount Number該事實(shí)表的相關(guān)維為:ProductsTimes(useSmartKeyPKondaylevel)CustomersSalesRepsOrderStatusInventory事實(shí)表(name:Inventory)保存有關(guān)產(chǎn)品庫存的信息,包含以下度量〔measures〕:Quantity_on_Hand該事實(shí)表的相關(guān)維為(全部都是最低層次level與缺省值):ProductsTime(useSmartKeyPKondaylevel)WarehousesSuppliers維〔Dimensions〕從事實(shí)表看出,數(shù)據(jù)倉庫中需要建立7個(gè)維表。為簡(jiǎn)便起見,各層次在屬性上比擬緊湊。以下描述了各維的詳細(xì)信息:*標(biāo)有星號(hào)的屬性為關(guān)鍵域,缺省被命名為‘ID’。將其改名為如下所示。維表名維前綴ProductsPDLevelNameLevelPrefixCategoryCTProductPRLevelNameAttributeDatatype/LengthCategory*Prod_CategoryNumberProd_Cat_NameVarchar2(50)Prod_Cat_DescVarchar2(1000)Product*Prod_IDNumberProd_NameVarchar2(125)Prod_DescVarchar2(2000)Prod_List_PriceNumber(precision8,scale2)Prod_Min_PriceNumber(precision8,scale2)HierarchyNameHierarchyPrefixProd_RollupProd_RollupHierarchyNameLevelsProd_RollupCategoryProduct維表名維前綴Order_StatusOSLevelNameLevelPrefixStatusSTLevelNameAttributeDatatype/LengthStatus*Status_IDNumberStatus_CodeVarchar2(3)Status_DescVarchar2(15)HierarchyNameHierarchyPrefixStat_RollupStat_RollupHierarchyNameLevelsStat_RollupStatus維表名維前綴WarehousesWHLevelNameLevelPrefixWarehouseWHLocationLNCountryCTLevelNameAttributeDatatype/LengthCountry*Country_IDVarchar2(2)CountryVarchar2(50)Location*Location_IDNumberStreetVarchar2(40)Postal_codeVarchar2(12)CityVarchar2(40)State_ProvinceVarchar2(30)Warehouse*WH_IDNumberWarehouseVarchar2(50)HierarchyNameHierarchyPrefixWH_RollupWH_RollupHierarchyNameLevelsWH_RollupCountryLocationWarehouse維表名維前綴CustomersCSLevelNameLevelPrefixCountryCTCustomerCSLevelNameAttributeDatatype/LengthCountry*Country_IDVarchar2(2)CountryVarchar2(50)Customer*Cust_IDNumberCust_First_NameVarchar2(40)Cust_Last_NameVarchar2(40)StreetVarchar2(40)Postal_codeVarchar2(12)CityVarchar2(40)State_ProvinceVarchar2(30)Account_MgrVarchar2(25)HierarchyNameHierarchyPrefixCust_RollupCust_RollupHierarchyNameLevelsCust_RollupCountryCustomer維表名維前綴Sales_RepsSRLevelNameLevelPrefixSales_RepSRCountryCTRegionRGLevelNameAttributeDatatype/LengthCountry*Country_IDVarchar2(2)CountryVarchar2(50)Region*Region_IDNumberRegionVarchar2(40)Sales_Rep*SalesRep_IDNumberFirst_NameVarchar2(50)Last_NameVarchar2(50)ManagerVarchar2(50)DepartmentVarchar2(50)HierarchyNameHierarchyPrefixSalesRep_RollupSalesRep_RollupHierarchyNameLevelsSalesRep_RollupRegionCountrySales_Rep維表名維前綴SuppliersSPLevelNameLevelPrefixSupplierSPLevelNameAttributeDatatype/LengthSupplier*Supplier_IDNumberSupplier_NameVarchar2(35)Supplier_StatusVarchar2(10)HierarchyNameHierarchyPrefixSupp_RollupSupp_RollupHierarchyNameLevelsSupp_RollupSuppliers最后需要?jiǎng)?chuàng)立的維是時(shí)間維。使用WarehouseBuilder向?qū)?chuàng)立,最低級(jí)別為Day,可以選擇你希望看到得時(shí)間維,如季、月。所有命名都是標(biāo)準(zhǔn)的。可以在時(shí)間維上創(chuàng)立多種層次。創(chuàng)立維表與事實(shí)表為了輸入上面提到的信息,需要首先創(chuàng)立一個(gè)新的模塊,命名為Warehouse。翻開該模塊并:在維節(jié)點(diǎn),選擇創(chuàng)立維,然后利用向?qū)?chuàng)立維。在創(chuàng)立完每一個(gè)維后,進(jìn)行提交作為創(chuàng)立維的最后一步,記得用向?qū)?chuàng)立一個(gè)時(shí)間維。同樣也要提交。創(chuàng)立兩個(gè)事實(shí)表,在事實(shí)表節(jié)點(diǎn),利用向?qū)?chuàng)立記住要在維的最低層次上進(jìn)行鏈接將外鍵重命名為描述性的名字(也可直接用默認(rèn)值)選中從外關(guān)鍵字創(chuàng)立分段的唯一關(guān)鍵字。提交至此就完成了數(shù)據(jù)源、分段傳輸區(qū)及目標(biāo)數(shù)據(jù)倉庫的工作。下一步我們將創(chuàng)立映射以完成數(shù)據(jù)從數(shù)據(jù)源到數(shù)據(jù)倉庫的工作。
Module4:建立映射及轉(zhuǎn)換WarehouseBuilder允許在存儲(chǔ)庫中創(chuàng)立、導(dǎo)入及維護(hù)PL/SQL。本模塊將展示如何做并在映射中利用它。映射將在本模塊的后半局部練習(xí)。創(chuàng)立PL/SQLFunction為了創(chuàng)立一個(gè)函數(shù)〔function〕,在Warehouse模塊中,翻開轉(zhuǎn)換庫,點(diǎn)鼠標(biāo)右鍵創(chuàng)立一個(gè)新的function命名為GET_TIME_ID不要設(shè)定輸入?yún)?shù),點(diǎn)擊。在窗口中輸入如下代碼,局部?jī)?nèi)容已按照格式給出,粗體局部為添加進(jìn)去的。:
--initializevariablesherev_returnnumber;--mainbodyBEGINselectda_idintov_returnfromTIMESwheretimes.da_actual_date=sysdate;RETURNv_return;END;
保存,提交。導(dǎo)入一個(gè)已經(jīng)存在的過程〔Procedure〕為了在WarehouseBuilder中重用已經(jīng)存在的PL/SQL代碼,進(jìn)入需要使用存儲(chǔ)過程的模塊中選擇導(dǎo)入,本例中,導(dǎo)入Warehouse模塊創(chuàng)立一個(gè)指向HR的新的數(shù)據(jù)庫鏈路以導(dǎo)入數(shù)據(jù)。選擇導(dǎo)入,并只選中PL/SQL轉(zhuǎn)換。將會(huì)看到兩個(gè)對(duì)象。選擇導(dǎo)入其中的一個(gè)或兩個(gè)。驗(yàn)證導(dǎo)入可選擇“添加到共享庫〞創(chuàng)立映射裝載數(shù)據(jù)下面我們創(chuàng)立映射將數(shù)據(jù)從不同數(shù)據(jù)源將數(shù)據(jù)抽取到數(shù)據(jù)倉庫。首先是將數(shù)據(jù)裝載入維表,然后再是事實(shí)表。映射維首先創(chuàng)立產(chǎn)品Products維。下面描述創(chuàng)立數(shù)據(jù)源到數(shù)據(jù)目標(biāo)的映射。ProductsSourceobjects:Table: OracleOE.Product_InformationTable: OracleOE.Categories_tabTarget:Dimension: Warehouse.ProductsMappingActivities:在Warehouse模塊中創(chuàng)立維wh_products_map添加適宜的數(shù)據(jù)操作符連接全部的列到j(luò)oiner對(duì)于兩個(gè)數(shù)據(jù)源基于category_id進(jìn)行連接從joiner連接相應(yīng)的列到目標(biāo)維各列設(shè)置裝載類型為INSERT/UPDATE驗(yàn)證并查看報(bào)告提交映射.
提示:TheUpdate:用于裝載數(shù)據(jù)必須設(shè)為NO,以產(chǎn)生mergecodeOrder_StatusSourceobjects:Table: Staging.stg_order_statusSequence: Warehouse.wh_orderstat_seqTarget:Dimension: Warehouse.Order_StatusMappingActivities:在Warehouse模塊中創(chuàng)立維wh_ord_stat_map添加適宜的數(shù)據(jù)操作符添加序列wh_orderstat_seq(在映射中創(chuàng)立完后將在新的存儲(chǔ)庫中創(chuàng)立一個(gè)新的序列,或者,事先創(chuàng)立好該序列,然后在映射中引用它)映射適宜的列到維中設(shè)置加載類型為INSERT/UPDATE〔鼠標(biāo)右鍵點(diǎn)擊維order_status標(biāo)題,選擇運(yùn)算符屬性,如圖〕在運(yùn)算符屬性中選擇“無約束條件〞。驗(yàn)證映射,檢查報(bào)告提交映射提示:TheUpdate:用于裝載數(shù)據(jù)必須設(shè)為NO,以產(chǎn)生mergecode。注:當(dāng)使用外部表時(shí),能看到不分段傳輸?shù)膬?yōu)點(diǎn)。平面文件可立即從Warehouse映射中訪問,能被join到其他對(duì)象中去。WarehousesSourceobjects:Table: OracleOE.WarehousesTable: OracleHR.LocationsTable: OracleHR.CountriesTarget:Dimension: Warehouse.WarehousesMappingActivities:在Warehouse模塊中創(chuàng)立維wh_warehouses_map添加適宜的數(shù)據(jù)操作符將適宜的列添加到連接運(yùn)算符joiner根據(jù)location_id及country_id進(jìn)行join。連接joiner到目標(biāo)維列設(shè)置裝載類型為INSERT/UPDATE驗(yàn)證并查看報(bào)告提交映射
提示:TheUpdate:用于裝載數(shù)據(jù)必須設(shè)為NO,以產(chǎn)生mergecode。CustomersSourceobjects:Table: OracleOE.CustomersTable: Staging.stg_cust_addresses Or Staging.stg_cust_addresses_extTable: OracleHR.CountriesLookup: OracleHR.employeesTarget:Dimension: Warehouse.CustomersMappingActivities:在Warehouse模塊中創(chuàng)立維wh_customers_map添加適宜的數(shù)據(jù)操作符對(duì)customers創(chuàng)立關(guān)鍵字查找,,以決定顧客的客戶經(jīng)理名Lookup表為OracleHR.Employees添加lookup運(yùn)算符在account_mgr_id及employee_id間創(chuàng)立匹配條件(選擇EMP_EMP_ID_PK)將OracleHR.Employee.last_name輸出到運(yùn)算符joiner列匹配其他適宜列到j(luò)oiner運(yùn)算符根據(jù)customer_id及country_id/countrycode連接數(shù)據(jù)源對(duì)象連接joiner運(yùn)算符其他列到目標(biāo)維中通過joiner運(yùn)算符在stg_cust_addresses_ext.postalcode與CS_POSTAL_CODE間添加TO_CHAR轉(zhuǎn)換并確保轉(zhuǎn)換正確。設(shè)置裝載類型為INSERT/UPDATE驗(yàn)證并查看報(bào)告提交映射
提示:TheUpdate:用于裝載數(shù)據(jù)必須設(shè)為NO,以產(chǎn)生mergecode。注:當(dāng)使用外部表時(shí),能看到不分段傳輸?shù)膬?yōu)點(diǎn)。平面文件可立即從Warehouse映射中訪問,能被join到其他對(duì)象中去。Sales_RepsSourceobjects:Table: OracleOE.OrdersTable: OracleHR.EmployeesTable: OracleHR.CountriesTable: OracleHR.RegionsTable: OracleHR.LocationsTable: OracleHR.DepartmentsLookup: OracleHR.EmployeesTarget:Dimension: Warehouse.Sales_RepsMappingActivities:在Warehouse模塊中創(chuàng)立維wh_SalesReps_map添加第一個(gè)運(yùn)算符的數(shù)據(jù)操作符集。OracleHR.CountriesOracleHR.RegionsOracleHR.LocationsOracleHR.Departments添加適宜的列到第一個(gè)joiner運(yùn)算符基于location_id、country_id及region_id連接數(shù)據(jù)源對(duì)象。添加第二個(gè)運(yùn)算符的數(shù)據(jù)操作符集OracleOE.OrdersOracleHR.Employees添加適宜的列到第二個(gè)joiner運(yùn)算符基于sales_rep_id=employee_id連接數(shù)據(jù)源。添加第三個(gè)joiner運(yùn)算符,并從2個(gè)joiner運(yùn)算符連接目標(biāo)需要的列到第三個(gè)joiner基于department_id創(chuàng)立連接條件。創(chuàng)立lookup運(yùn)算符,為每一個(gè)sales_rep查找manager’s名字,使用OracleHR_Employees為lookup表,重命名為運(yùn)算符MGR_LOOKUP創(chuàng)立EMP_EMP_ID_PK上的lookup條件,連接維last_name到維manager列從第三個(gè)joiner運(yùn)算符連接到目標(biāo)維設(shè)置裝載類型為INSERT/UPDATE驗(yàn)證并查看報(bào)告提交映射
提示:TheUpdate:用于裝載數(shù)據(jù)必須設(shè)為NO,以產(chǎn)生mergecode。SuppliersSourceobjects:Table: Staging.stg_suppliersTarget:Dimension: Warehouse.SuppliersMappingActivities:在Warehouse模塊中創(chuàng)立維wh_suppliers_map添加適宜的數(shù)據(jù)操作符映射適宜的列到目標(biāo)設(shè)置裝載類型為INSERT/UPDATE驗(yàn)證并查看報(bào)告提交映射
提示:TheUpdate:用于裝載數(shù)據(jù)必須設(shè)為NO,以產(chǎn)生mergecode。注:當(dāng)使用外部表時(shí),能看到不分段傳輸?shù)膬?yōu)點(diǎn)。平面文件可立即從Warehouse映射中訪問,能被join到其他對(duì)象中去。Times時(shí)間維的數(shù)據(jù)在創(chuàng)立時(shí)即根據(jù)其配置屬性產(chǎn)生了,無需再為時(shí)間維創(chuàng)立映射裝載數(shù)據(jù)。映射事實(shí)表事實(shí)表映射一般來說比維表映射要復(fù)雜一些。下面描述了建立事實(shí)映射的一般性的做法。Inventory事實(shí)表數(shù)據(jù)源:表: OracleOE.Inventories視圖: OracleOE.Products函數(shù): Warehouse.Get_Time_Id維: Warehouse.Suppliers(aslookup)維: Warehouse.Products(aslookup)維: Warehouse.Warehouses(aslookup)目標(biāo):事實(shí)表: Warehouse.Inventory建立映射:在Warehouse模塊中創(chuàng)立名為wh_inventory_map的映射將表OracleOE.Inventories和視圖OracleOE.Products添加到映射中使用product_id連接2個(gè)數(shù)據(jù)源一條對(duì)數(shù)據(jù)清洗的商業(yè)規(guī)那么是:沒有供給商的存貨數(shù)據(jù)不能裝入數(shù)據(jù)倉庫。因此,如下:建立一個(gè)針對(duì)supplier維的lookup從join連接supplierid到該lookup運(yùn)算符。當(dāng)沒有找到時(shí),將Inventory中的記錄劈分〔split〕到一個(gè)錯(cuò)誤表中〔該表必須創(chuàng)立,并命名為wh_inventory_error〕當(dāng)找到時(shí),那么將數(shù)據(jù)移入事實(shí)表確信兩個(gè)表都有時(shí)間戳timestampid(先前創(chuàng)立的函數(shù)GET_TIME_ID就能被兩個(gè)表用于獲取time_id)另一條對(duì)數(shù)據(jù)清洗的商業(yè)規(guī)那么是:當(dāng)Inventory中的值沒找到時(shí)給warehouse中附一個(gè)缺省值。用–1作為缺省值,這在本練習(xí)的后面實(shí)現(xiàn)。利用求和(SUM)對(duì)Quantity-on-Hand進(jìn)行聚集運(yùn)算,只針對(duì)事實(shí)表裝載做聚集,不要對(duì)錯(cuò)誤記錄表做。(因?yàn)槟阋坏┻@么做,那么所有記錄錯(cuò)誤的詳細(xì)信息將喪失)不要忘了協(xié)調(diào)新的錯(cuò)誤表,以在存儲(chǔ)中創(chuàng)立它。(確保是在Warehouse模塊中)設(shè)置事實(shí)表為INSERT/UPDATE,錯(cuò)誤記錄表為INSERT狀態(tài)。驗(yàn)證該映射,并改正可能出現(xiàn)的錯(cuò)誤提交工作.OrdersFactSourceobjects:View: Staging.stg_ordersTable: OracleOE.order_itemsDimension: Warehouse.Order_Status(aslookup)Dimension: Warehouse.Times(aslookup)Target:Fact: Warehouse.OrdersMappingActivities:在Warehouse模塊中創(chuàng)立名為wh_orders_map的映射添加適宜的數(shù)據(jù)操作符對(duì)orders根據(jù)date進(jìn)行排序,最早的數(shù)據(jù)先處理。確保正確的順序存儲(chǔ)。使用order_id連接排序后的stg_orders及order_items進(jìn)行連接對(duì)order_status進(jìn)行查找對(duì)Times進(jìn)行查找確保只有正確狀態(tài)的訂單信息才能進(jìn)入事實(shí)表,本例中,我們存儲(chǔ)沒有訂單狀態(tài)的信息。創(chuàng)立表達(dá)式:unit_price乘quantity經(jīng)過過濾和計(jì)算后,需要進(jìn)行聚集。設(shè)置裝載類型為INSERT/UPDATE驗(yàn)證并查看報(bào)告提交映射在創(chuàng)立完這些元數(shù)據(jù)后,下一步就是在物理上創(chuàng)立所有對(duì)象。下一個(gè)模塊我們就是完成數(shù)據(jù)倉庫的創(chuàng)立。
Module5:配置,部署及運(yùn)行在做該步之前,請(qǐng)先確認(rèn)到目前為止的元數(shù)據(jù)均正確.配置依賴于你希望將映射及各對(duì)象存放在什么地方。環(huán)境一般的情形是,會(huì)有一些遠(yuǎn)程數(shù)據(jù)源,在本培訓(xùn)中都是在一個(gè)機(jī)器上做,源也在本地,即數(shù)據(jù)倉庫與數(shù)據(jù)源均在一個(gè)庫內(nèi).用戶信息建議的用戶信息是:建一個(gè)用戶owb/owb用于存放數(shù)據(jù)倉庫對(duì)象。授予該用戶DBA權(quán)限(本處是快捷方式,在真實(shí)的環(huán)境中,用戶一般不會(huì)有該權(quán)限)使用WarehouseBuilderRuntimeAssistant安裝WarehouseRuntime在該用戶下.配置配置Warehouse模塊該模塊有些項(xiàng)可以進(jìn)行配置,下面是需要配置的列表:部署系統(tǒng)類型:目標(biāo)數(shù)據(jù)庫類型=Oracle9i,這是對(duì)產(chǎn)生運(yùn)行代碼唯一需要配置的參數(shù)運(yùn)行審計(jì):審計(jì)級(jí)別=Statistics運(yùn)行目錄;隊(duì)列監(jiān)聽程序目錄=OWB_HOME\Workflow\隊(duì)列監(jiān)聽程序主機(jī)=Hostname〔本例中為localhost〕I標(biāo)識(shí)名稱=<空白>主應(yīng)用程序短名稱=ORA<即缺省>應(yīng)用程序短名稱=WB<即缺省>方案所有者=OWB_RUN<運(yùn)行時(shí)的用戶名>連接字符串=<Net8連接〔遠(yuǎn)程〕數(shù)據(jù)庫,為了平安原因,在下面指定各參數(shù):計(jì)算機(jī)=運(yùn)行該作業(yè)的〔遠(yuǎn)程〕數(shù)據(jù)庫計(jì)算機(jī)名端口=〔遠(yuǎn)程〕數(shù)據(jù)庫監(jiān)聽端口,缺省1521SID=遠(yuǎn)程數(shù)據(jù)庫SID頂級(jí)目錄=..\..\codegen<即缺省>可部署=true<即缺省>數(shù)據(jù)庫鏈路;創(chuàng)立該模塊需要的數(shù)據(jù)庫鏈路.本例子中沒有必要,因?yàn)閿?shù)據(jù)源、數(shù)據(jù)倉庫、元數(shù)據(jù)存儲(chǔ)都在一個(gè)數(shù)據(jù)庫內(nèi)〔如果三者為三個(gè)數(shù)據(jù)庫,那么三者之間都需要建立數(shù)據(jù)庫鏈路〕。NOTE1:設(shè)置數(shù)據(jù)倉庫目標(biāo)為Oracle9i將會(huì)在映射中產(chǎn)生MERGE代碼.NOTE2:兩個(gè)模塊(StagingandWarehouse)都應(yīng)以相同方式配置.配置StagingTables配置staging表的一些參數(shù):性能參數(shù):紀(jì)錄到重做日志文件=NOLOGGING存儲(chǔ)表空間=<運(yùn)行時(shí)的表空間>對(duì)staging區(qū)所有各表都進(jìn)行配置。配置Staging映射在各映射上配置以下參數(shù):設(shè)置選擇性文件(數(shù)據(jù)文件,錯(cuò)誤文件,不一致文件)或者位置〔如果需要的話〕選擇直接模式加載或者傳統(tǒng)模式加載設(shè)置錯(cuò)誤修理及其他為了正確性的各參數(shù).配置Warehouse模塊各維對(duì)于staging表需要配置的一些內(nèi)容是:性能參數(shù):記錄到重做日志文件=NOLOGGING存儲(chǔ)空間:表空間=<運(yùn)行時(shí)表空間>對(duì)于時(shí)間維,一定要配置生成選項(xiàng)開始日期、結(jié)束日期對(duì)warehouse所有各維都進(jìn)行配置。配置Warehouse各事實(shí)表對(duì)于各staging表配置:性能參數(shù):記錄到重做日志文件=NOLOGGING存儲(chǔ)空間:表空間=<運(yùn)行時(shí)表空間>在與各維的外鍵列對(duì)應(yīng)的列上創(chuàng)立bitmap索引(在索引入口,點(diǎn)擊…到添加索引窗口,點(diǎn)擊生成創(chuàng)立bitmap索引,對(duì)于星型查詢轉(zhuǎn)換應(yīng)該創(chuàng)立索引。對(duì)于第2個(gè)事實(shí)表應(yīng)該對(duì)索引PR_PROD_IDandDA_SMART_KEY重新命名,如下,以免重名)為索引設(shè)置存儲(chǔ)表空間<運(yùn)行時(shí)索引表空間>對(duì)于warehouse中其他事實(shí)表進(jìn)行配置.配置WarehouseSequence在staging表中的配置:Sequence參數(shù):增量=10起始于=1配置Warehouse表在staging表中的配置:性能參數(shù):記錄到重做日志文件=NOLOGGING存儲(chǔ)空間:表空間=<運(yùn)行時(shí)表空間>對(duì)于warehouse中其他表進(jìn)行配置..配置Warehouse映射雖然本例中這些映射的所有數(shù)據(jù)源都來自于同一數(shù)據(jù)庫,但是你想確認(rèn)它們不需要任何數(shù)據(jù)庫鏈路dblinks連接數(shù)據(jù)源,如下:配置數(shù)據(jù)源操作符并設(shè)置到數(shù)據(jù)源的數(shù)據(jù)庫鏈路為NULL設(shè)置方案,即用戶名(例如OE)注為防止staging對(duì)象為數(shù)據(jù)源,不要設(shè)置任何數(shù)據(jù)源或者方案.另外注意一下缺省操作模式,由于我們運(yùn)行在Oracle9i,所有映射生成出MERGE代碼,我們希望以基于集的模式運(yùn)行(SetBasedmode).如下:配置運(yùn)行時(shí)參數(shù),選擇基于集為默認(rèn)的的操作方式設(shè)置缺省的審計(jì)層次為統(tǒng)計(jì)信息〔Statistics〕部署對(duì)象最好的部署對(duì)象方法是同類進(jìn)行一批批部署。例如部署所有與維相關(guān)的對(duì)象,選擇〞維〞節(jié)點(diǎn)然后從該處生成,然后從生成出的結(jié)果窗口中選擇全部對(duì)象然后按“部署〞。WarehouseBuilder自動(dòng)確定部署相關(guān)對(duì)象的正確順序。對(duì)于各類對(duì)象,按照表、維,再到事實(shí)表這樣的一個(gè)順序。生成希望部署的一個(gè)或多個(gè)對(duì)象在點(diǎn)擊部署按鈕后將開始部署確認(rèn)所有部署都是正確的(看消息窗口)當(dāng)有問題時(shí)解決相關(guān)問題(在有些情況下,需要授予PL/SQL中用戶需要訪問的那些對(duì)象的select權(quán)限)繼續(xù)該模塊中的其他對(duì)象,直至全部部署至此你完成了數(shù)據(jù)倉庫系統(tǒng)在創(chuàng)立完各類對(duì)象后,下面開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版福州二手房買賣合同(附裝修及家具清單)3篇
- 2025年度茶葉產(chǎn)業(yè)鏈上下游合作合同4篇
- 2025年鐵藝欄桿定制、加工、安裝及售后維護(hù)合同3篇
- 2025年度專業(yè)儲(chǔ)藏室裝修與恒溫恒濕系統(tǒng)安裝合同4篇
- 二零二五年度農(nóng)業(yè)合作社代理記賬與農(nóng)產(chǎn)品銷售合同3篇
- 2025年度生態(tài)茶園承包經(jīng)營(yíng)合同范本4篇
- 2025年度電子商務(wù)合同糾紛調(diào)解與訴訟策略3篇
- 2025年度門窗市場(chǎng)調(diào)研與推廣服務(wù)合同4篇
- 2025年度建筑腳手架設(shè)計(jì)與施工及安全監(jiān)管合同4篇
- 2025年度戶外廣場(chǎng)瓷磚鋪設(shè)與維護(hù)合同4篇
- 2025年度房地產(chǎn)權(quán)證辦理委托代理合同典范3篇
- 柴油墊資合同模板
- 湖北省五市州2023-2024學(xué)年高一下學(xué)期期末聯(lián)考數(shù)學(xué)試題
- 城市作戰(zhàn)案例研究報(bào)告
- 【正版授權(quán)】 ISO 12803:1997 EN Representative sampling of plutonium nitrate solutions for determination of plutonium concentration
- 道德經(jīng)全文及注釋
- 2024中考考前地理沖刺卷及答案(含答題卡)
- 多子女贍養(yǎng)老人協(xié)議書范文
- 彩票市場(chǎng)銷售計(jì)劃書
- 支付行業(yè)反洗錢與反恐怖融資
- 基礎(chǔ)設(shè)施綠色施工技術(shù)研究
評(píng)論
0/150
提交評(píng)論