仓库建造者 培训资料_第1页
仓库建造者 培训资料_第2页
仓库建造者 培训资料_第3页
仓库建造者 培训资料_第4页
仓库建造者 培训资料_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

可修改欢送下载精品Word可修改欢送下载精品Word可修改欢送下载精品WordOracle9iWarehouseBuilder培训资料

目录TOC\o"1-3"\h\z简介 4提纲 4前提 5培训目标 5反应与意见 5Module1:在WarehouseBuilder中设置环境 6开始 6环境 6Module2创立数据源 8导入数据源元数据 8Module3设计数据仓库 11创立分段传输区〔StagingArea〕 11创立数据仓库模型 14Module4:建立映射及转换 20创立PL/SQLFunction 20导入一个已经存在的过程〔Procedure〕 20创立映射装载数据 20Module5:配置,部署及运行 29环境 29配置 29部署对象 32运行数据装载 33Module6:生命周期管理 35将数据源元数据的变化反映到OWB存储中 35对于目标的变化管理 36Module7:元数据报告 38从WarehouseBuilder客户端看 38

简介Oracle9iWarehouseBuilder(OWB)是Oracle完整智能解决方案中的一局部。其作用主要是完成数据仓库的设计及抽取、转换、装载设计(Extract,TransformandLoadETL)与生成。可以设计OracleDiscoverer的EndUserLayer并与Oracle9i数据库紧密集成。提纲本资料的目标是例示OWB的功能,因此中间没有什么重复工作,在某些方面较为简洁。另外,本资料没有论述如何建立数据仓库的模型及如何进行性能优化,该局部内容请参考相关Oracle资料。本资料分为以下几个局部,每一个针对OWB的一特定领域。Module1:建立环境

该模块描述如何建立环境。也给出了一些源数据的详细数据结构。

Module2:建立数据源

该模块让用户建立基于9i数据库种子对象得源数据模块。该步骤仅是整个解决方案中的第一步。在后面的阶段,我们将回头来改变数据源对象,以举例显示生命周期管理。

Module3:设计数据仓库

该模块显示WarehouseBuilder创立表、视图、方案的一些特征。在此局部我们将练习创立事实表及维。完成这些工作后,就能将数据载入这些结构中定下数据仓库。

Module4:设计映射与转换模型

OWB的核心功能是基于ETL过程,转换及进行它们的设计。本模块将展示如何利用OWB映射设计工具完成这些过程的设计。将充分利用前面在OWB中定义好的数据源与数据目标,允许客户化PL/SQL开发辅助数据转换。也将看到如何重用PL/SQL。Module5:配置,部署,运行

在设计完数据仓库后,下一步当然就是在数据库中安装它,并载入数据。本模块将展示如何配置在前面中创立的模块,并运行映射,载入数据。

Module6:生命周期管理

数据仓库是一个一直在进化的系统。为了处理数据源及数据目标的变化,OWB提供了用户数据源协调及数据仓库升级的手段。本局部将展示这些内容。

Module7:元数据报告

本模块是可选做的一局部,因为必须安装Oracle9iAS并正确配置。元数据报告模块将展示OWBBrowser的能力。该浏览器可以进行线性分析、影响分析及更多的报表。前提为完本钱培训,必须满足以下几点前提:安装Oracle9i数据库安装WarehouseBuilder及存储库有足够的权限以授予权限,创立用户,安装运行时,如果需要的话,还安装Browser企业管理器并设置,以能从OEM中调度jobOracleWorkflowset安装并设置以能创立工作流安装9iAS及Portal,如果练习元数据报告的话有一定的WarehouseBuilder根本概念知识有一定的Oracle9i数据库概念有一定的Oracle9iETL概念有一定的SQL及PL/SQL知识,才能在你自己的环境下写出客户化的代码培训目标本培训的几个目标是:对WarehouseBuilder的能力有一个综合认识利用WarehouseBuilder进行一个完整的设计、部署及运行周期反应与意见假设对本培训资料有何意见,请将意见反应给我们,以便我们改良和提高。请联系:闵文杰技术咨询参谋

