内容


大处着眼!将业务规则解决方案扩展到大数据世界

构建一个使用 IBM Bluemix 上的 Business Rules 和 IBM Analytics for Hadoop 服务的应用程序

Comments

传统的业务规则应用程序一次只处理几 MB 数据。记录通常在客户端、服务器请求时处理或分批处理,一次处理一条记录。随着解决方案迁移到云,并且应用程序对 TB 级数据应用了一些规则,这些传统方法已跟不上时代。为了将业务规则解决方案扩展到大数据世界,可以考虑使用 IBM Bluemix™中的 Business Rules 和 IBM®Analytics for Hadoop 服务。

本教程中的示例 RulesAdaptor 应用程序为数据科学家提供了使用业务规则分析大数据的可能性。

本教程介绍一个名为 RulesAdaptor 的一般应用程序,它使用 IBM Bluemix 中的服务来集成 IBM Operational Decision Manager 的业务规则和 Apache™Hadoop®的大数据功能。此应用程序为数据科学家提供了使用业务规则分析大数据的可能性。

数据科学家分析结构化和非结构化数据来为业务问题提供有意义的答案。使用业务规则来分析数据有以下好处:

  • 不需要依靠开发人员来在代码中创建技术脚本,比如 Jaql、Pig 和 Java。
  • 对业务规则的更改受到管控。
  • 业务规则容易被业务和技术用户理解。

“集成 Hadoop 与 IBM Operational Decision Management V8”developerWorks 教程介绍了如何将 IBM Operational Decision Manager 的经典规则引擎与 Hadoop 相集成,为大数据创建高性能规则引擎。通过本教程中介绍的 RulesAdaptor 应用程序,您可以探索如何扩展该解决方案,以便在 Bluemix 上运行它,通过一个 REST API 来调用 IBM Business Rules 服务。

下图演示了 RulesAdaptor 应用程序的架构,以及它在运行时如何处理业务规则和数据:

RulesAdaptor 应用程序的架构
RulesAdaptor 应用程序的架构

以下描述与图中的编号有关联:

  1. 定义与数据对应的规则集签名:
    RulesAdaptor 应用程序处理逗号分隔值 (CSV) 文件,这些文件被转换为哈希图并由规则引擎获取。在 RulesAdaptor 应用程序中,您指定了 CSV 列名,在 Rule Designer 中,您创建了一个与列名有关联的规则集签名。规则集签名必须基于以下一种或多种原生 Java 类型:
    • Integer
    • Double
    • Float
    • String
    • Boolean
    • Date

    签名不能基于 XML 模式或 Java 执行对象模型 (XOM)。

    RulesAdaptor 应用程序将输出参数值转换为字符串,后者被编写为 CSV。

  2. 创建处理规则集签名的业务规则:
    RulesAdaptor 应用程序可以处理任何类型的业务规则和决策服务。规则项目可以包含一个基于 Java 或 XML 的业务对象模型 (BOM),但上一步中已经说过,规则集签名不能使用它。
  3. 将决策服务部署到 Bluemix:
    规则部署到 Bluemix 上的 Business Rules 服务。
  4. 将数据上传到 IBM Analytics for Hadoop 进行处理:
    将输入数据上传到 BigInsights 输入文件夹。该数据必须为 CSV 格式。
  5. 配置和运行 RulesAdaptor 应用程序:
    配置 RulesAdaptor 应用程序来指向决策服务。有一些针对安全 (HTTPS) 和不安全 (HTTP) 连接的选项。应指定与输入数据对应的 CSV 输入列名。启动作业,创建 Hadoop 映射 / 化简作业。映射作业通过 REST API 访问 Business Rules 服务。决策服务是多线程的,可并行处理多个映射作业。
  6. 查看存储在输出文件夹中的结果:
    完成此操作后,输出文件夹包含一个 CSV 文件。要进行进一步的数据分析,可以使用 IBM InfoSphere BigInsights 工具(比如 BigSheets)分析此文件。

本教程将介绍论如何将示例规则应用程序部署到 Business Rules 服务并从 IBM Analytics for Hadoop 服务运行它。

教程示例创建一个航线乘客分析工具,在飞机起飞前核实乘客。这个分析工具对乘客名称记录 (PNR) 应用业务规则。PNR 在购买飞机票时创建,如下面的简化示例中所示:

Booking RefpassportNumberdateOfBirthcustomerNameflightDaterouteflightNumber
8972897498P6313429291991-02-23Celia Beck2014/12/31BOCLAXLHRBA944

下面的屏幕截图中显示了与 PNR 对应的规则集签名。请注意,乘客的顺序并不重要,但参数名和类型至关重要,必须与数据匹配。日期应为 yyyy-mm-dd格式,比如 2015-12-31。规则集签名不需要应用到 CSV 文件中的所有列,可以使用一个列的子集。

对应于 PNR 的规则集签名
对应于 PNR 的规则集签名

向数据应用了两条分析规则。第一条规则检查乘客是否从博卡国际机场起飞,而且年龄在 20 到 30 岁之间,如下面的规则所示:

检查乘客是否从博卡国际机场起飞,而且年龄在 20 到 30 岁之间的规则
检查乘客是否从博卡国际机场起飞,而且年龄在 20 到 30 岁之间的规则

第二条规则检查护照是否在监视名单中,监视名单包含被阻止的护照编号。阻止的护照编号存储在该规则内一个简单的列表中,如下面这条规则所示。

检查护照是否在监视名单上的规则
检查护照是否在监视名单上的规则

为了加快教程学习进度,我们提供了一个已准备好的规则应用程序。可以将它直接导入 IBM Business Rules 服务中,所以您不需要使用 Rule Designer 构建和部署决策服务。但是,如果您想查看和编辑 PNR Validator 项目,或者想要使用它作为模板来创建新项目,则必须安装 Rule Designer 并导入教程材料中提供的 pnrValidatorProject.zip,然后构建规则服务,并将它们部署到 IBM Bluemix 上的 Business Rules 上。要开始使用 Business Rules 并更多地了解 Rule Designer,请参阅 IBM Bluemix 文档中的 开始使用 IBM Bluemix 上的 Business Rules

完成该应用程序的前提条件

下载 JazzHub 上提供的以下教程材料:

  • file00.csv
  • pnrRuleApp_1.0.jar
  • pnrValidatorProject.zip
  • RulesAdaptor.zip

如果没有 Eclipse 客户端,可以单击 “获取代码” 链接直接将这些文件下载到您的计算机。复制 CSV 文件内容并将它们粘贴到一个新文件中。

第 1 步 . 创建 Bluemix 服务

  1. 登录到您的 IBM Bluemix 帐户并添加 IBM Business Rules 和 IBM Analytics for Hadoop 服务,如下面的 Bluemix 仪表板示例所示。IBM Business Rules 服务可在 Web 和应用程序部分找到,IBM Analytics for Hadoop 可在 大数据部分找到。每个服务应该都未绑定。images/Figure05_lg.png
    images/Figure05_lg.png
  2. 打开 IBM Business Rules 服务并记下用户名及短和长(基本身份验证)密码,如下面的示例所示:

第 2 步 . 登录到 Rule Execution Server 控制台

  1. 单击 Open Console链接并使用您在上一步记下的用户名和短密码进行登录。
  2. 转到 Explorer选项卡并选择 Deploy RuleApp Archive,如下面的示例所示。
  3. 在 Deploy RuleApp Archive 窗口中,单击 Choose file按钮并选择您在获取代码时下载的 pnrRuleApp_1.0.jar文件。保留默认的版本策略并单击 Deploy
  4. 记下部署的 ruleApp 版本。首次部署时,版本应为 /pnrRuleApp/1.0/pnrRuleSet/1.0

第 3 步 . 登录到 BigInsights 控制台

  1. 返回到 Bluemix 仪表板并选择 IBM Analytics for Hadoop 服务。
  2. 单击 Launch,这会自动让您登录到 IBM InfoSphere BigInsights Enterpise Edition 控制台,如下面的示例所示:
IBM InfoSphere BigInsights Enterpise Edition 控制台
IBM InfoSphere BigInsights Enterpise Edition 控制台

第 4 步 . 创建文件夹

  1. 转到 Files选项卡并单击 Create directory 图标,在 /user/biadmin文件夹下创建一个名为 pnrProfiling的文件夹。
  2. 使用同一个按钮在 pnrProfiling下创建两个分别名为 inputoutput的子文件夹,如下图所示:
    在 BigInsights 中创建文件夹
    在 BigInsights 中创建文件夹

