在本教程中,您将在 Oracle Warehouse Builder 11g 中创建维,配置模式模块的元数据并创建 Type 2 渐变维。
注: 本教程中的屏幕截图可能与您的略有不同,这取决于您完成本 OBE 系列中其他教程的顺序。您可以忽略屏幕上出现的无关项。
大约 45 分钟
注: 本教程及其设置脚本仅支持 OWB 11g 第 1 版。该 Oracle 示例教程的早期版本可用于 OWB 10g 第 1 版和第 2 版。
本教程包括下列主题:
| 概述 | ||
| 前提条件 | ||
| 创建时间维 | ||
| 创建渐变维 | ||
| 总结 | ||
将鼠标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
Oracle Warehouse Builder 的很多特性和功能有助于更好地进行模式设计,它们主要涉及提高索引和分区的设计能力,并允许对物理存储和对象的大小属性进行详细配置。配置属性还与命名配置紧密相关,使您能够完全控制具体环境下的物理实现,而无需改变设计。 在 Warehouse Builder 中,必须意识到分区和索引已经移至逻辑设计区域,从而公开了编辑器中有关这些对象的全部编辑功能和设计的某些部分。
在本教程中,您将了解如何使用 Warehouse Builder 建立索引和分区方案,以优化您的数据存储和访问路径。在本教程中,您还将了解如何通过创建 TIME 维来进行维建模。您还将了解 Warehouse Builder 如何帮助您管理渐变维,从而使您可以跟踪维中的变化。
开始本教程之前,您应该:
| 1. |
维是星形架构中数据的主要组织单位。Warehouse Builder 使用维来组织和检索多维数据集的数据。一些常用的维包括 Customer、Product 和 Time。时间维是一种特殊类型的维,经常用于任何维模型中。在本主题中,您将学习如何在 Oracle Warehouse Builder 中创建、配置和部署时间维。
| 创建 TIME 维 | ||
| 检查 TIME 映射 | ||
| 部署 TIME 维 | ||
要创建 TIME 维,执行以下步骤:
|
1. |
您已经作为 owb/owb 登录到 Design Center 中。在 Project Explorer 面板中,展开 Handson > Databases > Oracle> DP_TGT。右键单击 Dimensions 节点并选择 New > Using Time Wizard。
此时 Create Time Dimension Wizard 启动。在 Welcome 页中,单击 Next。 |
| 2. | 在 Name and Description 页中,输入 TIMES 作为维的名称。单击 Next。
|
| 3. | 在 Storage 页中,选择 Relational Storage (ROLAP) 指定该维的关系实施。单击 Next。
|
| 4. | 在 Data Generation 页中,指定仓库所需的时间数据范围。此信息将用于生成填充时间维的映射。在此映射中,您输入的数据将作为参数添加到系统中,这将允许您在将来重新运行具有日期的映射。 为 Start Year 输入 2005,为 Number of Years 输入 3。确保选择了 Calendar,如屏幕截图所示。单击 Next。
|
| 5. | 在 Levels 页中,选择 Normal Hierarchy 并选中所有级别:Calendar Year、Calendar Quarter、Calendar Month 和 Day。单击 Next。
|
| 6. | 在 Pre Create settings 页中,检查 TIMES 时间维的详细信息。单击 Next。
|
| 7. | 显示维的创建进度。操作成功完成后,单击 Next。
|
| 8. | 在 Summary 页中重新检查详细信息,然后单击 Finish。
|
| 9. | 展开 DP_TGT 节点中的 Mappings、Tables 和 Sequences 节点。 您会看到该向导已经为一个功能完整的 TIME 维生成了四个必要的对象。这四个对象是:
|
要检查 TIME 映射,执行以下步骤:
| 1. |
双击 Mappings 节点下的 TIMES_MAP,启动 Mapping Editor。
|
| 2. | 从 View 菜单中选择 Auto Layout。您将看到展开的映射。根据需要,您可以滚动查看该映射,或者从 View 菜单中选择缩放选项来查看该映射。TIMES_MAP 由 Warehouse Builder 生成,加载了 TIMES 时间维。Warehouse Builder 自动创建了这个复杂的映射,从而提高了生产效率并节省了时间。
在 Mapping 菜单中,选择 Close 退出 Mapping Editor。在 Design 菜单中,选择 Save All 提交您的工作。 |
部署是根据逻辑设计或模型创建目标系统的过程。此过程包括生成脚本(如 DDL)的操作,DDL 将创建表、视图和维等数据对象。要支持多维查询的关系模型,选择将所有元数据部署到数据库。额外的元数据允许您运行特定维的数据查看器。
要部署 TIME 维,执行以下步骤:
| 1. |
右键单击 TIMES 维并选择 Configure。
|
| 2. | 在 Configuration Properties 窗口中,从 Deployment Options 下拉菜单中选择 Deploy All。
单击 OK,从 Design 菜单中选择 Save All 提交您的工作。 |
| 3. | 要在数据库中创建所有对象,您必须在 Control Center 中部署这些对象。 Control Center Manager 提供了一个综合的部署控制台,它允许您查看和管理部署的
此时 Control Center Manager 启动。 |
| 4. | 因为 Control Center Manager 控制台中的导航树是按照位置组织的,所以您可以根据设计对象的位置访问这些对象。 注: 在 Object Details 面板的右侧,您将看到您在创建 TIMES 维期间所创建的全部对象。检查所有对象的设计状态、部署状态以及其他详细信息。需要注意的是,由于您执行了其他教程,您可能会有其他对象。在本教程中进行部署时,前面教程中生成的对象可忽略。
|
| 5. | 展开 DP_TGT_LOCATION > DP_TGT。按下 Ctrl 键并选择高亮显示的对象(TIMES_MAP、TIMES、TIMES 和 TIMES_SEQ),如屏幕截图所示。单击 Default Actions 按钮。
|
| 6. | 要部署所选的对象,选择 File > Deploy > To Control Center。注意 Deploy Action 现在是如何变成 Create 的。
|
| 7. | 您可以在控制台右下方的 Control Center Jobs 面板中监视部署进度,如屏幕截图所示。
|
| 8. | 您会看到在 Control Center Jobs 面板中,部署状态从“生成”
|
| 9. | 您可以查看针对 TIMES 维中成功部署的对象所生成的代码。双击 Control Center Jobs 面板 Job 列中的 HANDSON。
此时 Job Details 窗口启动。 |
| 10. | 在 Job Details 窗口中,向下滚动到 DP_TGT 节点中 Time Dimensions 下方的 TIMES。选择 TIMES。在 Job Details 窗口的右侧面板中,单击 Script 选项卡。
|
| 11. | Warehouse Builder 将针对生成的每个对象生成 DDL 脚本。要查看 TIMES 维的生成代码,选择 TIMES_REL.ddl 脚本名。View Code 按钮处于启用状态。单击 View Code。
|
| 12. | 在 TIMES_REL.ddl 窗口中滚动查看生成的代码。
|
| 13. | 在 Code 菜单中,选择 Close 关闭代码窗口。关闭 Job Details 窗口。
|
| 14. | 在 Control Center 中,右键单击 Mappings 节点中的 TIMES_MAP,然后选择 Start。
|
| 15. | 您可以在 Control Center Jobs 面板中监视 TIMES_MAP 的执行进度,如屏幕截图所示。
|
| 16. | 成功执行后,关闭 Control Center。
|
| 17. | 在 Design Center 窗口中,右键单击 Dimensions 节点下的 TIMES 并选择 Data。
此时 Dimension Data Viewer 窗口启动。 |
| 18. | 检查 Dimension Data Viewer 窗口,通过层次来观察下钻。关闭 Dimension Data Viewer 窗口。
|
| 19. | 单击工具栏中的 Save All 图标。
|
| 创建 SH 模式模块 | ||
| 检查导入的对象 | ||
| 定义索引和约束 | ||
| 定义分区 | ||
| 设置配置属性 | ||
要创建 SH 模式模块,执行以下步骤:
| 1. |
展开 Project Explorer 面板中的 HANDSON 项目。展开 Databases 节点,右键单击 Oracle 节点并选择 New。
此时 Create Module 向导启动。在 Welcome 页中单击 Next。 |
||||||||||||||
| 2. | 在 Name 域中指定 SH。确保保持以下域的默认值:
单击 Next。
Connection Information 窗口显示。 |
||||||||||||||
| 3. | 在 Connection Information 窗口中,您可以提供将元数据导入到仓库模块中所必需的数据库链接信息。 在 Connection Information 窗口中,单击 Edit 输入表格中提供的信息。
单击 Test Connection。如果连接成功,则单击 OK。
|
||||||||||||||
| 4. | 在 Connection Information 窗口中,查看 SH_LOCATION 的详细信息。 选中 Import After Finish 复选框,单击 Next。
|
||||||||||||||
| 5. | 模块定义完成,现在您准备导入 SH 模块的元数据。 单击 Finish。
|
||||||||||||||
| 6. | 此时 Import Metadata Wizard 启动。 Warehouse Builder 允许您使用 Import Metadata Wizard 将数据对象定义导入到模块中。这些定义可以帮助您对目标系统进行建模。对于 Oracle 目标模块,您可以导入表、视图、外部表、序列、高级队列和 PL/SQL 转换程序包的定义。 单击 Next。
|
||||||||||||||
| 7. | 此时 Filter Information 窗口启动。 在本主题中,您将表、物化视图和视图导入到 SH 目标模块中。在 Filter Information 窗口中,取消对除 Table、Materialized View 和 View 复选框外的所有复选框的选择。 单击 Next。
|
||||||||||||||
| 8. | 展开 Tables 节点。按下 Ctrl 键并选择 CHANNELS、PRODUCTS、PROMOTIONS 和 SALES,单击 >。
|
||||||||||||||
| 9. | 弹出 Confirm Import Selection 窗口。单击 OK。
|
||||||||||||||
| 10. | 确保已选中 CHANNELS、CUSTOMERS、PRODUCTS、PROMOTIONS、SALES 和 TIMES 表。
|
||||||||||||||
| 11. | 按下 Ctrl 键并选择 Materialized Views 和 Views,单击 >。然后单击 Next。
|
||||||||||||||
| 12. | 在 Summary and Import 窗口中,查看您选择要导入的对象的详细信息。 单击 Finish。
|
||||||||||||||
| 13. | 显示导入的进度。
|
||||||||||||||
| 14. | Import Results 窗口显示导入过程的结果。 请仔细查看信息,然后单击 OK。
|
||||||||||||||
| 15. | SH 模块创建成功。
|
要在 Data Object Editor 中检查导入的对象,执行以下步骤:
| 1. |
展开 Databases 节点中的 SH 模块。展开 Materialized Views 节点,双击 CAL_MONTH_SALES_MV。
|
| 2. | 此时 Data Object Editor 启动。 查看各个选项卡上的信息,浏览 Configuration 面板上的各个选项。 注:如果您无法查看 Configuration 面板,单击 Data Object Editor 菜单上的 Window 选项,然后从下拉菜单中选择 Configuration。
|
| 3. | 在 Data Object Editor 的 Explorer 面板中,展开 SH 模块中的 Views。 选择 SH 模块中的 PROFITS 视图。
|
| 4. | 将 PROFITS 视图拖放到右侧的 Canvas 面板中。
|
| 5. | 查看 PROFITS 视图。 右键单击 PROFITS 视图对象并选择 Detail View。(仅当 View Details 面板未打开时才执行此操作。)
|
| 6. | 视图用于简化数据的表示或限制对数据的访问。通常,用户感兴趣的数据存储在多个表的很多列中。在 Warehouse Builder 中,可以定义一个视图,以对目标数据的查询进行建模。此查询信息存储在 Warehouse Builder 信息库中。 在 View Details 面板中,单击 Query 选项卡。单击 View Details 面板中的右下箭头,选择 Full Size。
|
| 7. | 查看 Query 选项卡中显示的代码。单击 View Details 面板中的右下箭头,选择 Restore。
|
| 8. | 展开 SH 模块中的 Tables 节点。将 SALES 表拖至右侧的 Canvas 面板中。 在 Data Object Editor 菜单中,单击 View,选择 Auto Layout。
|
| 9. | 右键单击 SALES 表对象并选择 Detail View。
|
| 10. | 单击 View Details 面板中的右下箭头,选择 Full Size。
|
| 11. | 在 Table Details 面板中,查看 Sales 表的描述。单击 Columns 选项卡。
|
| 12. | 查看 SALES 表中各列的描述。单击 Constraints 选项卡。
|
| 13. | 查看 SALES 表中各约束的信息。单击 Indexes 选项卡。
|
| 14. | 单击每个索引名前面的 +。查看 SALES 表中各索引的信息。单击 Partitions 选项卡。
|
| 15. | 查看 SALES 表中各分区的信息。
|
| 16. | 单击 View Details 面板中的右下箭头,选择 Restore。
|
| 17. | 在 Configuration 面板中,您可以查看刚刚导入的 SALES 表的物理属性。 注: 要获得如下面屏幕截图所示的视图,单击该面板上部的右下键头,选择 Maximize 展开 Configuration 面板。
退出 Data Object Editor。 |
Warehouse Builder 支持以下索引类型:
| B 树索引 | |
| 位图索引(在多维数据集上自动生成) |
要定义索引和约束,执行以下步骤:
| 1. |
在 Design Center 中,展开 DP_TGT 模块。右键单击 Tables 节点并选择 New。
此时 Data Object Editor 启动。单击 Table Details 面板中的右下箭头,选择 Full Size。 |
||||||||||||||||||||||||
| 2. | 在 Table Details 面板中,将表名指定为 T_IND_PART。单击 Columns 选项卡。
|
||||||||||||||||||||||||
| 3. | 利用上面表格中提供的信息创建以下各列。
|
||||||||||||||||||||||||
| 4. | 单击 Constraints 选项卡。
|
||||||||||||||||||||||||
| 5. | 要添加新的约束,单击屏幕底部的 Add Constraint 按钮。
|
||||||||||||||||||||||||
| 6. | 将约束名指定为 T_IND_PART_PK1。选择 Primary Key 作为 Type。
|
||||||||||||||||||||||||
| 7. | 单击 Local Column 字段,然后单击屏幕底部的 Add Local Column 按钮。从 Local Column 下拉菜单中选择 ID。
|
||||||||||||||||||||||||
| 8. | 现在您要创建一个校验约束。 单击 Add Constraint 按钮,将约束名指定为 T_IND_PART_CK1。选择 Check Constraint 作为 Type。
|
||||||||||||||||||||||||
| 9. | 单击 Check Condition 字段。单击 Check Condition 字段中的按钮
此时 Expression Builder 启动。 |
||||||||||||||||||||||||
| 10. | 在右侧的 Check Constraint Expression 面板中,将 Check Condition 指定为 MSTATUS IN ('Y', 'N', 'D', 'W')。单击 OK。
校验约束创建成功。 |
||||||||||||||||||||||||
| 11. | 您现在将创建索引。 单击 Indexes 选项卡。要添加新的索引,单击屏幕底部的 Add Index 按钮。
|
||||||||||||||||||||||||
| 12. | 保持默认索引名为 T_IND_PAR_idx1。选择 BITMAP 作为索引 Type,GLOBAL 作为 Scope,NONE 作为 Partitioning。
|
||||||||||||||||||||||||
| 13. | 单击索引名前面的 [+],在 Key Columns 中选择 MSTATUS。
|
||||||||||||||||||||||||
| 14. | 在 Data Object Editor 菜单中,单击 Object,选择 Generate。
|
||||||||||||||||||||||||
| 15. | 显示生成进度。
|
||||||||||||||||||||||||
| 16. | 生成了 T_IND_PART 表的代码。单击 Generation 窗口中的 Script 选项卡,查看生成的代码。
|
||||||||||||||||||||||||
| 17. | 滚动查看代码,确保本节前面添加的约束已包括在代码中。
|
||||||||||||||||||||||||
| 18. | 单击 Validation Message 选项卡。
单击工具栏中的 Save All 按钮,退出 Data Object Editor。 |
要定义分区,执行以下步骤:
| 1. |
右键单击 DP_TGT 模块中的 Tables 节点并选择 New。
|
||||||||||||||||||||
| 2. | 此时 Data Object Editor 启动。单击 Table Details 面板中的右下箭头,选择 Maximize。在 Table Details 面板中,将表名指定为 T_PART。 |
||||||||||||||||||||
| 3. | 单击 Columns 选项卡。利用表格中提供的信息创建以下各列。
|
||||||||||||||||||||
| 4. | 单击 Partitions 选项卡。选择 Range-List 作为 Type。
|
||||||||||||||||||||
| 5. | 单击您键盘上的 Tab 键。 Partition Key、Subpartition Key、Partitions 和 Subpartition Template 这几个字段变得可用。
|
||||||||||||||||||||
| 6. | 选择 SHIPDATE 作为 Partition Key,SHIPTOSTATE 作为 Subpartition Key。
|
||||||||||||||||||||
| 7. | 使用以下信息向 T_PART 表中添加三个分区。创建第一个分区后,单击屏幕底部的 Add 按钮添加分区。
|
||||||||||||||||||||
| 8. | 使用 Subpartition Template 向 T_PART 表中添加三个子分区。创建第一个子分区后,单击屏幕底部的 Add 按钮添加子分区。
|
||||||||||||||||||||
| 9. | 在 Data Object Editor 菜单中,单击 Object,选择 Generate。
|
||||||||||||||||||||
| 10. | 此时 Code 窗口启动。滚动查看代码,注意所有分区和子分区的生成方式。
|
||||||||||||||||||||
| 11. | 单击 Validation Message 选项卡。
|
||||||||||||||||||||
| 12. | 单击 Save All 图标,退出 Data Object Editor。
|
要设置表空间和压缩及并行访问的配置属性,执行以下步骤:
| 1. |
在 Project Explorer 面板中,右键单击 DP_TGT 模块并选择 Configure。
|
| 2. | 此时 Configuration Properties 窗口启动。
|
| 3. | 右键单击 T_IND_PART 表并选择 Generate。
|
| 4. | 此时 Generation Results 窗口启动。单击 Script 选项卡。
|
| 5. | 选择 T_IND_PART.dll 脚本,单击 View Code 按钮。
|
| 6. | 随即显示代码。
|
| 7. | 从 Code 菜单中选择 Close,关闭 Generation Results 窗口。
|
| 8. | 在 Design Center 中,右键单击 T_IND_PART 表并选择 Configure。
|
| 9. | 此时 Configuration Properties 窗口启动。在 Storage Space 下的 Tablespace 中,输入 DIFFERENT。单击 OK。
|
| 10. | 右键单击 T_IND_PART 表并选择 Generate。
|
| 11. | 此时 Generation Results 窗口启动。单击 Script 选项卡。
|
| 12. | 选择 T_IND_PART.dll 脚本,单击 View Code 按钮。
|
| 13. | 配置压缩和并行访问: 在 Project Explorer 面板中,右键单击 T_IND_PART 表并选择 Configure。
|
| 14. | 此时 Configuration Properties 窗口启动。
|
| 15. | 选择 Compress 作为 Data Segment Compression。单击 OK。 通过配置压缩和并行访问设置,您减少了系统上的存储量。此外,您还允许查询和 ETL 应用程序利用 Oracle 的并行能力。
|
| 16. | 单击工具栏中的 Save All 图标。
|
在本主题中,您将完成以下任务:
| 设置 Type 2 SCD | ||
| 检查 SCD 设置 | ||
要在创建维的同时设置 Type 2 SCD,执行以下步骤:
| 1. |
在 Project Explorer 面板中,选择 HANDSON 项目 > Database > Oracle > DP_TGT,右键单击 Dimensions 节点。选择 New > Using Wizard。
此时 Create Dimension 向导启动。单击 Next。
|
||||||||||||||||
| 2. | 指定 PRD_SCD_DIM 作为维名。单击 Next。
|
||||||||||||||||
| 3. | 确保选中了 ROLAP:Relation Storage 单选按钮。单击 Next。
|
||||||||||||||||
| 4. | 随即显示 Dimension Attributes 窗口。 使用下表提供的信息,向现有的属性列表中添加三个新属性。添加三个属性后,单击 Next。
|
||||||||||||||||
| 5. | 随即显示 Levels 窗口。指定以下三个级别:
单击 Next。
|
||||||||||||||||
| 6. | 注意,新添加的维属性尚未添加到 TOTAL 级别中。
|
||||||||||||||||
| 7. | 选择 PRD_GRP 级别。注意,新添加的维属性也尚未添加到 PRD_GRP 级别中。
|
||||||||||||||||
| 8. | 选择 PRD 级别。注意,新添加的维属性尚未添加到 PRD 级别中。单击 Next。
|
||||||||||||||||
| 9. | 随即显示 Slowly Changing Dimension 窗口。 选择 Type 2:Store the complete change history 单选按钮。单击 Next。
|
||||||||||||||||
| 10. | 随即显示 Pre Create Settings 窗口。查看维的详细信息,然后单击 Next。
|
||||||||||||||||
| 11. | 显示维的创建进度。成功创建维后,单击 Next。
|
||||||||||||||||
| 12. | 随即显示 Summary 窗口。查看 PRD_SCD_DIM 维的信息。单击 Finish。
|
要在 Data Object Editor 中检查 SCD 设置,执行以下步骤:
| 1. |
在 Project Explorer 面板中,右键单击 Dimensions 节点中的 PRD_SCD_DIM。选择 Open Editor。
|
| 2. | 随即显示 Data Object Editor。单击 Dimension Details 面板中的右下箭头,从屏幕底部选择 Full Size。
|
| 3. | 单击 SCD 选项卡。
|
| 4. | 在 SCD 选项卡中,单击 Settings 按钮。
|
| 5. | 显示 Type 2 slowly changing dimension 的设置。单击 Close。 注:
|
| 6. | 单击 Data Object Editor 中的 Save All 图标。关闭 Data Object Editor。
|
| 7. | 单击 Design Center 中的 Save All 图标。
|
在本教程中,您学习了如何:
| 创建、检查和部署时间维。 | |
| 创建模式模块。 | |
| 将表、物化视图和视图导入到模式模块中。 | |
| 定义索引、约束和分区。 | |
| 设置表空间、压缩和并行访问的配置属性。 | |
| 创建 Type 2 渐变维。 |
将鼠标置于该图标上可以隐藏所有的屏幕截图。