Module1:在WarehouseBuilder中设置环境为开始始用WarehouseBuilder,我们首先必须创立一个工程〔project〕.我们取工程名XWEEK。开始将Xweek.zip文件移动到本地硬盘并解压。假设在C盘上,你也可以放在其他磁盘上,解压完后,将有如下目录:C– Xweek– SourceFiles SQLScripts建好这些目录后,开始进入WarehouseBuilder。登陆到WarehouseBuilder,并进入管理局部。可以如下2种方式实现。输入用户名及口令后,在“选择要翻开得工程〞处,点击“取消〞,就进入管理局部。输入用户名及口令后,在“选择要翻开得工程〞处,随便选一个工程翻开,然后使用控制台点击“管理〞按钮进行切换,就进入管理局部。在管理局部:高亮度“工程〞然后点鼠标右键,选择“创立工程〞。

(或者到管理菜单中选择“创立工程〞)给出一个名字,如“Xweek〞选择工程版本标签号(例如Xweek)点击完成按钮提交切换工程到新工程。现在就在该工程下开始工作。环境整个培训都是基于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中。驱动器为你解压zip文件的驱动器。文件格式: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创立数据源导入数据源元数据在本培训的第一局部,主要讲述定义数据源对象的结构。定义数据源对象的结构包括如下行为:定义和创立针对平面文件的数据源模块 定义和创立针对关系型数据库的数据源模块从数据源对象导入元数据到数据源模块在下面的段落中,将定义企业数据仓库和随之产生的数据集市的结构。创立模块,导入平面文件

本练习中,将创立平面文件模块,然后导入customers文件。将包括连接到后面customers表的地址列。在工程树中创立新模块,命名为SourceFiles选择GenericFileBasedApplication类型选中“继续导入元数据向导〞栏在向导中选择文件customer_address.txt抽样对各列重新命名如下:

C1Customer_IDC2StreetC3PostalCodeC4CityC5StateCodeC6CountryCode其他3个文件命名如下:CusSource1Customer1.txtC1FnameC2LnameC3MiddinitialC4PhonehomeC5Address1C6Address2C7CityC8StateC9ZipC10PhonebC11Cellphone Order_status_list.txtC1Status_CodeC2Status_DescSuppliers_list.txtC1Supplier_IDC2Supplier_nameC3Status完成该向导并提交元数据。创立OrderEntry模块并导入表在工程树中,创立新模块,命名Oracle_OE。选择GenericOracleDatabaseApplication作为模块类型,Oracle8i/9i为数据库版本。使用OracleDataDictionary并创立数据库链路(点击创立新数据库链路按钮)名字: OELink输入hostname,portandSID:本例中为localhost,1521,orcl用户名,口令(OE/OE)点击创立并测试选中“继续导入元数据向导〞选择全部对象导入完成导入。提交元数据。创立HumanResources模块并导入表在工程树中,创立新模块,命名Oracle_HR。选择GenericOracleDatabaseApplication作为模块类型,Oracle8i/9i为数据库版本。使用OracleDataDictionary并创立数据库链路(点击创立新数据库链路按钮)名字: HRLink输入hostname,portandSID:本例中为localhost,1521,orcl用户名,口令(HR/HR)点击创立并测试选中“继续导入元数据向导〞选择全部对象导入完成导入。提交元数据上面导入了数据源元数据,基于这些数据源,我们将创立数据仓库对象并从这些表中抽取数据。

