利用 IBM InfoSphere Data Architect 实现多维建模,第 3 部分: 转换

将 Cognos/Cubing 模型转换为 Cubing/Cognos 模型

从 IBM® InfoSphere® Data Architect V7.5.3 开始,您可以通过使用 InfoSphere Data Architect 创建关系数据模型和多维数据模型。本系列介绍了以下三种用户场景,演示了 InfoSphere Data Architect V7.5.3 如何帮助您加速维度数据建模:通过正向工程实现维度数据建模、通过对现有数据源执行逆向工程实现维度数据建模,以及转换维度数据模型以便在 InfoSphere Data Warehouse 和 Cognos® Framework Manager 中使用该模型。第 3 部分介绍了使用 InfoSphere Data Architect 将模型从 Cognos 模型转换为 Cubing 模型,或从 Cubing 转换为 Cognos 模型。

白云峰, 软件工程师, IBM  

白云峰的照片白云峰是位于中国北京的中国开发实验室的资深软件工程师。他现主要关注于 InfoSphere Data Architect QA 领域,以前曾从事 DB2 Data Warehouse(已重命名为 InfoSphere Warehouse)方面的工作,主要关注于 OLAP 建模和 SQL 仓库。



Li Zhen Xing, 软件工程师, IBM

作者照片Zhen Xing Li 是中国北京 HiSoft 的一名软件工程师。他专注于 InfoSphere Data Architect QA。同时,他在自动化测试领域拥有广泛的知识和开发经验。



2012 年 8 月 13 日

简介

在本系列的 第 1 部分第 2 部分 中,您读到了某零售公司如何设计自己的数据模型,包括关系数据模型和维度数据模型。这些模型被用来管理他们的销售交易和销售分析。然后,该公司开发了新的要求,建模团队更新了他们在 第 1 部分 中通过现有数据源执行逆向工程而创建的模型。

数据建模团队知道,他们拥有现有的 Cognos 和 Cubing 模型用于执行销售分析。数据建模团队希望整合这些现有模型,只使用 Cognos 模型或只使用 Cubing 模型进行销售分析。此外,随着基础的逻辑模型和物理数据模型的变化,他们需要使用 InfoSphere Data Architect 来更有效地维护模型。为了随着基础的逻辑模型和物理模型的发展帮助维护这些模型并实现一致性,数据开发团队必须将他们的模型转换为 Cognos 或 Cubing 模型,并在从其他团队引入变更时更新模型。数据建模团队知道,他们可以使用 InfoSphere Data Architect 轻松地针对各种用途转换这些模型。

为了满足这个要求,数据建模团队可以将现有的 Cognos 或 Cubing 模型导入工作区,然后,将模型转换为他们在数据建模的各个阶段所需要的各种格式。遵循在本文中所列出的步骤,了解如何将模型从 Cognos 模型转换为 Cubing 模型,或从 Cubing 模型转换为 Cognos 模型,然后看看数据建模团队如何更新模型,实现整合。

数据建模团队执行以下步骤,将一个 Cognos 模型转换为 Cubing 模型。

  1. 团队将一个 Cognos 模型转换为一个维度逻辑数据模型。
  2. 然后,团队将这个维度逻辑数据模型转换为一个新的维度物理数据模型。
  3. 他们将这个维度物理数据模型转换为一个新的 Cubing 模型。
  4. 最后,团队将 Cubing 模型导入 InfoSphere Warehouse Design Studio,并更新该模型,使设计团队可以使用它来创建自己的报告。

如果要将模型从 Cubing 模型转换为 Cognos 模型,除了细节上稍有差异之外,步骤完全是一样的。

将 Cognos 模型转换为 Cubing 模型

在本节中,建模团队将会使用 Cognos Framework Manager 和 InfoSphere Data Architect 来将 Cognos 模型转换为 Cubing 模型,然后,他们将更新该 Cubing 模型,然后才可以将该模型用于部署和报告。

了解 Cognos 模型

首先,看看建模团队将使用的 Cognos 模型。

