内容


业务活动监视(BAM)中的多维度分析,第 1 部分

利用 WebSphere Business Monitor V6.2 执行多维度分析

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: 业务活动监视(BAM)中的多维度分析,第 1 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:业务活动监视(BAM)中的多维度分析,第 1 部分

敬请期待该系列的后续内容。

简介

本文介绍 WebSphere Business Monitor(以下简称 Monitor)的多维度数据模型,以及如何使用 Monitor 仪表板执行强大的数据分析。

概念

假设有一个抵押贷款公司想分析它的数据,从中识别机会和可以获得成功的领域,以便改进它的业务流程。该公司首先需要理解以下多维度建模的结构单元:

度量:希望对其进行分析的受监视实例中的一段数据在 Monitor 中称为一个度量(metric)。假如您想查看贷款金额的总额或平均数,那么 loan amount 就是您的度量。在多维度建模技术中,度量也称为事实(fact)。

测量:测量(measure)是由跨多个受监视实例的聚合计算函数(比如 average、minimum、maximum、sum、count 和 standard deviation)修饰的一个度量。假如您想查看去年的平均贷款金额和已批准的贷款总额,则您的测量分别是 average loan amountsum total loan amount。这些值是您即将执行的多维度分析所针对的数据。

维度:维度(dimension)是在分析数据时使用的类别。假设您想按不同的信贷员查看平均贷款金额,那么您可以定义一个 loan officer 维度来表示这个类别。您也许想进一步按当前年度和批准的州查看平均贷款金额,那么您需要定义两个类别(或维度):start dateprocess state。然后您可以通过以下三个维度的任意组合来细分您的测量:loan officerstart dateprocess state

维度级别:维度本身是可以分层的,即维度可以包含不同的 levels。例如,start date 维度可能包含年、月和日等级别。这些级别很重要,允许用户向下钻取(drill-down)到需要的细节程度。比如,您可以按当前年度、一年中的每个月或一个月中的每一天来查看贷款。Monitor 中的 Date 维度引用一个日期或日期时间度量,并且总是拥有一个 “年-月-日” 层级。其他类型的维度通过在每个级别引用一个度量创建,比如一个地址维度可能拥有一个国家级别(引用一个国家度量)和一个城市级别(引用一个城市度量)。

多维数据集:测量、维度和维度级别的逻辑分组称为多维数据集(cube)。每个 Monitor 监视上下文代表被监控的业务场景的一部分。每个监视上下文可以关联一个多维数据集。实际上,默认情况下,系统将为每个监视上下文创建一个多维数据集,这个多维数据集将包含 InstancesCount 的隐式测量、CreationTime 和 TerminationTime 的隐式维度,它们不需要在监视器模型中建模。您可以在 Monitor Dimensional Model 中扩展该多维数据集以创建新的测量和维度;如果无需在某个特定监视上下文上执行多维度分析,您也可以删除其关联多维数据集。多维数据集占用系统内存,因此,如果某个多维数据集对一个监视上下文不再需要,建议删除它。

图 1 展示了一个对贷款金额度量求平均值的多维数据集。多维数据集中的每个单元包含一个平均贷款金额值,该值根据在单元处交叉的维度进行聚合。使用三个维度,您就会明白为什么要将其称为多维数据集。但是,不必将您的分析限制到三个维度 —— 任意数量的维度都可以被建模。

图 1. 平均贷款金额多维数据集
平均贷款金额多维数据集
平均贷款金额多维数据集

Monitor 多维数据集通过一个 IBM Alphablox 多维数据集引擎管理。Alphablox ROLAP(Relational Online Analytical Processing,相关在线分析处理)功能用于在 Monitor 数据(通过监视器模型收集)上提供多维数据集服务。Alphablox 服务于多维度查询,提供交互式绘图(charting)和向下钻取(drill-down)功能,并且缓存维度数据,以便来自 Business Monitor 仪表板的分析保持响应性。

为数据建模

多维度分析的第一步是为数据建模以适应用户的分析需求。您需要确认如何分析数据并选择适当的测量和维度。然后,您需要在监视模型中定义这些测量和维度。这最好通过一个示例介绍,我们将使用一个抵押贷款示例。