Module3设计数据仓库数据仓库设计包括一个数据仓库方案〔即用户〕及一个中间区,用于分段传输〔staging〕信息。创立分段传输区〔StagingArea〕一个分段传输区是存放临时数据的地方以用于进一步处理。使用Oracle9iETL新的特性,例如外部表〔ExternalTables〕,该区变得多余了。本练习示范老代码的使用(e.g.使用SQL*Loader装载数据)及使用外部表〔ExternalTables〕的新的方式。建议两个练习都做,因为WarehouseBuilder也支持Oracle8.1.7数据库目标〔现在有许多这种应用〕。创立模块及数据对象Stagingarea包括许多由用户创立的表。下述步骤创立staging模块、表及映射:创立模块,命名为Staging选择数据仓库目标类型,其他默认。提交该元数据。翻开刚创立的模块。创立新的映射(命名为stg_customer_address_map)并最大化编辑器。拖取映射平面文件图标到画布上,从列表中选择customer_address_txt文件。拖取“映射表〞图标到画布上,选择第一项“创立未绑定的映射表〔不具有属性〕〞对话框。输入该新映射表的名字(stg_cust_addresses)使用自动映射映射整个平面文件到stg_cust_addresses(选择缺省项后点击开始)确认列的数据类型是正确的。(请使用varchar2代替char类型)为了在存储中建立该表,在对象stg_cust_addresses的头上点击右键,选择协调出站〔reconcileoutbound〕在警告对话框上点击“确定〞。选择第一项,“创立新的表〞并选择Staging,其为唯一的缺省值选项。关闭该映射并提交元数据。此时在存储库中即有了新的表和新的映射,对两者进行校验。后面我们将回到该映射并运行它。到此为止,该映射就完成了。其他Staging表和映射此处不再枚举。除上面的方法外,我们也可以使用创立表的向导创立新表,然后逐一输入列名。另外一种创立对象stg_cust_addresses的方法是是适用外部表〔ExternalTable〕功能。实现该方式如下所示:LogintoSQL*PlusasSYSDBA,以便于建立新用户创立用户名:Wh_Xweek及口令(Wh_Xweek)授予用户DBA权限(此处为简便使用,在现实世界中应谨慎使用)从OE用户,将orders表select权限授予给Wh_Xweek用户(grantselectonorderstowh_xweek;)连接到该用户从平面文件customer_address.txt创立外部表。在数据库中创立目录

Createdirectoryxweek_filesas‘c:\xweek\sourcefiles’;

创立外部表定义

CREATETABLEstg_cust_addresses_ext(CUSTOMER_IDNUMBER,STREETVARCHAR2(27),POSTALCODENUMBER,CITYVARCHAR2(16),STATECODEVARCHAR2(4),COUNTRYCODEVARCHAR2(2))ORGANIZATIONEXTERNAL(TYPEoracle_loaderDEFAULTDIRECTORYxweek_filesLOCATION('customer_address.txt'))REJECTLIMITUNLIMITED;在WarehouseBuilder中导入该表。此时,在WarehouseBuilder中有了2个顾客地址表,一个用于staging表,用于SQL*Loader装载数据,另外一个是利用外部表来访问。两者都在后面映射中使用。提交元数据。我们在staging区创立一个视图用于转换时间标记列为常规日期。在Staging模块中创立新视图。命名该视图为stg_orders并添加适当列,如下:

设定查询,并确认列的顺序如上所述。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提交元数据。第3个对象是基于平面文件,用于未来维的源数据表。可以使用前面所述stg_cust_addresses中两种机制中的任一种方式创立。在模块staging中创立一个表,用于存储从文件“Order_status_list.txt〞中的信息,命名为stg_order_status,命名映射为stg_ord_stat_map〔如果采用该种方式创立〕。列名

Status_Code

Status_Desc

确认表中列的数据类型正确。(将Char改为Varchar2)提交元数据。第四个对象也用于未来维的源数据表。可以使用前面所述stg_cust_addresses中两种机制中的任一种方式创立。在模块staging中创立一个表,用于存储从文件“Suppliers_list.txt〞中的信息,命名为stg_suppliers,命名映射为stg_suppliers_map〔如果采用该种方式创立〕。列名取名为:

supplier_ID

Supplier_Name

Status

确认表中列的数据类型正确。(将Char改为Varchar2)提交元数据。创立数据仓库模型在本局部,我们主要讨论定义目标数据仓库对象结构。该数据仓库是简单的星型模型,数据来源于用户OE,HR及Staging模块。主要关心的是Order及Inventory信息。该星型模型不保存详细订单信息,也就意味着订单详细在本数据仓库中没有。简化有时是一种商业分析的需要。事实表〔Facttables〕orders的事实表(name:Orders)收集有关定单的信息。包含以下度量〔measures〕:Quantity NumberAmount Number该事实表的相关维为:ProductsTimes(useSmartKeyPKondaylevel)CustomersSalesRepsOrderStatusInventory事实表(name:Inventory)保存有关产品库存的信息,包含以下度量〔measures〕:Quantity_on_Hand该事实表的相关维为(全部都是最低层次level与缺省值):ProductsTime(useSmartKeyPKondaylevel)WarehousesSuppliers维〔Dimensions〕从事实表看出,数据仓库中需要建立7个维表。为简便起见,各层次在属性上比拟紧凑。以下描述了各维的详细信息:*标有星号的属性为关键域,缺省被命名为‘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最后需要创立的维是时间维。使用WarehouseBuilder向导创立,最低级别为Day,可以选择你希望看到得时间维,如季、月。所有命名都是标准的。可以在时间维上创立多种层次。创立维表与事实表为了输入上面提到的信息,需要首先创立一个新的模块,命名为Warehouse。翻开该模块并:在维节点,选择创立维,然后利用向导创立维。在创立完每一个维后,进行提交作为创立维的最后一步,记得用向导创立一个时间维。同样也要提交。创立两个事实表,在事实表节点,利用向导创立记住要在维的最低层次上进行链接将外键重命名为描述性的名字(也可直接用默认值)选中从外关键字创立分段的唯一关键字。提交至此就完成了数据源、分段传输区及目标数据仓库的工作。下一步我们将创立映射以完成数据从数据源到数据仓库的工作。

Module4:建立映射及转换WarehouseBuilder允许在存储库中创立、导入及维护PL/SQL。本模块将展示如何做并在映射中利用它。映射将在本模块的后半局部练习。创立PL/SQLFunction为了创立一个函数〔function〕,在Warehouse模块中,翻开转换库,点鼠标右键创立一个新的function命名为GET_TIME_ID不要设定输入参数,点击。在窗口中输入如下代码,局部内容已按照格式给出,粗体局部为添加进去的。:

--initializevariablesherev_returnnumber;--mainbodyBEGINselectda_idintov_returnfromTIMESwheretimes.da_actual_date=sysdate;RETURNv_return;END;

保存,提交。导入一个已经存在的过程〔Procedure〕为了在WarehouseBuilder中重用已经存在的PL/SQL代码,进入需要使用存储过程的模块中选择导入,本例中,导入Warehouse模块创立一个指向HR的新的数据库链路以导入数据。选择导入,并只选中PL/SQL转换。将会看到两个对象。选择导入其中的一个或两个。验证导入可选择“添加到共享库〞创立映射装载数据下面我们创立映射将数据从不同数据源将数据抽取到数据仓库。首先是将数据装载入维表,然后再是事实表。映射维首先创立产品Products维。下面描述创立数据源到数据目标的映射。ProductsSourceobjects:Table: OracleOE.Product_InformationTable: OracleOE.Categories_tabTarget:Dimension: Warehouse.ProductsMappingActivities:在Warehouse模块中创立维wh_products_map添加适宜的数据操作符连接全部的列到joiner对于两个数据源基于category_id进行连接从joiner连接相应的列到目标维各列设置装载类型为INSERT/UPDATE验证并查看报告提交映射.