如图 1 所示,团队知道他们有一个星型架构。STORE_BILLING_DETAILS 事实被 CUSTOMERS、EMPLOYEES、PRODUCTS、STORE 和 TIME 维度所围绕。该事实存储用于测量业务信息的测量指标,如每个产品项的单价、利润率或劳动成本。

图 1. Cognos 模型的 Dimensional View 图
显示 store_billing_details 连接到 customers 表、employees 表、products 表和 store 表

从 Cognos Framework Manager 导出 Cognos 模型

在本节中,建模团队将从 Cognos Framework Manager 导出 Cognos 模型。

  1. 打开 Cognos Framework Manager,然后打开 Project Viewer 页面。
  2. 在 Project Viewer 中选中模型,然后单击 Action > Export Model,打开 Export Wizard。
  3. 按以下步骤完成 Export Wizard,以导出 Cognos 模型。
    1. 在 Export Wizard 的 Select Export Target 页面上,选中 CWM 1.0 to 1.1(*.xml),如图 2 所示。
      图 2. 完成 Export Wizard:选择一个 Export Target
      显示选中 CWM 1.0 to 1.1
    2. 在向导的 Framework Manager Specific Export Options 页面上,不要修改任何设置,如图 3 所示。
      图 3. 完成导出向导:指定导出选项
      显示 reverse engineer relationships、table design level、ignore usage property 和 consistency check
    3. 在 Third Party Specific Export Options 页面上,在 File * 字段中为文件指定一个文件路径,包括一个文件名,如图 4 所示。
      图 4. 完成 Export Wizard:特定于指定模型的选项
      突出显示的文件路径

      当您单击 Next 时,该模型会导出到您所指定的文件路径。

    4. 在 Export Results 页面上,确认模型已成功导出,如图 5 所示,然后单击 Next
      图 5. 完成 Export Wizard:验证导出的模型
      Export Wizard 以验证 Export Result
    5. 单击 Finish

团队已导出模型。现在,团队可以在 InfoSphere Data Architect 中将该模型导入到一个数据设计项目。

将 Cognos 模型转换为维度逻辑数据模型

在下一节中,建模团队将导入 Cognos 模型,然后将 Cognos 模型转换为维度逻辑数据模型。

  1. 打开 InfoSphere Data Architect。
  2. 按以下步骤完成 New Data Design Project Wizard,在 InfoSphere Data Architect 中创建一个数据设计项目。
    1. 单击 File > New > Data Design Project 打开向导。
    2. 为项目指定一个名称,然后单击 Finish,如图 6 所示。
      图 6. New Data Design Project
      显示 RETAIL_SALES_PROJECT 作为新项目名称
    3. 在 Data Project Explorer 视图中显示该项目已被创建,如图 7 所示。
      图 7. 新的数据设计项目
      显示资源管理器视图中的 RETAIL_SALES_PROJECT
  3. 按以下步骤将 Cognos 模型文件导入到数据设计项目中。
    1. 单击 File > Import 打开 Import 向导。
    2. 在向导的 Select 页面上,选择 General > File System,如图 8 所示。
      图 8. 从文件系统导入
      在资源管理器视图中选择从文件系统导入
    3. 在 File system 页面上,指定以下信息。
      • 浏览至保存 Cognos 模型的目录。
      • 选择 Cognos 模型类型。
      • 选择 Cognos 模型的名称。
      • 浏览至您所创建的数据设计项目。在图 9 中查看该步骤的示例。
        图 9. 从文件系统导入 Cognos 模型
        从文件系统导入 Cognos 模型
      • 该文件被导入到数据设计项目下面的 XML Schemas 文件夹中,如图 10 所示。
        图 10. Cognos 模型被导入数据设计项目中
        在 InfoSphere project explorer 中 Cognos 模型被导入 Data Design Project
  4. 按以下步骤,将 Cognos 模型转换为新的维度逻辑数据模型。
    1. 单击 File > New > Transformation Configuration,启动转换配置向导。
    2. 在向导的 Specify a Configuration Name and Transformation 页面上,指定一个文件名,然后选中 Cognos/Cubing Model to Dimensional-Logical Data Model 配置类型,如图 11 所示。
      图 11. 指定配置文件名称和配置类型
      显示 Specify a Configuration and Transformation 向导
    3. 在向导的 Source and Target 页面,选择该 Cognos 模型文件作为选定的源模型,然后选择该数据设计项目为选定的目标,如图 12 所示。
      图 12. 指定一个源数据模型和目标数据设计项目
      显示在新的转换配置中的源和目标
    4. 在向导的 Properties 页面上,指定源维度模型是一个 Cognos 模型,如图 13 所示,然后单击 Finish
      图 13. 为该转换指定属性值
      Overwrite files without warning 设置为 false,而 source dimensional model 设置为 Cognos Model

      Other Files 文件夹中创建转换配置文件,并且在编辑器视图中打开该转换配置文件。您必须运行该文件,以生成维度逻辑数据模型。

    5. 在编辑器视图中,单击 Run 生成维度逻辑数据模型,如图 14 所示。
      图 14. 运行配置文件,将 Cognos 模型转换为维度逻辑数据模型
      显示正向转换的名称和协议
    6. 在 Data Project Explorer 视图中的 Data Models 文件夹下面创建了新的维度逻辑数据模型。如图 15 所示,创建了一个星型架构。
      图 15. 维度逻辑数据模型的概览图
      显示数据模型图,其中 customers 在顶部,连接到 store_billing_details,而 store_billing_details 又连接到 time、store、products 和 employees

