技术开发 频道

InfoSphere 和Cognos检测偏差

    通过穿透钻取链接 Cognos 报告

    “穿透钻取” 的原始概念是指从聚合值导航到单独的记录。这在 OLAP 应用中是一项常见的任务。在 Cognos 中,这个概念被延伸为将报告 “链接” 到一起。因此,穿透钻取的定义类似于 HTML 中的超级链接。链接报告本身并不是很强大的特性。参数的使用使穿透钻取成为真正强大工具。Cognos 中的每个报告可能包含一些参数,这些参数可用于创建可参数化的查询。如果还没有设置这些参数,将提示用户设置它们。在穿透钻取定义中,这些参数可被定义为超级链接的一部分(就像在 HTTP GET 请求中一样)。这些参数的值可以通过链接的上下文获得。接下来的小节使用两个被链接的报告说明这一概念。

    用 Cognos report studio 创建一个离群值报告

    在本小节中,创建一个项目,其中包含两个基于部署的 OutliersPackage 的报告页面:

    一个是主页面,显示按职业分组的客户记录的一个概述,其中分别列出每种职业中离群值的数量。

    一个是报告页面,显示一种特定职业的偏差记录。

    将链接这两个报告,以便从主概述页面穿透钻取到偏差记录。

    由于概述页面包含详细页面的链接,所以先创建它。离群值详细界面包含被标记为离群值且属于主报告页面选定的职业的客户记录。为了创建这种交互,需要添加一个表示要报告的职业的参数,并在一个记录过滤器中使用它。另外还需要添加一个过滤条件,以便只返回 Outlier Flag 查询项为 “1” 的记录(偏差度超过阈值的所有记录)。

    要创建 “Outlier Details” 报告页面,遵循以下步骤:

    在 Cognos Report Studio 中使用 OutliersPackage 创建一个新的 Report。

    添加一个列表对象到报告中。

    从 “Insertable Objects” 视图中将 OutlierTable 查询主题拖放到该列表中,并将其添加到该列表中。

    将 OutlierClusters 查询主题的 DESCRIPTION 查询项添加到该列表中。

    通过选择该列表,并按工具栏上的 “Filters” 图标,或者从菜单中选择 Data > Filters,将一个过滤器添加到该列表中。

    在向导中,用 “Add” 图标添加一个 “Details filter”。

    在 “Detail Filter Expression” 页面中,将以下代码添加到 “Expression Definition”。 ([PresentationView].[OutlierTable].[Outlier flag] = 1)

    AND ([PresentationView].[OutlierTable].[Profession] = ?Profession?)

    Cognos 将自动检测以 “?” 包围的作为参数的 “Profession” 关键词,并将它添加到报告的参数列表中。

    按 OK 确认过滤器。

   图 10. 用于 Outlier Details 页面的过滤器

    根据自己的喜好更改报告的标题文本和列标题,并将报告保存为 OutlierDetails。

图 11. 包含 Outlier Details 报告的 Cognos Report Studio

    概述页面包含一个职业列表,显示每种职业的客户记录数量和离群值数量。记录数量将使用 Cognos 聚合函数计算。

    为了创建 OutlierOverview 页面,您需要:

    在 Cognos Report Studio 中使用 OutliersPackage 创建一个新的报告。

    添加一个列表对象到报告中。

    从 “Insertable Objects” 视图中的 OutlierTable 查询主题中,将以下查询项添加到列表中:Profession/Customer ID 和 Outlier flag。

    Customer ID 列用于显示每种职业客户记录的数量。为了计算这个值,需要在这个列的属性视图中将这个列的聚合函数改为 “Count”。

    OutlierFlag 列用于显示每种职业偏差记录的数量。对于每个偏差记录,这个列的值为 “1”,对于非偏差列,这个列的值为 “0”,因此,需要添加这个列的值。将这个列的聚合函数改为 Total。

    将 “Customer ID” 和 “Outlier flag” 列的 “Data Item” > “Name” 和 “Data Item” > “Label” 属性改为 Number of customers 和 Number of outliers。

    为了允许穿透钻取到 OutlierDetails Report,需要选择 Number of Outliers 列(不是标题,而是它下面的列),并从右键上下文菜单中选择 Drill-Through Definitions。

    添加一个新的穿透钻取定义。

    在属性的 Target Report 选项卡中,选择 OutlierDetails 报告作为目标报告。

    选择 Run the report 作为动作。

    选择 Open in new window 复选框。

    用参数列表下面的 Edit 按钮添加一个新的链接参数。

    在 Parameters 对话框中,选择 Pass data item value 作为将参数链接到列表中的行中的一个值的方法。

    选择 Profession 查询项作为数据项源,并选择 OK。

图 12. 穿透钻取定义参数

    按 OK 保存穿透钻取定义。

图 13. 穿透钻取定义页面

    更改标题文本,并将报告保存为 OutlierOverview。

    现在,可以从 Run > Run HTML 菜单或者从 Cognos Connect 运行这个报告。

    从 number of outliers 列中单击一个链接,以查看详细的记录。

图 14. 离群值概述页面

    这个简单的项目由两个报告组成。通过使用 “穿透钻取” 定义(其中包含一个由链接的上下文定义的参数)避免需要为每种职业单独定义一个链接。本系列的后续文章将展示如何使用穿透钻取定义完成一些更复杂事情,比如动态调用数据挖掘。
 

0
相关文章