




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
可修改歡送下載精品Word可修改歡送下載精品Word可修改歡送下載精品WordOracle9iWarehouseBuilder培訓(xùn)資料
目錄TOC\o"1-3"\h\z簡介 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è)計數(shù)據(jù)倉庫 11創(chuàng)立分段傳輸區(qū)〔StagingArea〕 11創(chuàng)立數(shù)據(jù)倉庫模型 14Module4:建立映射及轉(zhuǎn)換 20創(chuàng)立PL/SQLFunction 20導(dǎo)入一個已經(jīng)存在的過程〔Procedure〕 20創(chuàng)立映射裝載數(shù)據(jù) 20Module5:配置,部署及運行 29環(huán)境 29配置 29部署對象 32運行數(shù)據(jù)裝載 33Module6:生命周期管理 35將數(shù)據(jù)源元數(shù)據(jù)的變化反映到OWB存儲中 35對于目標(biāo)的變化管理 36Module7:元數(shù)據(jù)報告 38從WarehouseBuilder客戶端看 38
簡介Oracle9iWarehouseBuilder(OWB)是Oracle完整智能解決方案中的一局部。其作用主要是完成數(shù)據(jù)倉庫的設(shè)計及抽取、轉(zhuǎn)換、裝載設(shè)計(Extract,TransformandLoadETL)與生成??梢栽O(shè)計OracleDiscoverer的EndUserLayer并與Oracle9i數(shù)據(jù)庫緊密集成。提綱本資料的目標(biāo)是例示OWB的功能,因此中間沒有什么重復(fù)工作,在某些方面較為簡潔。另外,本資料沒有論述如何建立數(shù)據(jù)倉庫的模型及如何進(jìn)行性能優(yōu)化,該局部內(nèi)容請參考相關(guān)Oracle資料。本資料分為以下幾個局部,每一個針對OWB的一特定領(lǐng)域。Module1:建立環(huán)境
該模塊描述如何建立環(huán)境。也給出了一些源數(shù)據(jù)的詳細(xì)數(shù)據(jù)結(jié)構(gòu)。
Module2:建立數(shù)據(jù)源
該模塊讓用戶建立基于9i數(shù)據(jù)庫種子對象得源數(shù)據(jù)模塊。該步驟僅是整個解決方案中的第一步。在后面的階段,我們將回頭來改變數(shù)據(jù)源對象,以舉例顯示生命周期管理。
Module3:設(shè)計數(shù)據(jù)倉庫
該模塊顯示W(wǎng)arehouseBuilder創(chuàng)立表、視圖、方案的一些特征。在此局部我們將練習(xí)創(chuàng)立事實表及維。完成這些工作后,就能將數(shù)據(jù)載入這些結(jié)構(gòu)中定下數(shù)據(jù)倉庫。
Module4:設(shè)計映射與轉(zhuǎn)換模型
OWB的核心功能是基于ETL過程,轉(zhuǎn)換及進(jìn)行它們的設(shè)計。本模塊將展示如何利用OWB映射設(shè)計工具完成這些過程的設(shè)計。將充分利用前面在OWB中定義好的數(shù)據(jù)源與數(shù)據(jù)目標(biāo),允許客戶化PL/SQL開發(fā)輔助數(shù)據(jù)轉(zhuǎn)換。也將看到如何重用PL/SQL。Module5:配置,部署,運行
在設(shè)計完數(shù)據(jù)倉庫后,下一步當(dāng)然就是在數(shù)據(jù)庫中安裝它,并載入數(shù)據(jù)。本模塊將展示如何配置在前面中創(chuàng)立的模塊,并運行映射,載入數(shù)據(jù)。
Module6:生命周期管理
數(shù)據(jù)倉庫是一個一直在進(jìn)化的系統(tǒng)。為了處理數(shù)據(jù)源及數(shù)據(jù)目標(biāo)的變化,OWB提供了用戶數(shù)據(jù)源協(xié)調(diào)及數(shù)據(jù)倉庫升級的手段。本局部將展示這些內(nèi)容。
Module7:元數(shù)據(jù)報告
本模塊是可選做的一局部,因為必須安裝Oracle9iAS并正確配置。元數(shù)據(jù)報告模塊將展示OWBBrowser的能力。該瀏覽器可以進(jìn)行線性分析、影響分析及更多的報表。前提為完本錢培訓(xùn),必須滿足以下幾點前提:安裝Oracle9i數(shù)據(jù)庫安裝WarehouseBuilder及存儲庫有足夠的權(quán)限以授予權(quán)限,創(chuàng)立用戶,安裝運行時,如果需要的話,還安裝Browser企業(yè)管理器并設(shè)置,以能從OEM中調(diào)度jobOracleWorkflowset安裝并設(shè)置以能創(chuàng)立工作流安裝9iAS及Portal,如果練習(xí)元數(shù)據(jù)報告的話有一定的WarehouseBuilder根本概念知識有一定的Oracle9i數(shù)據(jù)庫概念有一定的Oracle9iETL概念有一定的SQL及PL/SQL知識,才能在你自己的環(huán)境下寫出客戶化的代碼培訓(xùn)目標(biāo)本培訓(xùn)的幾個目標(biāo)是:對WarehouseBuilder的能力有一個綜合認(rèn)識利用WarehouseBuilder進(jìn)行一個完整的設(shè)計、部署及運行周期反應(yīng)與意見假設(shè)對本培訓(xùn)資料有何意見,請將意見反應(yīng)給我們,以便我們改良和提高。請聯(lián)系:閔文杰技術(shù)咨詢參謀
Module1:在WarehouseBuilder中設(shè)置環(huán)境為開始始用WarehouseBuilder,我們首先必須創(chuàng)立一個工程〔project〕.我們?nèi)」こ堂鸛WEEK。開始將Xweek.zip文件移動到本地硬盤并解壓。假設(shè)在C盤上,你也可以放在其他磁盤上,解壓完后,將有如下目錄:C– Xweek– SourceFiles SQLScripts建好這些目錄后,開始進(jìn)入WarehouseBuilder。登陸到WarehouseBuilder,并進(jìn)入管理局部??梢匀缦?種方式實現(xiàn)。輸入用戶名及口令后,在“選擇要翻開得工程〞處,點擊“取消〞,就進(jìn)入管理局部。輸入用戶名及口令后,在“選擇要翻開得工程〞處,隨便選一個工程翻開,然后使用控制臺點擊“管理〞按鈕進(jìn)行切換,就進(jìn)入管理局部。在管理局部:高亮度“工程〞然后點鼠標(biāo)右鍵,選擇“創(chuàng)立工程〞。
(或者到管理菜單中選擇“創(chuàng)立工程〞)給出一個名字,如“Xweek〞選擇工程版本標(biāo)簽號(例如Xweek)點擊完成按鈕提交切換工程到新工程?,F(xiàn)在就在該工程下開始工作。環(huán)境整個培訓(xùn)都是基于Oracle9i中生成的用戶對象。以下為包括這些表的對象列表。OrderEntry用戶名: OE口令: OE(default)表名CUSTOMERSINVENTORIESORDERSORDER_ITEMSPRODUCT_DESCRIPTIONSPRODUCT_INFORMATIONPRODUCT_REF_LIST_NESTEDTABSUBCATEGORY_REF_LIST_NESTEDTABWAREHOUSESHumanResources用戶名: HR口令: HR(default)TABLE_NAMECOUNTRIESDEPARTMENTSEMPLOYEESJOBSJOB_HISTORYLOCATIONSREGIONSCustomerAddresses顧客地址存儲在以逗號分割的平面文件中。文件名為Customer_address.txt,存儲在文件夾\Xweek\SourceFiles中。驅(qū)動器為你解壓zip文件的驅(qū)動器。文件格式: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ù)源對象的結(jié)構(gòu)。定義數(shù)據(jù)源對象的結(jié)構(gòu)包括如下行為:定義和創(chuàng)立針對平面文件的數(shù)據(jù)源模塊 定義和創(chuàng)立針對關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)源模塊從數(shù)據(jù)源對象導(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抽樣對各列重新命名如下:
C1Customer_IDC2StreetC3PostalCodeC4CityC5StateCodeC6CountryCode其他3個文件命名如下: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ù)庫鏈路(點擊創(chuàng)立新數(shù)據(jù)庫鏈路按鈕)名字: OELink輸入hostname,portandSID:本例中為localhost,1521,orcl用戶名,口令(OE/OE)點擊創(chuàng)立并測試選中“繼續(xù)導(dǎo)入元數(shù)據(jù)向?qū)Ж曔x擇全部對象導(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ù)庫鏈路(點擊創(chuàng)立新數(shù)據(jù)庫鏈路按鈕)名字: HRLink輸入hostname,portandSID:本例中為localhost,1521,orcl用戶名,口令(HR/HR)點擊創(chuàng)立并測試選中“繼續(xù)導(dǎo)入元數(shù)據(jù)向?qū)Ж曔x擇全部對象導(dǎo)入完成導(dǎo)入。提交元數(shù)據(jù)上面導(dǎo)入了數(shù)據(jù)源元數(shù)據(jù),基于這些數(shù)據(jù)源,我們將創(chuàng)立數(shù)據(jù)倉庫對象并從這些表中抽取數(shù)據(jù)。
Module3設(shè)計數(shù)據(jù)倉庫數(shù)據(jù)倉庫設(shè)計包括一個數(shù)據(jù)倉庫方案〔即用戶〕及一個中間區(qū),用于分段傳輸〔staging〕信息。創(chuàng)立分段傳輸區(qū)〔StagingArea〕一個分段傳輸區(qū)是存放臨時數(shù)據(jù)的地方以用于進(jìn)一步處理。使用Oracle9iETL新的特性,例如外部表〔ExternalTables〕,該區(qū)變得多余了。本練習(xí)示范老代碼的使用(e.g.使用SQL*Loader裝載數(shù)據(jù))及使用外部表〔ExternalTables〕的新的方式。建議兩個練習(xí)都做,因為WarehouseBuilder也支持Oracle8.1.7數(shù)據(jù)庫目標(biāo)〔現(xiàn)在有許多這種應(yīng)用〕。創(chuàng)立模塊及數(shù)據(jù)對象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)到畫布上,選擇第一項“創(chuàng)立未綁定的映射表〔不具有屬性〕〞對話框。輸入該新映射表的名字(stg_cust_addresses)使用自動映射映射整個平面文件到stg_cust_addresses(選擇缺省項后點擊開始)確認(rèn)列的數(shù)據(jù)類型是正確的。(請使用varchar2代替char類型)為了在存儲中建立該表,在對象stg_cust_addresses的頭上點擊右鍵,選擇協(xié)調(diào)出站〔reconcileoutbound〕在警告對話框上點擊“確定〞。選擇第一項,“創(chuàng)立新的表〞并選擇Staging,其為唯一的缺省值選項。關(guān)閉該映射并提交元數(shù)據(jù)。此時在存儲庫中即有了新的表和新的映射,對兩者進(jìn)行校驗。后面我們將回到該映射并運行它。到此為止,該映射就完成了。其他Staging表和映射此處不再枚舉。除上面的方法外,我們也可以使用創(chuàng)立表的向?qū)?chuàng)立新表,然后逐一輸入列名。另外一種創(chuàng)立對象stg_cust_addresses的方法是是適用外部表〔ExternalTable〕功能。實現(xiàn)該方式如下所示:LogintoSQL*PlusasSYSDBA,以便于建立新用戶創(chuàng)立用戶名:Wh_Xweek及口令(Wh_Xweek)授予用戶DBA權(quán)限(此處為簡便使用,在現(xiàn)實世界中應(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)入該表。此時,在WarehouseBuilder中有了2個顧客地址表,一個用于staging表,用于SQL*Loader裝載數(shù)據(jù),另外一個是利用外部表來訪問。兩者都在后面映射中使用。提交元數(shù)據(jù)。我們在staging區(qū)創(chuàng)立一個視圖用于轉(zhuǎn)換時間標(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個對象是基于平面文件,用于未來維的源數(shù)據(jù)表??梢允褂们懊嫠鰏tg_cust_addresses中兩種機制中的任一種方式創(chuàng)立。在模塊staging中創(chuàng)立一個表,用于存儲從文件“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ù)。第四個對象也用于未來維的源數(shù)據(jù)表??梢允褂们懊嫠鰏tg_cust_addresses中兩種機制中的任一種方式創(chuàng)立。在模塊staging中創(chuàng)立一個表,用于存儲從文件“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ù)倉庫對象結(jié)構(gòu)。該數(shù)據(jù)倉庫是簡單的星型模型,數(shù)據(jù)來源于用戶OE,HR及Staging模塊。主要關(guān)心的是Order及Inventory信息。該星型模型不保存詳細(xì)訂單信息,也就意味著訂單詳細(xì)在本數(shù)據(jù)倉庫中沒有。簡化有時是一種商業(yè)分析的需要。事實表〔Facttables〕orders的事實表(name:Orders)收集有關(guān)定單的信息。包含以下度量〔measures〕:Quantity NumberAmount Number該事實表的相關(guān)維為:ProductsTimes(useSmartKeyPKondaylevel)CustomersSalesRepsOrderStatusInventory事實表(name:Inventory)保存有關(guān)產(chǎn)品庫存的信息,包含以下度量〔measures〕:Quantity_on_Hand該事實表的相關(guān)維為(全部都是最低層次level與缺省值):ProductsTime(useSmartKeyPKondaylevel)WarehousesSuppliers維〔Dimensions〕從事實表看出,數(shù)據(jù)倉庫中需要建立7個維表。為簡便起見,各層次在屬性上比擬緊湊。以下描述了各維的詳細(xì)信息:*標(biā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最后需要創(chuàng)立的維是時間維。使用WarehouseBuilder向?qū)?chuàng)立,最低級別為Day,可以選擇你希望看到得時間維,如季、月。所有命名都是標(biāo)準(zhǔn)的??梢栽跁r間維上創(chuàng)立多種層次。創(chuàng)立維表與事實表為了輸入上面提到的信息,需要首先創(chuàng)立一個新的模塊,命名為Warehouse。翻開該模塊并:在維節(jié)點,選擇創(chuàng)立維,然后利用向?qū)?chuàng)立維。在創(chuàng)立完每一個維后,進(jìn)行提交作為創(chuàng)立維的最后一步,記得用向?qū)?chuàng)立一個時間維。同樣也要提交。創(chuàng)立兩個事實表,在事實表節(jié)點,利用向?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允許在存儲庫中創(chuàng)立、導(dǎo)入及維護(hù)PL/SQL。本模塊將展示如何做并在映射中利用它。映射將在本模塊的后半局部練習(xí)。創(chuàng)立PL/SQLFunction為了創(chuàng)立一個函數(shù)〔function〕,在Warehouse模塊中,翻開轉(zhuǎn)換庫,點鼠標(biāo)右鍵創(chuàng)立一個新的function命名為GET_TIME_ID不要設(shè)定輸入?yún)?shù),點擊。在窗口中輸入如下代碼,局部內(nèi)容已按照格式給出,粗體局部為添加進(jìn)去的。:
--initializevariablesherev_returnnumber;--mainbodyBEGINselectda_idintov_returnfromTIMESwheretimes.da_actual_date=sysdate;RETURNv_return;END;
保存,提交。導(dǎo)入一個已經(jīng)存在的過程〔Procedure〕為了在WarehouseBuilder中重用已經(jīng)存在的PL/SQL代碼,進(jìn)入需要使用存儲過程的模塊中選擇導(dǎo)入,本例中,導(dǎo)入Warehouse模塊創(chuàng)立一個指向HR的新的數(shù)據(jù)庫鏈路以導(dǎo)入數(shù)據(jù)。選擇導(dǎo)入,并只選中PL/SQL轉(zhuǎn)換。將會看到兩個對象。選擇導(dǎo)入其中的一個或兩個。驗證導(dǎo)入可選擇“添加到共享庫〞創(chuàng)立映射裝載數(shù)據(jù)下面我們創(chuàng)立映射將數(shù)據(jù)從不同數(shù)據(jù)源將數(shù)據(jù)抽取到數(shù)據(jù)倉庫。首先是將數(shù)據(jù)裝載入維表,然后再是事實表。映射維首先創(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對于兩個數(shù)據(jù)源基于category_id進(jìn)行連接從joiner連接相應(yīng)的列到目標(biāo)維各列設(shè)置裝載類型為INSERT/UPDATE驗證并查看報告提交映射.
提示: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)立完后將在新的存儲庫中創(chuàng)立一個新的序列,或者,事先創(chuàng)立好該序列,然后在映射中引用它)映射適宜的列到維中設(shè)置加載類型為INSERT/UPDATE〔鼠標(biāo)右鍵點擊維order_status標(biāo)題,選擇運算符屬性,如圖〕在運算符屬性中選擇“無約束條件〞。驗證映射,檢查報告提交映射提示:TheUpdate:用于裝載數(shù)據(jù)必須設(shè)為NO,以產(chǎn)生mergecode。注:當(dāng)使用外部表時,能看到不分段傳輸?shù)膬?yōu)點。平面文件可立即從Warehouse映射中訪問,能被join到其他對象中去。WarehousesSourceobjects:Table: OracleOE.WarehousesTable: OracleHR.LocationsTable: OracleHR.CountriesTarget:Dimension: Warehouse.WarehousesMappingActivities:在Warehouse模塊中創(chuàng)立維wh_warehouses_map添加適宜的數(shù)據(jù)操作符將適宜的列添加到連接運算符joiner根據(jù)location_id及country_id進(jìn)行join。連接joiner到目標(biāo)維列設(shè)置裝載類型為INSERT/UPDATE驗證并查看報告提交映射
提示: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ù)操作符對customers創(chuàng)立關(guān)鍵字查找,,以決定顧客的客戶經(jīng)理名Lookup表為OracleHR.Employees添加lookup運算符在account_mgr_id及employee_id間創(chuàng)立匹配條件(選擇EMP_EMP_ID_PK)將OracleHR.Employee.last_name輸出到運算符joiner列匹配其他適宜列到j(luò)oiner運算符根據(jù)customer_id及country_id/countrycode連接數(shù)據(jù)源對象連接joiner運算符其他列到目標(biāo)維中通過joiner運算符在stg_cust_addresses_ext.postalcode與CS_POSTAL_CODE間添加TO_CHAR轉(zhuǎn)換并確保轉(zhuǎn)換正確。設(shè)置裝載類型為INSERT/UPDATE驗證并查看報告提交映射
提示:TheUpdate:用于裝載數(shù)據(jù)必須設(shè)為NO,以產(chǎn)生mergecode。注:當(dāng)使用外部表時,能看到不分段傳輸?shù)膬?yōu)點。平面文件可立即從Warehouse映射中訪問,能被join到其他對象中去。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添加第一個運算符的數(shù)據(jù)操作符集。OracleHR.CountriesOracleHR.RegionsOracleHR.LocationsOracleHR.Departments添加適宜的列到第一個joiner運算符基于location_id、country_id及region_id連接數(shù)據(jù)源對象。添加第二個運算符的數(shù)據(jù)操作符集OracleOE.OrdersOracleHR.Employees添加適宜的列到第二個joiner運算符基于sales_rep_id=employee_id連接數(shù)據(jù)源。添加第三個joiner運算符,并從2個joiner運算符連接目標(biāo)需要的列到第三個joiner基于department_id創(chuàng)立連接條件。創(chuàng)立lookup運算符,為每一個sales_rep查找manager’s名字,使用OracleHR_Employees為lookup表,重命名為運算符MGR_LOOKUP創(chuàng)立EMP_EMP_ID_PK上的lookup條件,連接維last_name到維manager列從第三個joiner運算符連接到目標(biāo)維設(shè)置裝載類型為INSERT/UPDATE驗證并查看報告提交映射
提示: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驗證并查看報告提交映射
提示:TheUpdate:用于裝載數(shù)據(jù)必須設(shè)為NO,以產(chǎn)生mergecode。注:當(dāng)使用外部表時,能看到不分段傳輸?shù)膬?yōu)點。平面文件可立即從Warehouse映射中訪問,能被join到其他對象中去。Times時間維的數(shù)據(jù)在創(chuàng)立時即根據(jù)其配置屬性產(chǎn)生了,無需再為時間維創(chuàng)立映射裝載數(shù)據(jù)。映射事實表事實表映射一般來說比維表映射要復(fù)雜一些。下面描述了建立事實映射的一般性的做法。Inventory事實表數(shù)據(jù)源:表: OracleOE.Inventories視圖: OracleOE.Products函數(shù): Warehouse.Get_Time_Id維: Warehouse.Suppliers(aslookup)維: Warehouse.Products(aslookup)維: Warehouse.Warehouses(aslookup)目標(biāo):事實表: Warehouse.Inventory建立映射:在Warehouse模塊中創(chuàng)立名為wh_inventory_map的映射將表OracleOE.Inventories和視圖OracleOE.Products添加到映射中使用product_id連接2個數(shù)據(jù)源一條對數(shù)據(jù)清洗的商業(yè)規(guī)那么是:沒有供給商的存貨數(shù)據(jù)不能裝入數(shù)據(jù)倉庫。因此,如下:建立一個針對supplier維的lookup從join連接supplierid到該lookup運算符。當(dāng)沒有找到時,將Inventory中的記錄劈分〔split〕到一個錯誤表中〔該表必須創(chuàng)立,并命名為wh_inventory_error〕當(dāng)找到時,那么將數(shù)據(jù)移入事實表確信兩個表都有時間戳timestampid(先前創(chuàng)立的函數(shù)GET_TIME_ID就能被兩個表用于獲取time_id)另一條對數(shù)據(jù)清洗的商業(yè)規(guī)那么是:當(dāng)Inventory中的值沒找到時給warehouse中附一個缺省值。用–1作為缺省值,這在本練習(xí)的后面實現(xiàn)。利用求和(SUM)對Quantity-on-Hand進(jìn)行聚集運算,只針對事實表裝載做聚集,不要對錯誤記錄表做。(因為你一旦這么做,那么所有記錄錯誤的詳細(xì)信息將喪失)不要忘了協(xié)調(diào)新的錯誤表,以在存儲中創(chuàng)立它。(確保是在Warehouse模塊中)設(shè)置事實表為INSERT/UPDATE,錯誤記錄表為INSERT狀態(tài)。驗證該映射,并改正可能出現(xiàn)的錯誤提交工作.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ù)操作符對orders根據(jù)date進(jìn)行排序,最早的數(shù)據(jù)先處理。確保正確的順序存儲。使用order_id連接排序后的stg_orders及order_items進(jìn)行連接對order_status進(jìn)行查找對Times進(jìn)行查找確保只有正確狀態(tài)的訂單信息才能進(jìn)入事實表,本例中,我們存儲沒有訂單狀態(tài)的信息。創(chuàng)立表達(dá)式:unit_price乘quantity經(jīng)過過濾和計算后,需要進(jìn)行聚集。設(shè)置裝載類型為INSERT/UPDATE驗證并查看報告提交映射在創(chuàng)立完這些元數(shù)據(jù)后,下一步就是在物理上創(chuàng)立所有對象。下一個模塊我們就是完成數(shù)據(jù)倉庫的創(chuàng)立。
Module5:配置,部署及運行在做該步之前,請先確認(rèn)到目前為止的元數(shù)據(jù)均正確.配置依賴于你希望將映射及各對象存放在什么地方。環(huán)境一般的情形是,會有一些遠(yuǎn)程數(shù)據(jù)源,在本培訓(xùn)中都是在一個機器上做,源也在本地,即數(shù)據(jù)倉庫與數(shù)據(jù)源均在一個庫內(nèi).用戶信息建議的用戶信息是:建一個用戶owb/owb用于存放數(shù)據(jù)倉庫對象。授予該用戶DBA權(quán)限(本處是快捷方式,在真實的環(huán)境中,用戶一般不會有該權(quán)限)使用WarehouseBuilderRuntimeAssistant安裝WarehouseRuntime在該用戶下.配置配置Warehouse模塊該模塊有些項可以進(jìn)行配置,下面是需要配置的列表:部署系統(tǒng)類型:目標(biāo)數(shù)據(jù)庫類型=Oracle9i,這是對產(chǎn)生運行代碼唯一需要配置的參數(shù)運行審計:審計級別=Statistics運行目錄;隊列監(jiān)聽程序目錄=OWB_HOME\Workflow\隊列監(jiān)聽程序主機=Hostname〔本例中為localhost〕I標(biāo)識名稱=<空白>主應(yīng)用程序短名稱=ORA<即缺省>應(yīng)用程序短名稱=WB<即缺省>方案所有者=OWB_RUN<運行時的用戶名>連接字符串=<Net8連接〔遠(yuǎn)程〕數(shù)據(jù)庫,為了平安原因,在下面指定各參數(shù):計算機=運行該作業(yè)的〔遠(yuǎn)程〕數(shù)據(jù)庫計算機名端口=〔遠(yuǎn)程〕數(shù)據(jù)庫監(jiān)聽端口,缺省1521SID=遠(yuǎn)程數(shù)據(jù)庫SID頂級目錄=..\..\codegen<即缺省>可部署=true<即缺省>數(shù)據(jù)庫鏈路;創(chuàng)立該模塊需要的數(shù)據(jù)庫鏈路.本例子中沒有必要,因為數(shù)據(jù)源、數(shù)據(jù)倉庫、元數(shù)據(jù)存儲都在一個數(shù)據(jù)庫內(nèi)〔如果三者為三個數(shù)據(jù)庫,那么三者之間都需要建立數(shù)據(jù)庫鏈路〕。NOTE1:設(shè)置數(shù)據(jù)倉庫目標(biāo)為Oracle9i將會在映射中產(chǎn)生MERGE代碼.NOTE2:兩個模塊(StagingandWarehouse)都應(yīng)以相同方式配置.配置StagingTables配置staging表的一些參數(shù):性能參數(shù):紀(jì)錄到重做日志文件=NOLOGGING存儲表空間=<運行時的表空間>對staging區(qū)所有各表都進(jìn)行配置。配置Staging映射在各映射上配置以下參數(shù):設(shè)置選擇性文件(數(shù)據(jù)文件,錯誤文件,不一致文件)或者位置〔如果需要的話〕選擇直接模式加載或者傳統(tǒng)模式加載設(shè)置錯誤修理及其他為了正確性的各參數(shù).配置Warehouse模塊各維對于staging表需要配置的一些內(nèi)容是:性能參數(shù):記錄到重做日志文件=NOLOGGING存儲空間:表空間=<運行時表空間>對于時間維,一定要配置生成選項開始日期、結(jié)束日期對warehouse所有各維都進(jìn)行配置。配置Warehouse各事實表對于各staging表配置:性能參數(shù):記錄到重做日志文件=NOLOGGING存儲空間:表空間=<運行時表空間>在與各維的外鍵列對應(yīng)的列上創(chuàng)立bitmap索引(在索引入口,點擊…到添加索引窗口,點擊生成創(chuàng)立bitmap索引,對于星型查詢轉(zhuǎn)換應(yīng)該創(chuàng)立索引。對于第2個事實表應(yīng)該對索引PR_PROD_IDandDA_SMART_KEY重新命名,如下,以免重名)為索引設(shè)置存儲表空間<運行時索引表空間>對于warehouse中其他事實表進(jìn)行配置.配置WarehouseSequence在staging表中的配置:Sequence參數(shù):增量=10起始于=1配置Warehouse表在staging表中的配置:性能參數(shù):記錄到重做日志文件=NOLOGGING存儲空間:表空間=<運行時表空間>對于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對象為數(shù)據(jù)源,不要設(shè)置任何數(shù)據(jù)源或者方案.另外注意一下缺省操作模式,由于我們運行在Oracle9i,所有映射生成出MERGE代碼,我們希望以基于集的模式運行(SetBasedmode).如下:配置運行時參數(shù),選擇基于集為默認(rèn)的的操作方式設(shè)置缺省的審計層次為統(tǒng)計信息〔Statistics〕部署對象最好的部署對象方法是同類進(jìn)行一批批部署。例如部署所有與維相關(guān)的對象,選擇〞維〞節(jié)點然后從該處生成,然后從生成出的結(jié)果窗口中選擇全部對象然后按“部署〞。WarehouseBuilder自動確定部署相關(guān)對象的正確順序。對于各類對象,按照表、維,再到事實表這樣的一個順序。生成希望部署的一個或多個對象在點擊部署按鈕后將開始部署確認(rèn)所有部署都是正確的(看消息窗口)當(dāng)有問題時解決相關(guān)問題(在有些情況下,需要授予PL/SQL中用戶需要訪問的那些對象的select權(quán)限)繼續(xù)該模塊中的其他對象,直至全部部署至此你完成了數(shù)據(jù)倉庫系統(tǒng)在創(chuà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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)房屋買賣合同書
- 家庭農(nóng)場管理作業(yè)指導(dǎo)書
- 九年級語文課本海燕作品風(fēng)格與時代意義教學(xué)教案
- 2024-2025學(xué)年下學(xué)期高中英語選修四第一單元B卷
- 別墅房屋買賣合同
- 錫山區(qū)移動噴漆房施工方案
- 首飾禮品招標(biāo)方案
- 2025年統(tǒng)計學(xué) 1試題及答案
- 1.2 等腰三角形(2) 等邊三角形的性質(zhì)-八年級數(shù)學(xué)下冊10分鐘課前預(yù)習(xí)練(北師大版)(原卷版)
- 銅仁防滑靜音地板施工方案
- 2024年10月自考00058市場營銷學(xué)真題和答案
- 部隊安全保密教育課件
- 工程數(shù)學(xué)線性代數(shù)課后答案-同濟第五版
- 2024解析:第七章力-講核心(解析版)
- 2024解析:第十三章內(nèi)能-講核心(解析版)
- 大學(xué)生心理健康(上海交通大學(xué))知到智慧樹章節(jié)答案
- 心血管內(nèi)科醫(yī)療質(zhì)量控制
- 《文化遺產(chǎn)概論》課程教學(xué)大綱
- TD-T 1048-2016耕作層土壤剝離利用技術(shù)規(guī)范
- 《課堂管理方法與技巧》課件
- 乳腺外科診療指南技術(shù)操作規(guī)范
評論
0/150
提交評論