将维度逻辑数据模型转换为维度物理数据模型

在团队可以创建 Cubing 模型之前,他们必须将维度逻辑数据模型转换为维度物理数据模型。这样做不仅使团队向 Cubing 模型又靠近了一步,还创建了相应物理模型,使团队可以在任何时候更新基础逻辑模型时同步更新该模型。

  1. 右键单击维度逻辑数据模型,然后选择 Transform to Physical Data Model。按以下步骤完成 Transform to Physical Data Model 向导。
    1. 在 Target Physical Data Model 页面上,选择 Create new model,如图 16 所示。
      图 16. 转换为新的物理数据模型
      选中 Create new model
    2. 在 Physical Data Model file 页面上,指定以下选项。
      • 选择该数据设计项目作为目标文件夹。
      • 指定一个文件名。
      • 指定您希望创建一个 DB2 for Linux, UNIX, and Windows version 9.7 数据模型,如图 17 所示。
      图 17. 指定新模型文件的数据库、版本和位置
      显示选中的文件夹、文件名、数据库和版本
    3. 在 Transform to Physical Data Model 页面上,不要修改任何选项,如图 18 所示。
      图 18. 指定逻辑到物理数据模型转换的选项
      显示选中的默认选项
    4. 在 Output 页面上,确认模型已转换成功,然后单击 Finish,如图 19 所示。
      图 19. 验证转换
      验证转换
    5. 该数据设计项目的 Data Models 文件夹中创建了新的维度物理数据模型,并且在编辑器视图中打开了概览图。如图 20 所示,该模型看起来与逻辑数据模型相似。
      图 20. 维度物理数据模型的概览图
      customers 连接到 store_billing details,store_billing details 再连接到 time、store、products 和 employees

现在,数据模型已被转换为维度物理数据模型,团队可以创建一个将与数据仓库团队共享的 Cubing 模型。

将维度物理数据模型转换为 Cubing 模型

要从现有的维度物理数据模型创建 Cubing 模型,您必须按以下步骤创建并运行一个转换配置。

  1. 启动 New Transformation Configuration 向导。
  2. 按以下步骤创建一个新的转换配置文件。
    1. 在 Specify a Configuration Name and Transformation 页面上,指定一个文件名称,然后选中 Dimensional-Physical Data Model to Cognos/Cubing Model 配置类型。
    2. 在 Source and Target 页面上,选择一个源维度物理数据模型,然后选择一个目标数据设计项目。
    3. 在 Properties 页面上,指定源维度模型是一个 Cubing 模型。

    创建了转换配置文件,并且在编辑器视图中打开。

  3. 在编辑器视图中单击 Run 按钮,运行该转换配置。
  4. 创建了新的 Cubing 模型并存储在数据设计项目中的 XML Schemas 文件夹中。您可以使用 InfoSphere Warehouse 来更新该模型。

