如何使用查找表扩充 BAM 数据

在某些情况下,作时可用的数据不包含报告所需的一切。 例如,你可能在运行时具有 ProductID,但不具有 ProductName。 由于 BAM 活动代表一种与数据实际收集方式无关的抽象,因此它应该包含一个名为“ProductName”的项目,该项目表示您希望在报表中查看的最终数据。 与任何其他项一样,可以在解释构造(如里程碑组、持续时间、维度和度量值)中使用此功能。 由于 ProductName 在运行时不可用,因此必须获取一些足以执行查找的其他数据,例如 ProductID。

应在同一列中收集数据,而不是报表所需的数据。 例如,应在运行时收集 ProductID 而不是 ProductName。 如果需要更多列,则可以在活动中创建更多项,但不能在任何视图中使用它们。

通过查找扩充 BAM 数据

  1. 部署 BAM 定义。

  2. 在 SQL Server Management Studio 中,添加包含相关数据的服务器作为远程服务器。

  3. 找到名为BAM_AN_<View Name>的数据分析包。 例如,如果视图为 SalesMgr,则会是 BAM_AN_SalesMgr。

  4. 设置缩放以放大包视图(例如 100%)

  5. 添加要用于查找的 SQL 连接。

  6. 在步骤“清理暂存”后找到转换数据任务。 这是将数据从 PrimaryImport 移动到 StarSchema 数据库的位置。 此任务有两个实例,一个用于已完成的活动,另一个实例用于正在进行的活动。 将其余所有步骤应用于这两个任务。

  7. 单击转换。

  8. 选择查找,使用查找连接添加名为“LookupProductByID”的查找(有关查找,请参阅 SQL 联机丛书)。 例如,如果查找是一个简单的表“LookupProduct”,则带有 ProductID 和 ProductName 列的查找文本将为:

    SELECT ProductName  
    FROM   LookupProduct  
    WHERE ProductID=?  
    
  9. 单击“转换”选项卡。删除默认数据转换“转换”,并改为创建 ActiveX 转换。 单击“源列”并添加所有列。 单击“目标列”并添加所有列。

  10. 单击“常规”选项卡,然后单击“属性”。 这会导致自动生成执行简单复制转换的脚本,如下所示:

    Function Main()  
       ...  
       DTSDestination("ProductName") = DTSSource("ProductName")  
       ...  
       Main = DTSTransformStat_OK  
    End Function  
    
  11. 通过查找来更改值,如下所示:

    Function Main()  
       ...  
       DTSDestination("Product")= _  
                      DTSLookups( "LookupProductByID" ).Execute(  _                                  DTSSource("Product"))  
       ...  
       Main = DTSTransformStat_OK  
    End Function  
    
  12. 保存并运行包。

  13. 确保正确的数据最终出现在 OLAP 多维数据集中。 应将包另存为 VBScript 或结构化存储文件,因为它包含自定义代码,而不仅仅是 BAM 中自动生成的步骤。

注释

仅当您使用 DTS 和 OLAP 执行计划报表时,查找功能才有效。 如果需要的数据与实时聚合中收集的数据不同,则必须在调用 BAM API 之前检索数据。

另请参阅

使用业务活动监控
部署本地化的 BAM XML 文件