< 上一课 | 下一课 >

第 1.2 课:修改现有 Data Manager 构建

在本课程中,您将学习如何定制现有 Data Manager 构建以抽取数据、变换数据并将数据装入数据仓库。
先决条件:

在第 1.1 课中,您通过将新属性添加到数据表,修改了 Rational® ClearQuest® 数据配置文件。现在需要将这些属性放到构建流中以便在报告中显示。

在本课程中,将修改 Data Manager 构建,以使新属性进入数据收集过程。您将学习定制现有构建以抽取新属性,变换这些属性并将它们传递至数据仓库。

准备 ETL 目录
  1. 启动 IBM® Cognos® Data Manager。
  2. 选择创建新目录,将名称指定为 RationalInsightETL,指定在开始本课程之前所创建的新空数据库的连接信息,然后单击完成
  3. 新目录已创建并打开时,单击文件 > 恢复目录,并选择 OOTBDMCatalog.ctg 文件。该文件的缺省位置是 [rational_insight_installation_directory]/datamgr/insight_catalog/ 目录。
从数据源抽取新属性
  1. 展开文件夹构建和作业流 > ODS > ClearQuest > CQEnterprise。单击 CQ_ENT_Defect
    概念: 在 Data Manager 中,ETL 是在事实构建或维构建中指定的。事实构建传递事实数据,还可以传递维数据,因此您可以从单个构建内构造专用数据集市。维构建传递数据以描述单个业务维,例如产品或客户。Rational Insight 利用事实构建将数据装入合并的运作数据存储。 事实构建和维构建可用于构建数据集市或星型模式。这些构建将作为可以在 Data Manager 中顺序或并行执行的一系列步骤组织到作业流中。
  2. 双击 RI_Stg 数据源图标。单击查询选项卡。
    数据源图标
    概念: 通过使用构建的数据源元素,可以选择该构建所需的数据库子集。

    在第 1.1 课中,已修改了 ClearQuest 缺陷实体以展示相关的组件标识和状态属性。在接下来的几个步骤中,将修改数据源查询以包含新的属性。

  3. 展开 ClearQuest 节点以列出数据库模式(在 XML Data Configuration 中建模为“资源组”)。展开 CQEnterprise 模式以列出从第 1.1 课中数据配置文件内的 CQEnterprise 资源组中定义的所有数据表。展开 ENTDefect 表以显示所有已定义列。

    此时将修改现有的 SQL 以检索 component_dbid 和 status 列。请确保添加逗号以分隔列名称。

  4. 从左侧的面板中将 ENTDefect 列 Status 和 Component_dbid 拖动至右侧的“SQL 查询”面板。将新列放置在现有的“href”条目之后。请确保这些列已用逗号分开。
  5. 要测试新的 SQL 语句,单击窗口左下方的
    播放图标
    。 在用于指定变量的窗口中,输入 $RESOURCEGROUP 条目的模式名称(CQEnterprise)。将 $MODIFIED_SINCE 字段保留为空,以使数据服务使用该空值返回所有记录。
  6. 单击结果列选项卡,并单击刷新。 在用于指定变量的窗口中,输入 $RESOURCEGROUP 条目的模式名称(CQEnterprise)。将 $MODIFIED_SINCE 字段保留为空,以使数据服务使用该空值返回所有记录。在该选项卡中定义的列是从步骤 7 中定义的 SQL 中产生的列。这些列将用于下游对象。单击确定
    数据源属性
  7. 右键单击数据流并选择属性。 在数据流项选项卡内,双击左面板中的新列以将它们添加至数据流,并单击确定
    概念: 数据流对象将构建或引用结构从中获取数据的所有数据源收集在一起。这提供了将不同的数据源组合至一个对象的方法。在 RequisitePro® 构建中可以看到该情况的示例。
此时已将一个新列添加至目录,并已更新变换模型以反映该更改。

接下来,将 component_dbid 属性变换为数据仓库中组件的代理键。

变换属性
  1. 右键单击变换模型图标 ,然后单击映射。
    概念: 变换模型是事实构建的中心点。使用它可以多种方式操纵所获取的源数据,例如从不同的源中合并数据并聚集数据。在本课程中,将装入新属性,而无需应用任何业务规则。
    数据流映射
  2. 双击状态数据流。
    概念: 您将在变换模型中创建新属性,并将数据流项映射到该属性。
  3. 单击添加,单击,将名称指定为 Lookup_Component,并选择(无引用)子节点。单击该节点右侧的按钮。
    变换模型映射
  4. 选择节点组件 > Lookup_Component,并单击确定
  5. 返回到映射窗口。在左侧面板中,选择 Component_dbid 数据流项,在右侧面板中,选择 Lookup_Component=>EXTERNAL_KEY1 属性,并单击映射
    概念: 在接下来的几个步骤中,将构建缺陷和数据仓库中组件实体之间的关系。EXTERNAL_KEY1 指定组件的自然键(对于 Rational ClearQuest,自然键为 dbid)。如果组件存在于数据仓库,那么查找将返回代理键。 如果记录不存在,那么构建将插入缺省条目 -1(表示“无可用信息”)。
  6. 单击添加按钮,并单击属性。 将名称指定为 COMPONENT_ID,并单击确定两次。
  7. 右键单击变换模型图标,然后选择显示构建元素。双击 Lookup_Component,并单击未匹配成员选项卡,选择接受未匹配成员标识,然后单击确定
  8. 变换模型选项卡中,右键单击 COMPONENT_ID 属性,然后单击转换为派生
  9. 变换模型选项卡中,双击 COMPONENT_ID 属性,单击计算选项卡,并输入以下代码:
    If NOT Unmatched( Lookup_Component )
    then RETURN Lookup_Component.COMPONENT_ID ;
    else RETURN -1; 
    单击确定
    概念: 为了给该类条件指定肯定匹配,脚本中使用了双重否定构造。
向目标表传递属性
  1. 双击 "{$ODS}"."REQUEST" 表传递。
  2. 表属性选项卡中,将 Status 和 COMPONENT_ID 元素的列名称指定为 STATUS 和 COMPONENT_ID。选择将列自动添加至表的复选框。单击确定
    概念: 因为您没有修改数据仓库中的缺陷表以包含要存储新属性的列,因此选中将列自动添加至表选项将导致表在这些列不存在的情况下被修改。还可以使用 Rational Data Architect 在执行 ETL 作业之前修改表,或在 ETL 作业修改表之后更新数据仓库中的数据模型。
  3. 保存目录。
此时已修改了现有构建。
在本课程中,您学习了:

当装入新实体时,需要创建新构建并修改现有构建以将更多属性添加至现有实体。在本课程中,修改了现有构建。在下一课(第 1.3 课)中,将创建新构建。ETL 过程要求每个实体都有一个构建。