本文剩余部分将使用一个抵押贷款场景,这个场景在 developerWorks 文章 将业务活动监视(BAM)的新功能付诸实施,第 3 部分:IBM WebSphere Business Monitor Development Toolkit V6.1 中改进后的 Unit Test Environment 中进行了详细描述。这个抵押贷款模型也是 Monitor V6.2 仪表板展示模型的基础,后者可以从 Monitor First Steps 页面安装。这个监视器模型位于 Monitor 安装目录中并可以通过以下步骤导入 Monitor Model Editor:

  1. 打开 Monitoring Model Editor。
  2. 将 MortgageLendingBAM.zip 文件作为一个 Project Interchange 导入:
    • 选择 File => Import => Other => Project Interchange
    • 单击 Next
    • 浏览到 <IBM_WEBSPHERE_APPLICATION_SERVER_INSTALL_DIR>/installableApps.wbm/showcase/model。
    • 选择 BetterLendingBAM_PI.zip
    • 在 projects 区域选择 BetterLenderBAM
    • 单击 Finish
  3. 打开 Business Monitoring 透视图。
  4. 选择 Window =>Open Perspective => Business Monitoring Perspective
  5. 在 Project Explorer 中打开 BetterLender 模型,方法是展开 BetterLenderBAM => Monitor Models,然后选择 BetterLender.mm。

这个 Mortgage Lending 流程包括几个贷款操作:建立流程、处理并验证贷款申请、审核、结账、注资、结账后调整(post-closing)和发放贷款。首先是贷款建立流程,该流程涉及创建一个完整的贷款申请。这个流程通常是自动完成的,在示例模型中,它被创建为一个子流程,名为 Automated Loan Setup Process。贷款申请完成后,下一步是验证和处理申请以及审核申请。其他步骤包括结账、注资、结账后调整以及最后发放贷款。示例监视器模型使用度量来分析这些步骤。例如,我们为申请贷款金额、从申请到注资的天数、完成的贷款金额、贷款编号、信贷员、起始日期、结账日期等项目创建了度量。

现在,考虑用户可能会问什么类型的问题:

  • 上级领导可能会问:“哪个信贷员处理了大部分申请?” 或者更具体些,“哪个信贷员处理了本年度、本月或今天的大部分申请?”
  • 流程分析师可能想知道:“哪个区域是我的瓶颈?现在大部分贷款申请在哪里卡壳了?”
  • 财务分析师也许想知道:“当前处于结账步骤的所有贷款的总额是多少?”

对于第一种情况,将度量 loan officer 定义为一个维度,以便按 loan officer 对数据分类,然后查看这个信贷员处理的贷款额。定义另一个维度 loan start date,这将有助于分析每年的数据并支持向下钻取每月和每天的数据。对于第二和第三种情况,通过一个 loan processing state 维度来组织数据将有助于按照各种处理状态分析贷款申请和贷款金额。

在监视模型中,您可以看到针对 Better Lending 监视上下文的多维数据集:MortgageLending MC Cube。您还能看到三个维度:

  • 信贷员,基于 loan officer 度量
  • 贷款处理起始日期,基于 loan processing start date 度量
  • 贷款流程状态,基于 loan status 度量

注意,在根据一个日期或日期/时间度量(如 loan processing start date)创建一个维度级别时,当完成模型安装后,Monitor 将把这个级别扩展到三个级别:年、月、日。2000 年到 2014 年的年月日已经预加载到 Monitor V6.2 数据库中。您需要添加年度以覆盖 2000 年以前和 2014 年以后的日期度量。您可能需要删除不需要的年份,以减少缓存在服务器内存中的日期维度的成员数,从而提高系统性能。要了解更多信息,参阅 Monitor Information Center 中的 为 Alphablox 仪表板扩展日期维度表

在监视器模型中,您能看到许多已定义的测量,涉及 count(贷款数量)、average、sum、minimum、maximum of loan amount 和 process duration 量度。图 2 展示了在 Monitoring Model Editor 中定义的这些维度。查看图 2 的大图。

图 2. Monitoring Model Editor 视图
Monitoring Model Editor 视图
Monitoring Model Editor 视图

生成 J2EE 应用程序

