Cognos Transformer 综合教程
第一部分:初识 Cognos Transformer
1 什么是 Cognos Transformer?
Cognos Transformer 是 IBM Cognos Business Intelligence 套件中的一个核心工具,它是一个多维分析数据建模工具,其主要作用是将来自不同数据源(如数据库、Excel、文本文件等)的、通常是结构化的“扁平”数据,转换成一个优化的、多维的“立方体”(Cube)结构。

这个立方体是 Cognos Analysis Studio(或 Analysis for Excel)等分析工具进行数据分析和报表的基础。
2 Transformer 的核心价值
- 性能优化:通过预计算和聚合数据,将复杂的分析查询响应时间从数分钟缩短到几秒钟。
- 简化数据访问:为业务用户屏蔽了底层复杂数据库表的结构和 SQL 查询的复杂性,用户只需在熟悉的业务术语(如“产品”、“地区”、“时间”)上进行拖拽分析。
- 统一数据视图:可以整合来自多个异构数据源的数据,为用户提供一个单一、一致、可信的数据源。
- 业务逻辑封装:将复杂的业务规则(如汇率转换、特定计算、数据合并/拆分)直接在模型中定义,而不是在报表中重复实现。
3 Transformer 与 Cognos 其他工具的关系
可以把它想象成一个“数据翻译官”和“数据厨师”:
- 数据源 (原材料):数据库表、Excel 文件、数据仓库等。
- Transformer (数据厨师):清洗、切割、混合、烹饪(聚合、计算),最终制作出一盘精美的“数据立方体”(成品菜)。
- Analysis Studio / Report Studio (食客):享用这盘菜,进行各种分析(OLAP)或制作报表。
第二部分:Transformer 核心概念
在学习操作之前,必须理解以下几个核心概念:
- 模型:整个 Transformer 项目的文件,后缀名为
.pyj,它定义了立方体的所有结构。 - 数据源:模型所引用的数据,可以是 SQL 查询、存储过程、Excel 文件等。
- 维度:分析的视角或角度,分析销售数据,可以从“时间”、“产品”、“地区”、“客户”等维度进行。
- 级别:维度中的层次结构。“时间”维度可以有“年 -> 季度 -> 月 -> 日”这样的级别。
- 类别:级别下的具体成员。“2025年”是一个类别,“第一季度”是它的子类别。
- 度量:需要被聚合(求和、平均、计数等)的数值型事实数据。“销售额”、“销售数量”、“利润”。
- 立方体:维度和度量的组合,是最终的分析目标,立方体的每一个“单元格”都包含了特定维度组合下的度量值。
- 星型模式:Transformer 建模的经典结构,它由一个或多个事实表(包含度量)和多个维度表(包含维度层次结构)通过键连接而成,形似星星。
第三部分:实战演练 - 创建第一个数据立方体
我们将通过一个经典的“销售分析”案例,一步步创建一个简单的数据立方体。

1 准备工作
假设我们有两个数据源(可以是数据库视图或 Excel 表):
-
事实表 -
f_sales:sale_date(日期)product_id(产品ID)store_id(门店ID)sales_amount(销售额) - 度量quantity(销售数量) - 度量
-
维度表 -
d_product:product_id(产品ID)product_name(产品名称)category(产品类别)brand(品牌)
2 步骤一:创建新模型
- 打开 Cognos Transformer。
- 选择
File -> New Model。 - 在弹出的向导中,为你的模型命名,
Sales Cube,然后点击OK。
3 步骤二:添加和准备数据源
- 在左侧的 Sources 视图(通常默认打开)中,右键点击
Data Sources->Add Data Source。 - 选择你的数据源类型(
ODBC连接到数据库,或Flat File连接到 Excel)。 - 输入连接信息,选择或编写你的 SQL 查询来获取
f_sales和d_product的数据。 - 重要:点击
Preview按钮检查数据是否正确加载,确保数据类型(尤其是日期和数字)被正确识别。
4 步骤三:创建维度
Transformer 提供了三种创建维度的方式:Star Schema Dimension(星型维度)、Normalization Dimension(规范化维度)和 Recursive Dimension(递归维度),对于我们的例子,Star Schema Dimension 是最简单的。

- 在左侧的 Dimensions 视图中,右键点击
Dimensions->New Star Schema Dimension。 - 定义维度名称:输入维度名称,
产品。 - 选择数据源:选择包含产品数据的视图或表(
d_product)。 - 指定级别:
- Level 1: 选择
category(产品类别)。 - Level 2: 选择
brand(品牌)。 - Level 3: 选择
product_name(产品名称)。
- Level 1: 选择
- 设置键:最底层的级别(
product_name)的键product_id会自动被识别为维度键,确保它正确。 - 点击
OK,一个名为产品的维度就创建好了。 - 重复此过程,创建
时间和门店维度,对于时间维度,你需要确保sale_date字段被正确识别,并可以自动生成年、季度、月、日等级别。
5 步骤四:创建和分配度量
- 在左侧的 Measures 视图中,右键点击
Measures->New Measure。 - 定义度量名称:输入一个有业务意义的名称,
总销售额。 - 选择数据源和列:在
Source下拉框中选择f_sales,在Column下拉框中选择sales_amount。 - 设置聚合:这是最关键的一步,在
Aggregation标签页中,选择默认的聚合方式,对于销售额,通常是Sum(求和),对于数量,也是Sum,对于利润,可能是Sum,对于订单数,则是Count。 - 点击
OK。总销售额度量就创建好了。 - 重复此过程,创建
销售数量度量。
6 步骤五:构建立方体
维度和度量都已就绪,是时候将它们组合成一个立方体了。
- 在左侧的 Cubes 视图中,右键点击
Cubes->New Cube。 - 定义立方体名称:
销售分析立方体。 - 分配维度:在弹出的窗口中,将你创建的
产品、时间、门店等维度从左侧的Available列表移动到右侧的Selected列表。 - 分配度量:同样地,将
总销售额、销售数量等度量移动到Selected列表。 - 点击
OK。
6 步六:构建并测试
- 点击工具栏上的 Build 按钮(一个绿色的齿轮图标)。
- Transformer 会开始处理数据,构建立方体,这个过程可能会花费一些时间,具体取决于数据量。
- 构建完成后,会弹出一个
Success对话框。 - 测试立方体:在 Cubes 视图中,右键点击你刚刚创建的立方体,选择
Explore with Analysis Studio。 - Analysis Studio 会打开,你可以将维度(如“产品类别”、“品牌”)拖拽到左侧的“行”或“列”区域,将度量(如“总销售额”)拖拽到“数据”区域,立即看到聚合后的分析结果,如果数据正确,恭喜你,你的第一个立方体已经成功创建!
第四部分:进阶技巧与最佳实践
1 使用 PowerPlay 报表查看器
在 Transformer 中