将数据模型导入 InfoSphere Warehouse

现在,该数据模型已被转换,数据建模团队可以与数据仓库团队共享已转换的模型。数据仓库团队下载这个已转换的模型,然后将它导入 InfoSphere Warehouse 工作区。

  1. 在 InfoSphere Warehouse Design Studio 中创建一个新的数据设计项目。
  2. 在该数据设计项目中创建一个使用 OLAP 的空白物理数据模型。
  3. 将 Cubing 模型作为 OLAP Metadata 导入到物理数据模型中,如图 21 和图 22 所示。
    图 21. 导入 OLAP 元数据
    在资源管理器视图中选中的 OLAP Metadata
    图 22. 将 Cubing 模型导入到 InfoSphere Warehouse Design Studio
    显示成功导入 OLAP 对象
  4. 在导入了 Cubing 模型之后,您可以导航所创建的多维数据集模型,如图 23 所示。
    图 23. 新转换的 Cubing 模型的结构
    显示带有 store_billing_details 的模型的资源管理器视图
  5. 在将 Cubing 模型部署到服务器之前先更新它。

    :本文没有解释如何在 InfoSphere Warehouse Design Studio 中更新对象或创建新对象。然而,本文指明了团队需要更新后才能部署在服务器上的对象。

    团队要执行以下步骤更新 Cubing 模型。

    1. 指明以下测量指标为计算指标:
      • TOTAL_PRICE
      • TOTAL_COST
      • PROFIT_RATE
      团队更新这些测量指标,是因为这些测量指标被定义为从 Cognos 中的其他列计算出来的查询项。为了保持一致性,团队必须指定,这些是 Cubing 模型中的计算指标。
    2. 指定 CUSTOMERS 表的 FULL_ADDRESS 属性是一个计算属性。团队更新该属性,是因为该属性被定义为从 Cognos 中的其他列计算出来的查询项。
    3. 在 STORE_BILLING_DETAILS Cubing 模型中创建多维数据集。
    4. 将多维数据集事实和多维数据集层次结构添加到多维数据集。在源 Cognos 模型中,CUSTOMERS、EMPLOYEES 和 PRODUCTS 层次结构被定义为每个维度中的默认测量指标。您可以将它们指定为多维数据集层次结构。

    数据仓库团队可能需要根据源 Cognos 模型更新 Cubing 模型中的更多属性。例如,Cognos 支持一些 Cubing 模型不能直接支持的查询项。然而,仓库团队可以在 Cubing 模型中创建一个 MDX 计算成员或指标来对该需求进行建模。本文没有介绍这些目标。


将 Cubing 模型转换为 Cognos 模型

在前面的步骤中,建模团队将一个 Cognos 模型转换为一个 Cubing 模型,然后将 Cubing 模型交付给仓库团队。仓库团队更新了 Cubing 模型,以确保在 Cognos 模型中建模的相同数据也在 Cubing 模型进行了建模。仓库团队现在可以部署该模型并使用它来创建报告。仓库团队可以遵循相似的流程,将 Cubing 模型转换为 Cognos 模型。

了解 Cubing 模型

首先,看看建模团队将使用的 Cubing 模型,如图 24 所示。

图 24. 已转换的 Cubing 模型的结构
所有 OLAP 对象的资源管理器视图

点击查看大图

图 24. 已转换的 Cubing 模型的结构

所有 OLAP 对象的资源管理器视图

从 InfoSphere Warehouse Design Studio 导出 Cubing 模型