在模型中定义维度后,需要生成 Java™2 Extended Edition (J2EE) 应用程序。为此,执行以下操作步骤:

  1. 右键单击 mm 文件并选择 Generate Monitor J2EE Projects,如图 3 所示。查看图 3 的大图。
    图 3. 生成 J2EE 项目
     生成 J2EE 项目
    生成 J2EE 项目

    这将在 J2EE 透视图中创建三个新项目:MortgageLendingBAMApplication、MortgageLendingBAMModelLogic 和 MortgageLendingBAMModerator
  2. 下一步,将这个 J2EE 应用程序导入企业归档文件(EAR),该文件可以安装在 Monitor Server 上。要生成 EAR 文件,右键单击 MortgageLendingBAMApplication 并选择 Export => EAR file ,如图 4 所示。 查看图 4 的大图。
    图 4. 导出 J2EE 应用程序
     导出 J2EE 应用程序
    导出 J2EE 应用程序
  3. 保存导出后的 EAR 文件。这个文件所在的目录与以下 Project Interchange 文件相同:<IBM_WEBSPHERE_APPLICATION_SERVER_INSTALL_DIR>/installableApps.wbm/showcase/model/BetterLenderApplication.ear

下面,安装刚创建的 Monitoring Model。

安装监视模型

按以下操作步骤安装监视模型:

  1. 在 WebSphere Application Server 管理控制台导航树中,展开 Applications => Monitor Models
  2. 单击工作区域中的 Install,找到您的模型。
  3. 确保已创建 Alphablox 多维数据集,有两种方法可以创建该多维数据集。其一是确保在安装期间选中 Create the Alphablox cubes(默认选项)。(注意,Business Monitor 测试环境隐式使用这个选择。)要验证这个选择,执行以下操作:
    • 选择 Show me all installation options and parameters
    • 单击多个页面找到 Select Monitor Model Alphablox options 并确保选中 Create the Alphablox cubes,如图 5 所示。如果 Alphablox 安装在一个远程服务器上,则应提供服务器主机名和 RMI 端口;如果远程服务器启用了安全机制,还要提供用户 ID 和密码。
      图 5. 在模型安装期间创建 Alphablox 多维数据集
      包含一个图像的示例图
      包含一个图像的示例图
    • Summary 页面,单击 Finish
    • 安装完成后,单击 Save 直接更改主配置。

    创建 Alphablox 多维数据集的第二种方法是在模型部署完成后添加多维数据集。操作步骤如下:

    • 在管理控制台导航树中,展开 Applications => Monitor Models
    • 选择已安装的模型版本,在 Version Properties 下面单击 Manage Alphablox Cubes,如图 6 所示。如果 Alphablox 安装在一个远程服务器上,则应提供服务器主机名和 RMI 端口;如果远程服务器启用了安全机制,还要提供用户 ID 和密码。
    • 单击 Create 创建 Alphablox 多维数据集。
      图 6. 在模型安装后创建 Alphablox 多维数据集
      包含一个图像的示例图
      包含一个图像的示例图

注意,您可以使用 Export Cubes 导出这些 Monitor 多维数据集的一个 DB2 Cube Views XML 表示,这个表示可以导入支持 Cube Views 的第三方产品以进行 OLAP 分析。

Alphablox 多维数据集创建后,Monitor 已经创建了多维度分析需要的所有模型工件 —— 表、视图和多维数据集。现在是时候定制您的仪表板以对您的 Business Monitor 数据进行多维度分析了。

在仪表板中分析数据

Mortgage Lending 场景中定义了两个监视上下文。Monitor 和 Alphablox 向用户提供在这两个监视上下文中进行分析报告和趋势分析的功能。Alphablox 提供向下钻取和细分功能,以回答我们先前提出的业务问题。让我们做一些分析,以便了解哪位信贷员的工作成果最大,以及哪个月业务最繁忙。