提示:TheUpdate:用于装载数据必须设为NO,以产生mergecodeOrder_StatusSourceobjects:Table: Staging.stg_order_statusSequence: Warehouse.wh_orderstat_seqTarget:Dimension: Warehouse.Order_StatusMappingActivities:在Warehouse模块中创立维wh_ord_stat_map添加适宜的数据操作符添加序列wh_orderstat_seq(在映射中创立完后将在新的存储库中创立一个新的序列,或者,事先创立好该序列,然后在映射中引用它)映射适宜的列到维中设置加载类型为INSERT/UPDATE〔鼠标右键点击维order_status标题,选择运算符属性,如图〕在运算符属性中选择“无约束条件〞。验证映射,检查报告提交映射提示:TheUpdate:用于装载数据必须设为NO,以产生mergecode。注:当使用外部表时,能看到不分段传输的优点。平面文件可立即从Warehouse映射中访问,能被join到其他对象中去。WarehousesSourceobjects:Table: OracleOE.WarehousesTable: OracleHR.LocationsTable: OracleHR.CountriesTarget:Dimension: Warehouse.WarehousesMappingActivities:在Warehouse模块中创立维wh_warehouses_map添加适宜的数据操作符将适宜的列添加到连接运算符joiner根据location_id及country_id进行join。连接joiner到目标维列设置装载类型为INSERT/UPDATE验证并查看报告提交映射

提示:TheUpdate:用于装载数据必须设为NO,以产生mergecode。CustomersSourceobjects:Table: OracleOE.CustomersTable: Staging.stg_cust_addresses Or Staging.stg_cust_addresses_extTable: OracleHR.CountriesLookup: OracleHR.employeesTarget:Dimension: Warehouse.CustomersMappingActivities:在Warehouse模块中创立维wh_customers_map添加适宜的数据操作符对customers创立关键字查找,,以决定顾客的客户经理名Lookup表为OracleHR.Employees添加lookup运算符在account_mgr_id及employee_id间创立匹配条件(选择EMP_EMP_ID_PK)将OracleHR.Employee.last_name输出到运算符joiner列匹配其他适宜列到joiner运算符根据customer_id及country_id/countrycode连接数据源对象连接joiner运算符其他列到目标维中通过joiner运算符在stg_cust_addresses_ext.postalcode与CS_POSTAL_CODE间添加TO_CHAR转换并确保转换正确。设置装载类型为INSERT/UPDATE验证并查看报告提交映射

提示:TheUpdate:用于装载数据必须设为NO,以产生mergecode。注:当使用外部表时,能看到不分段传输的优点。平面文件可立即从Warehouse映射中访问,能被join到其他对象中去。Sales_RepsSourceobjects:Table: OracleOE.OrdersTable: OracleHR.EmployeesTable: OracleHR.CountriesTable: OracleHR.RegionsTable: OracleHR.LocationsTable: OracleHR.DepartmentsLookup: OracleHR.EmployeesTarget:Dimension: Warehouse.Sales_RepsMappingActivities:在Warehouse模块中创立维wh_SalesReps_map添加第一个运算符的数据操作符集。OracleHR.CountriesOracleHR.RegionsOracleHR.LocationsOracleHR.Departments添加适宜的列到第一个joiner运算符基于location_id、country_id及region_id连接数据源对象。添加第二个运算符的数据操作符集OracleOE.OrdersOracleHR.Employees添加适宜的列到第二个joiner运算符基于sales_rep_id=employee_id连接数据源。添加第三个joiner运算符,并从2个joiner运算符连接目标需要的列到第三个joiner基于department_id创立连接条件。创立lookup运算符,为每一个sales_rep查找manager’s名字,使用OracleHR_Employees为lookup表,重命名为运算符MGR_LOOKUP创立EMP_EMP_ID_PK上的lookup条件,连接维last_name到维manager列从第三个joiner运算符连接到目标维设置装载类型为INSERT/UPDATE验证并查看报告提交映射

