作者:Christian Screen
2012 年 9 月发布
该教程旨在让任何具备 Oracle Business Intelligence (OBI) 开发生命周期常识的人员都能够了解如何配置 Oracle Business Intelligence 11g (11.1.1.6) 元数据信息库,从而使用新的 MDS XML 源代码控制管理功能进行开发。
Oracle BI 11g 11.1.1.6 版将源代码控制管理 (SCM) 的概念整合到 Oracle BI 服务器元数据信息库 (RPD) 中。因此只需少量 Oracle BI 元数据建模工作即可满足现代源代码控制系统要求。目前,大多数组织都利用 ClearCase、Git、Subversion、Perforce 或 Mercurial 等 SCM 系统来完成版本开发工作。
本文将介绍如何使用 Git 这一开源软件版本控制系统 (VCS),以符合新的 Oracle BI MDS XML SCM 选项。我们将重点介绍 Git,因为在企业开发工作中,它是能最快速投入使用的系统。与其他 SCM 工具相比,Git 拥有众多优势,比如成本、分支模型和本地化集成等。Git 同样由“Linux 之父”Linus Torvalds 开发,因此非常适合 Oracle Linux。本文重点介绍 Git 的另一个原因是 Oracle BI 11g 新增的 SCM 功能具有 SCM 无关性,针对该集成所提供的唯一 SCM 集成模板是针对 Subversion SCM 的。如果您要使用 Git 或 Subversion 以外的 SCM 工具,也可以通过本文来加深了解。
用于开发 Oracle BI 元数据信息库的 Administration Tool 是一个基于 Microsoft Windows 的应用程序。Administration Tool 将使用 Git 客户端软件与 Git SCM 信息库进行通信。因此,配置 Oracle BI MDS XML SCM 功能的第一步就是将 Git 客户端安装到开发所使用的工作站:
MDS XML 语法与核心 XML 标准无明显差异。但 MDS XML 提供了几个具体参考,使之能够与 Oracle Metadata Service 标准兼容(您可以想象一下使用 RCU 实用程序创建的 MDS 模式)。此外,它与使用 Oracle BI XML API 生成的 XML 不同,后者仅输出一个 XML 文件。MDS XML 输出大量独立但逻辑上引用的 XML 文件,这些文件可用于分离元数据,以更好地利用 XSD 合规性和存储功能。
该功能的设置可归结为三个主要步骤:
Oracle BI 元数据信息库开发人员必须能够以脱机模式打开当前的开发 RPD,以创建必要的 MDS XML 文件来获取 SCM 支持。
这样就创建了供 SCM 功能使用的 MDS XML 目录结构和文件。但到目前为止,您的 Oracle BI 11.1.1.6+ 客户端工具还不知道要使用哪种 SCM 实用程序来管理这些新建的文件。因此您需要在 Administration Tool 的选项区域配置 XML 文件来告诉它。
最终,Administration Tool 将参考基于 XML 的配置文件,以了解如何通过您选择的 SCM 工具(此处为 Git)来执行命令。由于 Oracle BI SCM 功能具有 SCM 客户端无关性,所以 Administration Tool 只对 SCM 客户端执行常规函数调用。那些 SCM 客户端特定的命令必须被记录在一个 XML 配置文件中,而该 XML 配置文件必须通过 Administration Tool 工具中的一个选项来创建。要配置 SCM 特定命令:
现在,按照 Git 客户端命令行开关和命令来更新字段。另外,如果您在安装 Git 客户端时使用了默认安装路径,则 Git 可执行文件位于 C:\Program Files\Git\cmd\ 下。但由于您之前安装 Git 客户端时使用了 PATH 变量选项,因此不需要使用完整路径名称。
按图 4 所示填写命令字段。
您可能已经注意到,我们没有配置 SCM Configuration Editor 中 Environment Variables 或 Post-save comment 选项卡下的任何项。SCM 客户端的环境变量通常在客户端安装过程中设置。您可以在 Post-save comment 选项卡输入一条消息,则当源控制系统下的信息库被保存且 Administration tool 成功调用 SCM 命令后,将会显示该消息。要添加一条评论,使之在调用 SCM 命令后显示,您需要:
到目前为止,您已创建了 MDS XML 目录和文件,并在 Oracle BI Administration Tool 中配置了与 Git SCM 交互所需的命令。现在,您必须创建一个本地 Git SCM 信息库,以载入 MDS XML 文件并对的开发工作实施版本控制。请注意,我们此处讨论的是两个不同的工具:Oracle BI Administration Tool 和 Git。两者没有真正透明地集成关系。所以,您将创建一个 Git 信息库来保存与 MDS XML 文件相关的元数据。接着,您需要将这些文件导入到 Git SCM 信息库中,以便 Git 跟踪这些文件和这些文件的变化。下面介绍如何对 MDS XML 文件执行初始导入:
到目前为止,您已执行了基本的 Git SCM 实例化命令。git init 命令在根目录下创建 .git 信息库文件夹。git add . 命令对要添加到 Git 信息库中的所有文件和文件夹进行确认。最后,git commit -m "Initial Commit" 命令把通过 git add . 命令添加的文件保存到信息库中,并提供一条描述该事务的评论。最终,您可以通过以下操作来验证文件确已提交。
在 Administration Tool 下打开 Oracle BI 信息库,这类似于打开二进制 RPD 文件,但在 SCM 下打开 MDS XML 信息库只能在脱机模式下执行:
在应用程序标题栏中,您会看到其后缀为文本“(under source control)”。现在,您已在 Source Control 下打开了 MDS XML 目录,您的 SCM 配置选项被自动设置为永久。所以当您下次在 Administration Tool 中打开 MDS XML 目录时,将不需要设置 Source Control 选项,它将自动加载。
为了了解在 SCM 下更改信息库会对本地 Git 信息库产生哪些影响,本练习将模拟实际的开发工作,逐步指导您对信息库进行简单更改。
由于更改已显示在 Source Control Log 窗口中并且未出现错误消息,因此可以认为 Administration Tool 正确地调用了 SCM 命令。文件经过修改并保存在 Git 信息库的“未载入工作区”。您需要对这些未载入的文件执行“载入”。“载入”是对当前工作区进行永久更改之前的操作,此处是指本地 SCM 信息库的主要分支。最好使用客户端工具在 SCM 系统中验证这些文件的状态。可以通过两种方式来实现:命令行或图形方式。
要使用命令行界面查看任何已修改文件的状态,请按以下步骤操作:
该命令的结果中所显示的信息与 Administration Tool 提示窗口(在保存前一步中所做更改后弹出)中的信息相同。
要使用 Git GUI 查看任何已修改文件的状态,请按以下步骤操作:
Unstaged Changes 区域中的文件与保存信息库时显示的已修改文件相同。这证明此时 Administration Tool 与 SCM 命令协作成功。现在,您已对修改后的文件进行了健全性检查,可以将文件载入并提交给本地 Git 信息库了。提交后,您的文件将被永久更改。
将 Unstaged Changes 区域内已修改的文件和变更转换为 Staged Changes 状态,并提交这些更改。而 Administration Tool 无法执行提交,只能由开发人员通过 SCM 客户端来完成。无论您使用何种 SCM 工具,情况都是如此。您可以使用命令行界面 (CLI) 或者 GUI 界面。Git GUI 界面非常简单 — 只需单击 Stage Changed 按钮,在 Commit Message 区域输入一条消息,然后单击 Commit 按钮。下面概述的步骤将使用 CLI 来提交更改。
现在,您可以输入 git status 或 git log 命令,验证更改是否已提交给信息库。
使用 Git SCM 客户端工具手动提交更改后,您就已经成功使用了 Oracle BI SCM 功能。作为开发生命周期的一部分,您还需要执行其他一些辅助任务。
在开发周期中,接下来的任务之一是将信息库部署为联机模式,以便您查看和测试使用 MDS XML SCM 所做的任何脱机更改。不能将 MDS XML 文件直接部署到 Oracle BI 服务器。在部署之前,必须将文件再次转换为二进制 RPD 格式。
要将 MDS XML 保存回 RPD 格式:
请注意,Administration Tool 应用程序的标题已变回 RPD 的名称,且不再显示文本后缀 (under source control)。现在,您可以使用 Enterprise Manager Fusion Control 将这个已保存的 RPD 文件上载到 Oracle BI 服务器。
您要了解的下一个任务是查看日志文件并处理错误。在发生错误时,请务必使用上述方法将 MDS XML 重新保存为二进制 RPD 格式。然后,您可以使用 SCM 客户端工具处理 Administration Tool 和您 SCM 信息库之间出现的错误。修复问题后,您可以重新打开 MDS XML 文件并继续进行开发。
在日志文件中,您可以看到发送给 SCM 工具的所有命令。在 MDS XML SCM 模式下,从文件菜单栏选择 File | Source Control | View Logs。您还可以在文件系统的下述位置看到该日志文件,C:\Program Files\OBIEEClient11116\oraclebi\orainst\diagnostics\logs\OracleBIServerComponent\coreapplication\<windows_username>__NQSAdminTool.log where C:\Program Files\OBIEClient11116\,这是 Oracle BI 客户端工具的安装路径。
使用源代码控制管理系统这一观点对于 Oracle 并不是新概念,但却是首次应用于 Oracle BI 开发生命周期。通过将信息库拆分为多个更小的 XML 文件,您可以使用差分引擎来确定修改的文件的增量。它还使得在信息库元数据中搜索特定关键字变得更加简单。它不能代替现有的多用户开发环境,尽管仅通过 Oracle BI 安装文件提供了两个默认的 SCM 命令模板,但没有任何指导指出这两个 SCM 工具在该功能上孰优孰劣。无论如何,该功能提供的 SCM 无关性功能作为 SCM 工具的,有助于 Oracle BI 开发人员的采用???
Christian Screen 是 Capgemini North America 的 Oracle 分析实践高级经理,他是在低级编程、电子商务、数据仓储、企业绩效管理和业务智能等领域拥有 15 年以上技术经验的业务智能推广者。他是 Oracle ACE、Oracle 副总技术官,拥有多项技术和项目管理认证。