在仓库团队可以与其他团队共享 Cubing 模型之前,团队必须按以下步骤从 Design Studio 导出该模型。

  1. 打开 InfoSphere Warehouse Design Studio。
  2. 单击 File > Export,打开 Export 向导。
  3. 按以下步骤完成 Export 向导。
    1. 在 Select 页面上,展开 Data 文件夹,然后选中 OLAP Metadata,如图 25 所示。
      图 25. 在 Export 向导中选择一个导出类型
      显示选中的 OLAP Metadata
    2. 在 Specifying Cubing Services objects and Destination File 页面上,指定一个文件路径和文件名,然后选择导出 Cubing 模型的所有对象,如图 26 所示。
      图 26. 在 Export 向导中选择 OLAP 对象和目标
      显示选中的 Data Projects、Database (project1/RETAIL_SALLES/dbm/) 和 STORE_BILLING_DETAILS
    3. 当您单击 Finish 时,导出的模型被保存到您所指定的路径。

现在,仓库团队已导出了更新的 Cubing 模型,团队可以与数据建模团队共享该模型。数据建模团队可以使用 InfoSphere Data Architect 将 Cubing 模型转换为 Cognos 报告团队可以使用的一种格式。

将 Cubing 模型转换为维度逻辑数据模型

  1. 打开 InfoSphere Data Architect。
  2. 如果数据设计项目尚不存在,通过完成 New Data Design Project 向导创建一个数据设计项目。
  3. 通过完成 Import 向导,导入 Cubing 模型。
  4. 按以下步骤创建一个转换配置。
    1. 打开 New Transformation Configuration 向导。
    2. 在 Specify a Configuration Name and Transformation 页面上,指定一个文件名,然后选中 Cognos/Cubing Model to Dimensional-Logical Data Model 配置类型。
    3. 在 Source and Target 页面上,选择该 Cubing 模型作为源,然后选择该数据设计项目为目标项目。
    4. 在 Properties 页面上,选择 Cubing model 作为源维度模型。

    转换配置已创建,并且文件已在编辑器视图中打开。

  5. 在编辑器视图中单击 Run 按钮,运行该转换配置。会在数据设计项目的 Data Models 文件夹中创建新的维度逻辑数据模型。图 27 显示了该转换模型。
    图 27. 维度逻辑数据模型的概览图
    customers 连接到 store_billing_details,连接到 time、store、products 和 employees

将维度逻辑数据模型转换为维度物理数据模型

现在,数据模型团队有了已转换的维度逻辑数据模型,他们可以将它转换为一个维度物理数据模型。在他们将模型转换为 Cognos 兼容的模型之前,必须先执行该步骤。

  1. 右键单击维度逻辑数据模型,并选择 Transform to Physical Data Model
  2. 完成 Transform to Physical Data Model 向导,并创建一个新的 DB2 for Linux, UNIX, and Windows V9.7 物理数据模型。

在数据设计项目的 Data Models 文件夹中创建了已转换的模型。图 28 显示了已转换的维度物理数据模型。

图 28. 维度物理数据模型的概览图
customers 连接到 store_billing details,连接到 time、store、products 和 employees

将维度物理数据模型转换为 Cognos 模型

现在,建模团队有了一个维度物理数据模型,他们可以将其转换为一个 Cognos 兼容的模型,那么他们就能与报告团队共享一个一致的模型。

  1. 启动 New Transformation Configuration 向导。
  2. 按以下步骤创建一个新的转换配置。
    1. 在 Specify a Configuration Name and Transformation 页面上,指定一个文件名,然后选中 Dimensional-Physical Data Model to Cognos/Cubing Services Data Model 配置类型。
    2. 在 Source and Target 页面上,选择该维度物理数据模型为源,然后选择该数据设计项目为目标项目。
    3. 在 Properties 页面上,选择 Cognos model 作为目标维度模型。

    转换配置已创建并且在编辑器视图中打开。

  3. 单击 Run 按钮,运行该转换配置以生成 Cognos 模型。

数据设计项目中的 XML Schemas 文件夹下生成 Cognos 模型。其文件名与维度物理数据模型的数据库名称相同。

将 Cognos 模型导入 Cognos Framework Manager 并更新模型