提示:TheUpdate:用于装载数据必须设为NO,以产生mergecode。SuppliersSourceobjects:Table: Staging.stg_suppliersTarget:Dimension: Warehouse.SuppliersMappingActivities:在Warehouse模块中创立维wh_suppliers_map添加适宜的数据操作符映射适宜的列到目标设置装载类型为INSERT/UPDATE验证并查看报告提交映射

提示:TheUpdate:用于装载数据必须设为NO,以产生mergecode。注:当使用外部表时,能看到不分段传输的优点。平面文件可立即从Warehouse映射中访问,能被join到其他对象中去。Times时间维的数据在创立时即根据其配置属性产生了,无需再为时间维创立映射装载数据。映射事实表事实表映射一般来说比维表映射要复杂一些。下面描述了建立事实映射的一般性的做法。Inventory事实表数据源:表: OracleOE.Inventories视图: OracleOE.Products函数: Warehouse.Get_Time_Id维: Warehouse.Suppliers(aslookup)维: Warehouse.Products(aslookup)维: Warehouse.Warehouses(aslookup)目标:事实表: Warehouse.Inventory建立映射:在Warehouse模块中创立名为wh_inventory_map的映射将表OracleOE.Inventories和视图OracleOE.Products添加到映射中使用product_id连接2个数据源一条对数据清洗的商业规那么是:没有供给商的存货数据不能装入数据仓库。因此,如下:建立一个针对supplier维的lookup从join连接supplierid到该lookup运算符。当没有找到时,将Inventory中的记录劈分〔split〕到一个错误表中〔该表必须创立,并命名为wh_inventory_error〕当找到时,那么将数据移入事实表确信两个表都有时间戳timestampid(先前创立的函数GET_TIME_ID就能被两个表用于获取time_id)另一条对数据清洗的商业规那么是:当Inventory中的值没找到时给warehouse中附一个缺省值。用–1作为缺省值,这在本练习的后面实现。利用求和(SUM)对Quantity-on-Hand进行聚集运算,只针对事实表装载做聚集,不要对错误记录表做。(因为你一旦这么做,那么所有记录错误的详细信息将丧失)不要忘了协调新的错误表,以在存储中创立它。(确保是在Warehouse模块中)设置事实表为INSERT/UPDATE,错误记录表为INSERT状态。验证该映射,并改正可能出现的错误提交工作.OrdersFactSourceobjects:View: Staging.stg_ordersTable: OracleOE.order_itemsDimension: Warehouse.Order_Status(aslookup)Dimension: Warehouse.Times(aslookup)Target:Fact: Warehouse.OrdersMappingActivities:在Warehouse模块中创立名为wh_orders_map的映射添加适宜的数据操作符对orders根据date进行排序,最早的数据先处理。确保正确的顺序存储。使用order_id连接排序后的stg_orders及order_items进行连接对order_status进行查找对Times进行查找确保只有正确状态的订单信息才能进入事实表,本例中,我们存储没有订单状态的信息。创立表达式:unit_price乘quantity经过过滤和计算后,需要进行聚集。设置装载类型为INSERT/UPDATE验证并查看报告提交映射在创立完这些元数据后,下一步就是在物理上创立所有对象。下一个模块我们就是完成数据仓库的创立。