第 5 步 . 导入数据

  1. 选择 input文件夹,单击 Upload 图标来上传您下载的包含教程数据的 file00.csv文件。这个 CSV 文件包含示例乘客记录 (PNR)。

您应该看到以下文件和目录:
导入示例乘客记录

导入示例乘客记录

第 6 步 . 上传 RulesAdaptor 应用程序

  1. 转到 Applications选项卡并单击 Manage链接。
  2. 单击 Add Application 图标。将打开 Upload application 窗口。
  3. 选择您下载的 RulesAdaptor.zip文件并单击 OK,如下面的示例所示:
    上传 RulesAdaptor 应用程序
    上传 RulesAdaptor 应用程序

    几秒之后,就会导入 RulesAdaptor 应用程序。
  4. 检查 Categories窗格中的 Rules文件夹,确认它包含 RulesAdaptor 应用程序,如下面的示例所示:
Rules 文件夹

第 7 步 . 部署和运行 RulesAdaptor 应用程序

  1. 从 BigInsights 控制台中,选择 RulesAdaptor 应用程序并单击 Deploy来部署它。RulesAdaptor 应用程序的 Deploy 按钮
    RulesAdaptor 应用程序的 Deploy 按钮
  2. 使用部署窗口的默认设置并再次单击 Deploy。应用程序的状态应更改为 DEPLOYED。
  3. 准备执行 RulesAdaptor 应用程序:从 Applications选项卡中选择 Run链接,然后单击 RulesAdaptor 图标。 BigInsights 中的 RulesAdaptor 应用程序
    BigInsights 中的 RulesAdaptor 应用程序
  4. 输入以下参数来配置 RulesAdaptor 应用程序。

    Execution Name:pnrValidator(任何名称都可以)

    Input directory:/user/biadmin/pnrProfiling/input

    Output Directory:/user/biadmin/pnrProfiling/output

    Columns:passportNumber,customerName,dateOfBirth,flightNumber,flightDate,route

    Ruleset Version:/pnrRuleApp/1.0/pnrRuleSet/1.0

    Host:[ 您的 Bluemix RES 的主机名 ]

    Res User:resAdmin

    Res Password:[ 业务规则密码 ]

    Bluemix Mode:Ticked

    HTTPS:Ticked if you are using a Rule Engine secured by HTTPS(默认)

    Rule Engine Password:[IBM Business Rules 基本身份验证密码 ]

    备注:查看第 1 步以确定 Res PasswordRule EnginePassword

  5. 单击 Run。Hadoop Map/Reduce 作业已启动,并创建了多个映射作业。

    每个映射作业都访问相同的决策服务。决策服务是多线程的,能够并行处理来自映射作业的请求。如果一切正常,您会看到以下成功状态:

    成功表述
    成功表述

    如果作业失败,可以检查 Application Status选项卡下的日志。最可能的问题是凭据或规则集名称错误。

第 8 步 . 检查输出结构

输出包含与分析规则匹配的乘客。在这个示例中,有 3 名乘客匹配。要查看结果,可以单击下面的示例中所示的 Output 图标来自动导航到 Files选项卡。在 /user/biadmin/pnrProfiling/output文件夹下,您应该看到文件 part-00000和其中的 3 位分析的乘客。

Files 选项卡上的输出结果
Files 选项卡上的输出结果

结束语

本教程介绍了一个集成 Bluemix 中的 IBM Business Rules 和 IBM Analytics for Hadoop 服务的解决方案。其中演示了一个结合使用这些技术的 IBM Analytics for Hadoop 应用程序 RulesAdaptor。

本教程还介绍了如何在云中使用 IBM Bluemix 来运行 RulesAdaptor 应用程序。借助代码示例,对乘客名称记录运行了 RulesAdaptor 应用程序来分析飞机乘客。

现在,您可以使用示例 RulesAdaptor 应用程序为自己的项目集成业务规则和数据。


相关主题


评论

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere, Cloud computing, 认知计算
ArticleID=1026920
ArticleTitle=大处着眼!将业务规则解决方案扩展到大数据世界
publish-date=02152016