报告团队知道,他们应该更新这个 Cognos 兼容的模型,以确保所有报告的信息仍然可以提供给报告读者。

  1. 打开 Cognos Framework Manager。
  2. 按以下步骤创建一个新的报告,然后导入模型。
    1. 单击 File > New。New Project 窗口打开。
    2. 指定 RETAIL_SALES 作为项目名称,然后指定一个位置。
    3. 单击 OK
    4. 在 Select Language 窗口中,选择您首选的语言。数据建模团队从选项列表中选择 English 并单击 OK
    5. 在 Metadata Wizard - Select Metadata Source 页面上,选中 IBM Cognos model 并单击 Next
    6. 在 Metadata Wizard - Select Model 页面上,在您的数据设计项目中浏览并找到已转换的模型,单击 Next

      :在默认情况下,Cognos Framework Manager 查找带有 .cpf 文件扩展名的 Framework Manager 项目。为了找到您的文件,您应该选择 All Files (*.*) 文件类型。

    7. 在 Select Objects 页面上,选择 root 对象,如 RETAIL_SALES。
    8. 单击 Finish 完成项目创建,并将模型导入 Cognos Framework Manager。模型导入摘要如图 29 所示。
      图 29. 导入的 Cognos 模型摘要
      显示完成的导入流程,以及已创建对象的列表
  3. 您可以打开维度视图,以确认报告读者所需要的大部分信息都在模型中,如图 30 所示。
    图 30. Cognos 模型的维度视图
    store_billing_details 在左侧,连接到右侧的 customers、employees、products、store 和 time 实体
  4. 在部署之前更新 Cognos 模型。

    :本文未详细描述如何更新这些对象。此处的信息帮助您了解在可以生成报告之前必须修改什么对象,以及为什么要修改这些对象。

    1. 将从其他列计算出来的 TOTAL_PRICE、TOTAL_COST 和 PROFIT_RATE 测量指标更新到查询项。这些指标必须被更新,因为当前表达式定义指向 PhysicalView 的各个列。
    2. 将从其他列计算出来的 FULL_ADDRESS 属性更新到查询项。该属性必须被更新,该属性的表达式指向列 FULL_ADDRESS,而它并不存在。
    3. 使用 CUSTOMER_TYPE 层次结构中的一个维度函数,创建一个新查询项 [GroupCustomers]。该项是必需项,因为在源 Cubing 模型中定义了一个带有 [GroupCustomers] 名称的 MDX 计算成员,但在转换过程中并未创建该成员。
    4. 为 STORE_BILLING_DETAILS 事实指定测量指标顺序。TOTAL_PRICE 指标是 STORE_BILLING 多维数据集的默认多维数据集指标,但 UNIT_PRICE 指标是 STORE_BILLING_DETAILS 事实的第一个指标。
    5. 为 CUSTOMERS、EMPLOYEES 和 PRODUCT 维度指定默认层次结构。CUSTOMER_TYPE、EMPLOYEE_TERRITORY 和 PRODUCT_SUPPLIER 层次结构在 Cubing 模型中的 STORE_BILLING 多维数据集中可用,使这些层次结构可以被用作维度的默认层次结构。

:本文所使用的 Cubing 模型的对象有限,但是,如果添加更多维度对象,例如 MDX 计算指标、虚拟多维数据集、时间维度和级别,以及其他对象,团队可以更新此模型。然而,本文并未介绍这些对象。


结束语

在本文的整个过程中,您随着报告、数据建模和数据仓库团队一起将 Cognos 和 Cubing Services 模型从一个格式转换到另一个格式。

您已了解如何使用 InfoSphere Data Architect 实现 Cognos 和 Cubing 模型之间的转换,并了解到各团队必须先更新什么对象才能部署模型以供使用或报告。

在这篇文章中,您了解到 InfoSphere Data Architect 的关系型和维度数据建模功能如何加速 Cognos 和 Cubing Services 之间的模型迁移,减少迁移和部署模型所需的时间。


致谢

感谢 Erin Wilson 对本文的审阅。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=830175
ArticleTitle=利用 IBM InfoSphere Data Architect 实现多维建模,第 3 部分: 转换
publish-date=08132012