




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle9i Warehouse Builder培训资料 提交人:Oracle Sales Consultant 提交日期: 版本号:v1.0文档控制变更记录 48日期作者版本号变更参考文件OCT 30, 2002闵文杰V1.0审阅日期姓名职位目 录简介4提纲4前提5培训目标5反馈与意见5Module 1: 在Warehouse Builder中设置环境6开始6环境6Module 2 创建数据源8导入数据源元数据8Module 3 设计数据仓库11创建分段传输区(Staging Area)11创建数据仓库模型14Module 4: 建立映射及转换20创建 PL/SQL Function20导入一个已经存在的过程(Procedure)20创建映射装载数据20Module 5: 配置,部署及运行29环境29配置29部署对象32运行数据装载33Module 6: 生命周期管理35将数据源元数据的变化反映到OWB 存储中35对于目标的变化管理36Module 7: 元数据报告38从Warehouse Builder 客户端看38简介Oracle 9i Warehouse Builder (OWB) 是Oracle完整智能解决方案中的一部分。其作用主要是完成数据仓库的设计及抽取、转换、装载设计(Extract, Transform and Load ETL)与生成。可以设计Oracle Discoverer的End User Layer 并与Oracle 9i 数据库紧密集成。提纲本资料的目标是例示OWB的功能,因此中间没有什么重复工作,在某些方面较为简洁。另外,本资料没有论述如何建立数据仓库的模型及如何进行性能优化,该部分内容请参考相关Oracle资料。本资料分为以下几个部分,每一个针对OWB的一特定领域。 Module 1: 建立环境该模块描述如何建立环境。也给出了一些源数据的详细数据结构。 Module 2: 建立数据源该模块让用户建立基于9i数据库种子对象得源数据模块。该步骤仅是整个解决方案中的第一步。在后面的阶段,我们将回头来改变数据源对象,以举例显示生命周期管理。 Module 3: 设计数据仓库该模块显示Warehouse Builder 创建表、视图、方案的一些特征。在此部分我们将练习创建事实表及维。完成这些工作后,就能将数据载入这些结构中定下数据仓库。 Module 4: 设计映射与转换模型OWB 的核心功能是基于ETL 过程,转换及进行它们的设计。本模块将展示如何利用OWB 映射设计工具完成这些过程的设计。将充分利用前面在OWB中定义好的数据源与数据目标,允许客户化PL/SQL 开发辅助数据转换。也将看到如何重用PL/SQL。 Module 5: 配置,部署,运行在设计完数据仓库后,下一步当然就是在数据库中安装它,并载入数据。本模块将展示如何配置在前面中创建的模块,并运行映射,载入数据。 Module 6: 生命周期管理数据仓库是一个一直在进化的系统。为了处理数据源及数据目标的变化,OWB 提供了用户数据源协调及数据仓库升级的手段。本部分将展示这些内容。 Module 7: 元数据报告本模块是可选做的一部分,因为必须安装Oracle 9iAS 并正确配置。元数据报告模块将展示OWB Browser的能力。该浏览器可以进行线性分析、影响分析及更多的报表。前提为完成本培训,必须满足以下几点前提:1. 安装Oracle 9i 数据库2. 安装Warehouse Builder及存储库 3. 有足够的权限以授予权限,创建用户,安装运行时,如果需要的话,还安装Browser4. 企业管理器并设置,以能从OEM中调度job5. Oracle Workflowset安装并设置以能创建工作流6. 安装9iAS 及Portal,如果练习元数据报告的话7. 有一定的Warehouse Builder基本概念知识8. 有一定的Oracle 9i 数据库概念9. 有一定的Oracle 9i ETL 概念10. 有一定的SQL 及 PL/SQL 知识,才能在你自己的环境下写出客户化的代码培训目标本培训的几个目标是:1. 对Warehouse Builder 的能力有一个综合认识2. 利用Warehouse Builder 进行一个完整的设计、部署及运行周期反馈与意见若对本培训资料有何意见,请将意见反馈给我们,以便我们改进和提高。请联系:闵文杰技术咨询顾问Module 1: 在Warehouse Builder中设置环境为开始始用Warehouse Builder,我们首先必须创建一个项目(project).我们取项目名XWEEK。开始将Xweek.zip文件移动到本地硬盘并解压。假设在C盘上,你也可以放在其他磁盘上,解压完后,将有如下目录:C Xweek SourceFilesSQLScripts建好这些目录后,开始进入Warehouse Builder。登陆到Warehouse Builder,并进入管理部分。可以如下2种方式实现。1. 输入用户名及口令后,在“选择要打开得项目”处,点击“取消”,就进入管理部分。 2. 输入用户名及口令后,在“选择要打开得项目”处,随便选一个项目打开,然后使用控制台点击“管理”按钮进行切换,就进入管理部分。在管理部分:1. 高亮度“项目”然后点鼠标右键,选择“创建项目”。(或者到管理菜单中选择“创建项目”)2. 给出一个名字,如“Xweek”3. 选择项目版本标签号(例如Xweek)4. 点击完成按钮提交5. 切换项目到新项目。现在就在该项目下开始工作。环境整个培训都是基于Oracle9i中生成的用户对象。以下为包括这些表的对象列表。Order Entry用户名:OE口令:OE (default)表名-CUSTOMERSINVENTORIESORDERSORDER_ITEMSPRODUCT_DESCRIPTIONSPRODUCT_INFORMATIONPRODUCT_REF_LIST_NESTEDTABSUBCATEGORY_REF_LIST_NESTEDTABWAREHOUSESHuman Resources用户名:HR口令:HR (default)TABLE_NAME-COUNTRIESDEPARTMENTSEMPLOYEESJOBSJOB_HISTORYLOCATIONSREGIONSCustomer Addresses顾客地址存储在以逗号分割的平面文件中。文件名为Customer_address.txt,存储在文件夹XweekSourceFiles中。 驱动器为你解压zip文件的驱动器。文件格式:Customer ID,Streetname and number,Zip/postal Code,City Name,State/Province Code,CountryCode例子:101,514 W Superior St,46901,Kokomo,IN,US 102,2515 Bloyd Ave,46218,Indianapolis,IN,US 103,8768 N State Rd 37,47404,Bloomington,IN,US 104,6445 Bay Harbor Ln,46254,Indianapolis,IN,US 105,4019 W 3Rd St,47404,Bloomington,IN,US 106,1608 Portage Ave,46616,South Bend,IN,US852,1539 Stripes Rd,3413,Baden-Daettwil,AG,CH 853,1540 Stripes Crt,3413,Baden-Daettwil,AG,CH 905,1592 Silverado St,361123,Bangalore,Kar,IN 906,1593 Silverado St,361112,Bangalore,Kar,IN Module 2 创建数据源导入数据源元数据在本培训的第一部分,主要讲述定义数据源对象的结构。定义数据源对象的结构包括如下行为: 定义和创建针对平面文件的数据源模块 定义和创建针对关系型数据库的数据源模块 从数据源对象导入元数据到数据源模块在下面的段落中,将定义企业数据仓库和随之产生的数据集市的结构。创建模块,导入平面文件本练习中,将创建平面文件模块,然后导入customers 文件。将包括连接到后面customers 表的地址列。1. 在项目树中创建新模块,命名为SourceFiles2. 选择Generic File Based Application类型 3. 选中“继续导入元数据向导”栏 4. 在向导中选择文件customer_address.txt 5. 抽样 6. 对各列重新命名如下:C1Customer_IDC2StreetC3PostalCodeC4CityC5StateCodeC6CountryCode7. 其他3个文件命名如下:CusSource1Customer1.txtC1FnameC2LnameC3MiddinitialC4PhonehomeC5Address1C6Address2C7CityC8StateC9ZipC10PhonebC11CellphoneOrder_status_list.txtC1Status_CodeC2Status_DescSuppliers_list.txtC1Supplier_IDC2Supplier_nameC3Status8. 完成该向导并提交元数据。创建Order Entry模块并导入表1. 在项目树中,创建新模块,命名Oracle_OE。2. 选择Generic Oracle Database Application 作为模块类型,Oracle 8i/9i 为数据库版本。3. 使用Oracle Data Dictionary 并创建数据库链路 (点击创建新数据库链路按钮)a. 名字:OELinkb. 输入hostname, port and SID:本例中为localhost,1521,orclc. 用户名,口令 (OE/OE)d. 点击创建并测试4. 选中 “继续导入元数据向导”5. 选择全部对象导入6. 完成导入。7. 提交元数据。创建Human Resources 模块并导入表8. 在项目树中,创建新模块,命名Oracle_HR。9. 选择Generic Oracle Database Application 作为模块类型,Oracle 8i/9i 为数据库版本。10. 使用Oracle Data Dictionary 并创建数据库链路 (点击创建新数据库链路按钮)a. 名字:HRLinkb. 输入hostname, port and SID:本例中为localhost,1521,orclc. 用户名,口令 (HR/HR)d. 点击创建并测试11. 选中 “继续导入元数据向导”12. 选择全部对象导入13. 完成导入。1. 提交元数据上面导入了数据源元数据,基于这些数据源,我们将创建数据仓库对象并从这些表中抽取数据。Module 3 设计数据仓库数据仓库设计包括一个数据仓库方案(即用户)及一个中间区,用于分段传输(staging)信息。创建分段传输区(Staging Area)一个分段传输区是存放临时数据的地方以用于进一步处理。使用Oracle 9i ETL 新的特性,例如外部表(External Tables),该区变得多余了。本练习示范老代码的使用(e.g. 使用SQL*Loader装载数据)及使用外部表(External Tables)的新的方式。 建议两个练习都做,因为Warehouse Builder也支持Oracle 8.1.7数据库目标(现在有许多这种应用)。创建模块及数据对象Staging area 包括许多由用户创建的表。下述步骤创建staging 模块、表及映射:1. 创建模块,命名为Staging2. 选择数据仓库目标类型,其他默认。3. 提交该元数据。4. 打开刚创建的模块。5. 创建新的映射(命名为stg_customer_address_map) 并最大化编辑器。6. 拖取映射平面文件图标到画布上,从列表中选择customer_address_txt 文件。7. 拖取“映射表”图标到画布上,选择第一项 “创建未绑定的映射表(不具有属性)”对话框。 8. 输入该新映射表的名字(stg_cust_addresses)9. 使用自动映射映射整个平面文件到 stg_cust_addresses (选择缺省项后点击开始)10. 确认列的数据类型是正确的。 (请使用varchar2 代替char类型) 11. 为了在存储中建立该表,在对象stg_cust_addresses的头上点击右键,选择协调出站(reconcile outbound) 12. 在警告对话框上点击“确定”。13. 选择第一项,“创建新的表” 并选择Staging,其为唯一的缺省值选项。14. 关闭该映射并提交元数据。15. 此时在存储库中即有了新的表和新的映射,对两者进行校验。16. 后面我们将回到该映射并运行它。到此为止,该映射就完成了。其他Staging表和映射此处不再枚举。除上面的方法外,我们也可以使用创建表的向导创建新表,然后逐一输入列名。另外一种创建对象stg_cust_addresses 的方法是是适用外部表(External Table)功能。实现该方式如下所示:1. Log into SQL*Plus as SYSDBA,以便于建立新用户2. 创建用户名:Wh_Xweek 及口令 (Wh_Xweek)3. 授予用户 DBA 权限(此处为简便使用,在现实世界中应谨慎使用)4. 从 OE 用户, 将orders表select权限授予给Wh_Xweek用户 (grant select on orders to wh_xweek;)5. 连接到该用户6. 从平面文件customer_address.txt创建外部表。 a. 在数据库中创建目录Create directory xweek_files as c:xweeksourcefiles;b. 创建外部表定义CREATE TABLE stg_cust_addresses_ext (CUSTOMER_ID NUMBER,STREET VARCHAR2(27),POSTALCODE NUMBER,CITY VARCHAR2(16),STATECODE VARCHAR2(4),COUNTRYCODE VARCHAR2(2)ORGANIZATION EXTERNAL(TYPE oracle_loader DEFAULT DIRECTORY xweek_files LOCATION (customer_address.txt)REJECT LIMIT UNLIMITED;7. 在Warehouse Builder 中导入该表。8. 此时,在Warehouse Builder 中有了2个顾客地址表,一个用于staging 表,用于SQL*Loader装载数据,另外一个是利用外部表来访问。两者都在后面映射中使用。9. 提交元数据。我们在staging区创建一个视图用于转换时间标记列为常规日期。1. 在Staging 模块中创建新视图。2. 命名该视图为 stg_orders 并添加适当列,如下:3. 设定查询,并确认列的顺序如上所述。select order_id, to_date( to_char(order_date , DD-MON-YYYY HH24:MI:SS ) , DD-MON-YYYY HH24:MI:SS ) order_date, order_mode, customer_id, case order_status when 0 then ENT when 1 then VER when 2 then BKD when 3 then BIL when 4 then SPD when 5 then HOL when 6 then CCK when 7 then DMG when 8 then RET when 9 then INV when 10 then CAN else NON end, order_total, sales_rep_id, promotion_idfrom oe.orders4. 提交元数据。第3个对象是基于平面文件,用于未来维的源数据表。可以使用前面所述stg_cust_addresses中两种机制中的任一种方式创建。1. 在模块 staging 中创建一个表,用于存储从文件 “Order_status_list.txt” 中的信息,命名为stg_order_status,命名映射为 stg_ord_stat_map(如果采用该种方式创建)。 2. 列名Status_CodeStatus_Desc3. 确认表中列的数据类型正确。(将 Char 改为 Varchar2)4. 提交元数据。第四个对象也用于未来维的源数据表。可以使用前面所述stg_cust_addresses中两种机制中的任一种方式创建。1. 在模块 staging 中创建一个表,用于存储从文件 “Suppliers_list.txt” 中的信息,命名为stg_suppliers,命名映射为 stg_suppliers_map(如果采用该种方式创建)。2. 列名取名为:supplier_IDSupplier_NameStatus3. 确认表中列的数据类型正确。(将 Char 改为 Varchar2)4. 提交元数据。创建数据仓库模型在本部分,我们主要讨论定义目标数据仓库对象结构。该数据仓库是简单的星型模型,数据来源于用户 OE, HR 及 Staging 模块。 主要关心的是Order 及 Inventory 信息。该星型模型不保存详细订单信息,也就意味着订单详细在本数据仓库中没有。简化有时是一种商业分析的需要。事实表(Fact tables)orders的事实表 (name: Orders) 收集有关定单的信息。包含以下度量(measures):QuantityNumberAmountNumber该事实表的相关维为:ProductsTimes (use Smart Key PK on day level)CustomersSalesRepsOrderStatusInventory 事实表(name: Inventory) 保存有关产品库存的信息,包含以下度量(measures):Quantity_on_Hand该事实表的相关维为(全部都是最低层次level与缺省值):ProductsTime (use Smart Key PK on day level)WarehousesSuppliers维(Dimensions)从事实表看出,数据仓库中需要建立7个维表。为简便起见,各层次在属性上比较紧凑。以下描述了各维的详细信息:* 标有星号的属性为关键域,缺省被命名为ID 。将其改名为如下所示。维表名维前缀ProductsPDLevel NameLevel PrefixCategoryCTProductPRLevel NameAttribute Datatype/LengthCategory*Prod_CategoryNumberProd_Cat_NameVarchar2(50)Prod_Cat_DescVarchar2(1000)Product*Prod_IDNumber Prod_NameVarchar2(125)Prod_DescVarchar2(2000)Prod_List_PriceNumber (precision 8,scale 2)Prod_Min_PriceNumber (precision 8, scale 2)Hierarchy NameHierarchy PrefixProd_RollupProd_RollupHierarchy NameLevelsProd_RollupCategoryProduct维表名维前缀Order_StatusOSLevel NameLevel PrefixStatusSTLevel NameAttribute Datatype/LengthStatus*Status_IDNumberStatus_CodeVarchar2(3)Status_DescVarchar2(15)Hierarchy NameHierarchy PrefixStat_RollupStat_RollupHierarchy NameLevelsStat_RollupStatus维表名维前缀WarehousesWHLevel NameLevel PrefixWarehouseWHLocationLNCountryCTLevel NameAttribute Datatype/LengthCountry*Country_IDVarchar2(2)CountryVarchar2(50)Location*Location_IDNumberStreetVarchar2(40)Postal_codeVarchar2(12)CityVarchar2(40)State_ProvinceVarchar2(30)Warehouse*WH_IDNumber WarehouseVarchar2(50)Hierarchy NameHierarchy PrefixWH_RollupWH_RollupHierarchy NameLevelsWH_RollupCountryLocationWarehouse维表名维前缀CustomersCSLevel NameLevel PrefixCountryCTCustomerCSLevel NameAttribute Datatype/LengthCountry*Country_IDVarchar2(2)CountryVarchar2(50)Customer*Cust_IDNumber Cust_First_NameVarchar2(40)Cust_Last_NameVarchar2(40)StreetVarchar2(40)Postal_codeVarchar2(12)CityVarchar2(40)State_ProvinceVarchar2(30)Account_MgrVarchar2(25)Hierarchy NameHierarchy PrefixCust_RollupCust _RollupHierarchy NameLevelsCust _RollupCountryCustomer维表名维前缀Sales_RepsSRLevel NameLevel PrefixSales_RepSRCountryCTRegionRGLevel NameAttribute Datatype/LengthCountry*Country_IDVarchar2(2)CountryVarchar2(50)Region*Region_IDNumberRegionVarchar2(40)Sales_Rep*SalesRep_IDNumber First_NameVarchar2(50)Last_NameVarchar2(50)ManagerVarchar2(50)DepartmentVarchar2(50)Hierarchy NameHierarchy PrefixSalesRep_RollupSalesRep_RollupHierarchy NameLevelsSalesRep_RollupRegionCountrySales_Rep维表名维前缀SuppliersSPLevel NameLevel PrefixSupplierSPLevel NameAttribute Datatype/LengthSupplier*Supplier_IDNumberSupplier_NameVarchar2(35)Supplier_StatusVarchar2(10)Hierarchy NameHierarchy PrefixSupp_RollupSupp_RollupHierarchy NameLevelsSupp_RollupSuppliers最后需要创建的维是时间维。 使用Warehouse Builder向导创建,最低级别为Day,可以选择你希望看到得时间维,如季、月。所有命名都是标准的。可以在时间维上创建多种层次。创建维表与事实表为了输入上面提到的信息,需要首先创建一个新的模块,命名为Warehouse。打开该模块并:1. 在维节点,选择创建维,然后利用向导创建维。2. 在创建完每一个维后,进行提交3. 作为创建维的最后一步,记得用向导创建一个时间维。4. 同样也要提交。5. 创建两个事实表,在事实表节点,利用向导创建6. 记住要在维的最低层次上进行链接7. 将外键重命名为描述性的名字(也可直接用默认值)8. 选中从外关键字创建分段的唯一关键字。 9. 提交至此就完成了数据源、分段传输区及目标数据仓库的工作。下一步我们将创建映射以完成数据从数据源到数据仓库的工作。Module 4: 建立映射及转换Warehouse Builder 允许在存储库中创建、导入及维护PL/SQL。本模块将展示如何做并在映射中利用它。映射将在本模块的后半部分练习。创建 PL/SQL Function1. 为了创建一个函数(function),在Warehouse 模块中,打开转换库,点鼠标右键创建一个新的function 2. 命名为GET_TIME_ID3. 不要设定输入参数,点击 。4. 在窗口中输入如下代码,部分内容已按照格式给出,粗体部分为添加进去的。:-initialize variables herev_return number;- main bodyBEGIN select da_id into v_return from TIMES where times.da_actual_date = sysdate; RETURN v_return;END;5. 保存,提交。导入一个已经存在的过程(Procedure)1. 为了在Warehouse Builder中重用已经存在的PL/SQL 代码,进入需要使用存储过程的模块中选择导入,本例中,导入Warehouse 模块2. 创建一个指向HR的新的数据库链路以导入数据。3. 选择导入,并只选中PL/SQL转换。4. 将会看到两个对象。选择导入其中的一个或两个。5. 验证导入6. 可选择“添加到共享库”创建映射装载数据下面我们创建映射将数据从不同数据源将数据抽取到数据仓库。首先是将数据装载入维表,然后再是事实表。映射维首先创建产品Products维。下面描述创建数据源到数据目标的映射。ProductsSource objects:Table:OracleOE.Product_InformationTable:OracleOE.Categories_tabTarget:Dimension:Warehouse.ProductsMapping Activities:1. 在Warehouse模块中创建维 wh_products_map 2. 添加合适的数据操作符3. 连接全部的列到joiner4. 对于两个数据源基于category_id进行连接 5. 从joiner连接相应的列到目标维各列6. 设置装载类型为INSERT/UPDATE7. 验证并查看报告8. 提交映射.提示: The Update: 用于装载数据必须设为NO,以产生merge codeOrder_StatusSource objects:Table:Staging.stg_order_statusSequence:Warehouse.wh_orderstat_seqTarget:Dimension:Warehouse.Order_StatusMapping Activities:1. 在Warehouse模块中创建维wh_ord_stat_map2. 添加合适的数据操作符3. 添加序列 wh_orderstat_seq (在映射中创建完后将在新的存储库中创建一个新的序列,或者,事先创建好该序列,然后在映射中引用它)4. 映射合适的列到维中5. 设置加载类型为 INSERT/UPDATE(鼠标右键点击维order_status标题,选择运算符属性,如图)6. 在运算符属性中选择“无约束条件”。 7. 验证映射,检查报告8. 提交映射提示: The Update: 用于装载数据必须设为NO,以产生merge code。注: 当使用外部表时,能看到不分段传输的优点。平面文件可立即从Warehouse映射中访问,能被join到其他对象中去。WarehousesSource objects:Table:OracleOE.WarehousesTable:OracleHR.LocationsTable:OracleHR.CountriesTarget:Dimension:Warehouse.WarehousesMapping Activities:1. 在Warehouse模块中创建维wh_warehouses_map 2. 添加合适的数据操作符3. 将合适的列添加到连接运算符 joiner4. 根据location_id 及 country_id 进行join。5. 连接joiner 到目标维列6. 设置装载类型为INSERT/UPDATE 7. 验证并查看报告8. 提交映射提示: The Update: 用于装载数据必须设为NO,以产生merge code。CustomersSource objects:Table:OracleOE.CustomersTable:Staging.stg_cust_addressesOr Staging.stg_cust_addresses_extTable:OracleHR.CountriesLookup:OracleHR.employeesTarget:Dimension:Warehouse.CustomersMapping Activities:1. 在Warehouse模块中创建维wh_customers_map2. 添加合适的数据操作符3. 对customers创建关键字查找, ,以决定顾客的客户经理名a. Lookup表为OracleHR.Employeesb. 添加lookup运算符 c. 在account_mgr_id 及employee_id 间创建匹配条件(选择 EMP_EMP_ID_PK)d. 将OracleHR.Employee.last_name 输出到运算符joiner 列4. 匹配其他合适列到joiner运算符5. 根据customer_id 及country_id/countrycode连接数据源对象 6. 连接joiner运算符其他列到目标维中7. 通过joiner运算符在stg_cust_addresses_ext.postalcode与CS_POSTAL_CODE间添加TO_CHAR转换并确保转换正确。8. 设置装载类型为INSERT/UPDATE 9. 验证并查看报告10. 提交映射提示: The Update: 用于装载数据必须设为NO,以产生merge code。注: 当使用外部表时,能看到不分段传输的优点。平面文件可立即从Warehouse映射中访问,能被join到其他对象中去。Sales_RepsSource objects:Table:OracleOE.OrdersTable:OracleHR.EmployeesTable:OracleHR.CountriesTable:OracleHR.RegionsTable:OracleHR.LocationsTable: OracleHR.DepartmentsLookup:OracleHR.EmployeesTarget:Dimension:Warehouse.Sales_RepsMapping Activities:1. 在Warehouse模块中创建维 wh_SalesReps_map2. 添加第一个运算符的数据操作符集。a. OracleHR.Countriesb. OracleHR.Regionsc. OracleHR.Locationsd. OracleHR.Departments3. 添加合适的列到第一个joiner运算符4. 基于location_id、country_id 及 region_id 连接数据源对象。5. 添加第二个运算符的数据操作符集a. OracleOE.Orders b. OracleHR.Employees6. 添加合适的列到第二个joiner运算符7. 基于sales_rep_id = employee_id连接数据源。8. 添加第三个joiner 运算符,并从2个joiner 运算符连接目标需要的列到第三个joiner9. 基于department_id创建连接条件。10. 创建lookup 运算符,为每一个sales_rep查找managers名字,使用OracleHR_Employees为lookup表,重命名为运算符 MGR_LOOKUP11. 创建 EMP_EMP_ID_PK 上的lookup 条件,连接维last_name 到维manager列12. 从第三个joiner 运算符连接到目标维13. 设置装载类型为INSERT/UPDATE 14. 验证并查看报告15. 提交映射提示: The Update: 用于装载数据必须设为NO,以产生merge code。SuppliersSource objects:Table:Staging.stg_suppliersTarget:Dimension:Warehouse.SuppliersMapping Activities:1. 在Warehouse模块中创建维 wh_suppliers_map2. 添加合适的数据操作符3. 映射合适的列到目标4. 设置装载类型为INSERT/UPDATE 5. 验证并查看报告6. 提交映射提示: The Update: 用于装载数据必须设为NO,以产生merge code。注: 当使用外部表时,能看到不分段传输的优点。平面文件可立即从Warehouse映射中访问,能被join到其他对象中去。Times时间维的数据在创建时即根据其配置属性产生了,无需再为时间维创建映射装载数据。映射事实表事实表映射一般来说比维表映射要复杂一些。下面描述了建立事实映射的一般性的做法。Inventory 事实表数据源:表:OracleOE.Inventories视图:OracleOE.Products函数:Warehouse.Get_Time_Id维:Warehouse.Suppliers (as lookup)维:Warehouse.Products (as lookup)维:Warehouse.Warehouses (as lookup)目标:事实表:Warehouse.Inventory建立映射:1. 在Warehouse模块中创建名为wh_inventory_map 的映射2. 将表OracleOE.Inventories和视图OracleOE.Products添加到映射中3. 使用product_id连接2个数据源4. 一条对数据清洗的商业规则是:没有供应商的存货数据不能装入数据仓库。因此,如下:a. 建立一个针对supplier维的lookupb. 从join连接supplier id到该lookup运算符。c. 当没有找到时,将Inventory中的记录劈分(split)到一个错误表中(该表必须创建,并命名为wh_inventory_error)d. 当找到时,则将数据移入事实表e. 确信两个表都有时间戳time stamp id (先前创建的函数GET_TIME_ID 就能被两个表用于获取time_id)5. 另一条对数据清洗的商业规则是:当Inventory 中的值没找到时给warehouse中附一个缺省值。6. 用 1 作为缺省值,这在本练习的后面实现。7. 利用求和(SUM)对Quantity-on-Hand 进行聚集运算,只针对事实表装载做聚集,不要对错误记录表做。(因为你一旦这么做,则所有记录错误的详细信息将丢失)8. 不要忘了协调新的错误表,以在存储中创建它。(确保是在 Warehouse 模块中)9. 设置事实表为 INSERT/UPDATE ,错误记录表为I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西防城港市中小学教师招聘501人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年台州天台县医疗卫生事业单位公开招聘卫技人员31人考前自测高频考点模拟试题带答案详解
- 2025贵州第十三届贵州人才博览会黔东南州事业单位人才引进213人模拟试卷附答案详解(考试直接用)
- 2025广西玉林市北流市西埌镇招聘村级网格管理员1人模拟试卷及答案详解(名校卷)
- 2025年福建省厦门市公安局局属单位公开招聘4人考前自测高频考点模拟试题及参考答案详解一套
- 2025年攀枝花市科学技术局所属事业单位春季人才引进考核招聘模拟试卷及1套完整答案详解
- 2025广东海洋大学招聘辅导员32人考前自测高频考点模拟试题附答案详解(突破训练)
- 2025贵州医科大学第三附属医院第十三届贵州人才博览会引才5人模拟试卷带答案详解
- 2025年上海海事大学公开招聘辅导员考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025广西揭阳普宁市公安局招聘警务辅助人员80人考前自测高频考点模拟试题及答案详解(有一套)
- 2025版心肺复苏术指南
- 2025至2030中国电动机制造市场需求趋势及前景运行状况分析报告
- 取样员考试试题及答案
- 公司社会责任管理制度
- 2025年中国智慧教育白皮书
- DB32/ 4439-2022工业涂装工序大气污染物排放标准
- 疼痛护理新进展
- 2025北京高三一模语文汇编:写作1
- 土地出售协议合同
- 医院内部审计制度
- 董宇辉的创业之路
评论
0/150
提交评论