Module5:配置,部署及运行在做该步之前,请先确认到目前为止的元数据均正确.配置依赖于你希望将映射及各对象存放在什么地方。环境一般的情形是,会有一些远程数据源,在本培训中都是在一个机器上做,源也在本地,即数据仓库与数据源均在一个库内.用户信息建议的用户信息是:建一个用户owb/owb用于存放数据仓库对象。授予该用户DBA权限(本处是快捷方式,在真实的环境中,用户一般不会有该权限)使用WarehouseBuilderRuntimeAssistant安装WarehouseRuntime在该用户下.配置配置Warehouse模块该模块有些项可以进行配置,下面是需要配置的列表:部署系统类型:目标数据库类型=Oracle9i,这是对产生运行代码唯一需要配置的参数运行审计:审计级别=Statistics运行目录;队列监听程序目录=OWB_HOME\Workflow\队列监听程序主机=Hostname〔本例中为localhost〕I标识名称=<空白>主应用程序短名称=ORA<即缺省>应用程序短名称=WB<即缺省>方案所有者=OWB_RUN<运行时的用户名>连接字符串=<Net8连接〔远程〕数据库,为了平安原因,在下面指定各参数:计算机=运行该作业的〔远程〕数据库计算机名端口=〔远程〕数据库监听端口,缺省1521SID=远程数据库SID顶级目录=..\..\codegen<即缺省>可部署=true<即缺省>数据库链路;创立该模块需要的数据库链路.本例子中没有必要,因为数据源、数据仓库、元数据存储都在一个数据库内〔如果三者为三个数据库,那么三者之间都需要建立数据库链路〕。NOTE1:设置数据仓库目标为Oracle9i将会在映射中产生MERGE代码.NOTE2:两个模块(StagingandWarehouse)都应以相同方式配置.配置StagingTables配置staging表的一些参数:性能参数:纪录到重做日志文件=NOLOGGING存储表空间=<运行时的表空间>对staging区所有各表都进行配置。配置Staging映射在各映射上配置以下参数:设置选择性文件(数据文件,错误文件,不一致文件)或者位置〔如果需要的话〕选择直接模式加载或者传统模式加载设置错误修理及其他为了正确性的各参数.配置Warehouse模块各维对于staging表需要配置的一些内容是:性能参数:记录到重做日志文件=NOLOGGING存储空间:表空间=<运行时表空间>对于时间维,一定要配置生成选项开始日期、结束日期对warehouse所有各维都进行配置。配置Warehouse各事实表对于各staging表配置:性能参数:记录到重做日志文件=NOLOGGING存储空间:表空间=<运行时表空间>在与各维的外键列对应的列上创立bitmap索引(在索引入口,点击…到添加索引窗口,点击生成创立bitmap索引,对于星型查询转换应该创立索引。对于第2个事实表应该对索引PR_PROD_IDandDA_SMART_KEY重新命名,如下,以免重名)为索引设置存储表空间<运行时索引表空间>对于warehouse中其他事实表进行配置.配置WarehouseSequence在staging表中的配置:Sequence参数:增量=10起始于=1配置Warehouse表在staging表中的配置:性能参数:记录到重做日志文件=NOLOGGING存储空间:表空间=<运行时表空间>对于warehouse中其他表进行配置..配置Warehouse映射虽然本例中这些映射的所有数据源都来自于同一数据库,但是你想确认它们不需要任何数据库链路dblinks连接数据源,如下:配置数据源操作符并设置到数据源的数据库链路为NULL设置方案,即用户名(例如OE)注为防止staging对象为数据源,不要设置任何数据源或者方案.另外注意一下缺省操作模式,由于我们运行在Oracle9i,所有映射生成出MERGE代码,我们希望以基于集的模式运行(SetBasedmode).如下:配置运行时参数,选择基于集为默认的的操作方式设置缺省的审计层次为统计信息〔Statistics〕部署对象最好的部署对象方法是同类进行一批批部署。例如部署所有与维相关的对象,选择〞维〞节点然后从该处生成,然后从生成出的结果窗口中选择全部对象然后按“部署〞。WarehouseBuilder自动确定部署相关对象的正确顺序。对于各类对象,按照表、维,再到事实表这样的一个顺序。生成希望部署的一个或多个对象在点击部署按钮后将开始部署确认所有部署都是正确的(看消息窗口)当有问题时解决相关问题(在有些情况下,需要授予PL/SQL中用户需要访问的那些对象的select权限)继续该模块中的其他对象,直至全部部署至此你完成了数据仓库系统在创立完各类对象后,下面开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论