要开始多维度分析,您需要向 Monitor 仪表板添加一个多维度小部件。使用 Business Space,您可以创建一个 Monitoring 模板,用于为业务活动监视(BAM)提供一个通用仪表板设置。这个 Business Monitoring 模板包含一个 Analysis 选项卡,该选项卡又包含 Alphablox 分析支持的两个小部件:Dimensions 和 Reports。

  1. 使用 Dimensions 小部件的配置选项来选择一个分析出发点。选择以下配置:
    • Monitoring Model:Better Lending BAM Showcase (All versions)
    • Monitoring context:Better Lender
    • Available dimensions:Move Loan Officer to the ColumnDate Loan Processing Started to the RowMeasures to the Page

    这个配置支持通过 Loan Officer 和 Date Loan Processing Started 分析各种测量。图 7 显示了 Dimensions 配置对话框。

    图 7. Dashboard 多维度视图配置
    Dashboard 多维度视图配置
    Dashboard 多维度视图配置
  2. 单击 OK 返回配置了轴的视图模式。
  3. 从图表顶部的下拉菜单选择 Total Number of Application Loans,以选择要分析的测量。默认情况下,选中的测量在所有的维度中显示,这是该多维数据集的最高级别。
  4. 要按年度查看贷款数量,双击图标中的相应栏并选择 Date Loan Processing Started 维度。图 8 显示了生成的结果。
    图 8. 按年显示的贷款申请的总数量
    按年显示的贷款数量
    按年显示的贷款数量
  5. 要按信贷员和年度查看贷款数量,再次双击图表中的一个栏,这次选中 Loan Officer 维度。图 9 显示了生成的结果。
    图 9. 按年度和信贷员显示的贷款申请的总数量
    按年度和信贷员显示的贷款数量
    按年度和信贷员显示的贷款数量

您可以继续向上或向下钻取以便更好地理解您的业务数据。您可以随意在仪表板上安排您的维度和测量,以便理解您的业务的各个方面。另外,您可以使用不同的图表类型来调整数据显示以满足您的需求。

尽管您在多维度小部件中看到的值代表聚合值,但有时您需要更深入地向下钻取以查看隐藏在测量背后的细节。例如,您可能注意到一个信贷员在某个月的 Total Amount of Application Loans 值特别高。为了了解这个较高的值是由几个特别大的抵押导致还是由许多小抵押导致,您可能想要查看组成这个数值的各个抵押。Monitor V6.2 添加了显示这些底层实例的功能。

要启用 Show Instances 特性,执行以下操作:

  1. 将一个 Instances 小部件放在 Dimensions 小部件所在的页面。
  2. 在每个小部件的配置模式中,选择 Cooperative 选项卡并勾选 Enable this widget to interact with other widgets
  3. 现在,当您看到一个感兴趣的测量值时,您可以在 Dimensional 网格中右键单击那个值,然后选择 Show Instances。由选中的维度定义的实例列表将显示在 Instances 小部件中,如图 10 所示。
    图 10. Gerald Mander 在 2008 年的贷款
    包含一个图像的示例图
    包含一个图像的示例图

多维数据集维护

如果要分析的实例数据量较小,您的向上钻取和向下钻取请求的响应性会很好。但是,在一个大型生产部署中,被监视的实例可能多达数百万。这时,您的多维度查询可能会变慢。您可以采取两种方法来阻止这种性能降低。首先,您可以在会话之间和用户之间缓存测量值。要启用多维数据集缓存,在管理控制台中选择 Monitor Scheduled Services 并选择一个模型。模型部署后,您将看到 Alphablox Cube Caching 服务默认情况下被设置为 Suspended。您可以选择 Resume 以恢复 Alphablox Cube Caching 服务,并指定刷新多维数据集缓存的时间和频率,如图 11 所示。

图 11. Monitor Scheduled Services —— 多维数据集刷新设置
多维数据集刷新设置
多维数据集刷新设置

如果启用 Alphablox Cube Caching 服务之后性能仍然较差并且您的 Monitor 数据库是 DB2,您可以启用 Cube Summary Table Refresh 服务。Cube Summary Table Refresh 服务促使数据库在后台跨维度计算并持久化测量值,这将向用户提供响应性良好的多维度分析,即使受监视的实例多达数百万个。在本系列的第 2 部分中,我们将主要关注如何建立多维数据集摘要表。

结束语

本文介绍了如何利用 Monitor V6.2 执行多维度分析,包括如何对数据建模,如何安装 Monitor 模型,以及如何定制仪表板以深入理解您的 Monitor 数据,从而获得商业洞察。在第 2 部分中,您将学习如何建立多维数据集摘要表。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=442474
ArticleTitle=业务活动监视(BAM)中的多维度分析,第 1 部分: 利用 WebSphere Business Monitor V6.2 执行多维度分析
publish-date=11022009