目标
该教程旨在让任何具备 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 工具,也可以通过本文来加深了解。
在 Windows 上安装 Git 客户端
用于开发 Oracle BI 元数据信息库的 Administration
Tool 是一个基于 Microsoft Windows 的应用程序。Administration Tool
将使用 Git 客户端软件与 Git SCM 信息库进行通信。因此,配置 Oracle BI MDS XML
SCM 功能的第一步就是将 Git 客户端安装到开发所使用的工作站:
从 http://git-scm.com/downloads 下载 Git
SCM Windows OS 客户端,并将其安装到 Oracle BI Administration Tool
所在的本地服务器或工作站。
运行安装程序,并接受安装向导中的所有默认设置,但 Adjusting Your
PATH environment 除外。在该步骤中,请务必选择 Run Git from the Windows
Command Prompt 选项,如下所示。
在安装向导的其他步骤中,均接受默认设置。
图 1
安装向导完成后,打开新的 Command Prompt。
在命令窗口中执行下列命令,以验证 Git 客户端是否安装正确:
# git
您会获得以下命令行界面 (CLI) 使用消息:
图 2
使用 MDS XML SCM 选项
MDS XML 语法与核心 XML 标准无明显差异。但 MDS XML
提供了几个具体参考,使之能够与 Oracle Metadata Service 标准兼容(您可以想象一下使用
RCU 实用程序创建的 MDS 模式)。此外,它与使用 Oracle BI XML API 生成的 XML
不同,后者仅输出一个 XML 文件。MDS XML 输出大量独立但逻辑上引用的 XML 文件,这些文件可用于分离元数据,以更好地利用
XSD 合规性和存储功能。
该功能的设置可归结为三个主要步骤:
- 创建 MDS XML 目录和文件
- 设置 RPD,以支持 MDS XML SCM 功能
- 在您的工作站上创建初始 Git 信息库
创建 MDS XML 目录和文件
Oracle BI 元数据信息库开发人员必须能够以脱机模式打开当前的开发
RPD,以创建必要的 MDS XML 文件来获取 SCM 支持。
1.打开 Administration Tool,然后打开 RPD,选择
File | Open | Offline……,以便在脱机模式下进行开发。
2.当信息库在编辑器中打开后,从文件菜单中选择 File | Save
As… | MDS XML Documents。
3.在您开发用计算机上选择一个位置,如 C:\_Book\TennisRPD,用于保存
MDS XML 文档。
4.根据 RPD 的大小,保存过程可能需要几分钟。
5.打开 Windows Explorer 窗口并导航到第 3 步中选择的路径,查看展开的文件夹结构。
图 3
返回 Administration Tool 并选择 File | Close
关闭 RPD 模型。
这样就创建了供 SCM 功能使用的 MDS XML 目录结构和文件。但到目前为止,您的
Oracle BI 11.1.1.6+ 客户端工具还不知道要使用哪种 SCM 实程序来管理这些新建的文件。因此您需要在
Administration Tool 的选项区域配置 XML 文件来告诉它。
设置信息库以支持 MDS XML SCM 功能
最终,Administration Tool 将参考基于 XML 的配置文件,以了解如何通过您选择的
SCM 工具(此处为 Git)来执行命令。由于 Oracle BI SCM 功能具有 SCM 客户端无关性,所以
Administration Tool 只对 SCM 客户端执行常规函数调用。那些 SCM 客户端特定的命令必须被记录在一个
XML 配置文件中,而该 XML 配置文件必须通过 Administration Tool 工具中的一个选项来创建。要配置
SCM 特定命令:
- 在 Administration Tool 中,从文件菜单中选择 Tools | Options。
- 选择 Source Control 选项卡。
- 单击 New... 按钮
- 此时弹出 Specify new configuration file 提示,要求您以 XML
文件格式将新的配置文件保存到某个位置。默认位置类似于 C:\Program Files\OBIEEClient11116\oraclebi\orainst\config\OracleBIServerComponent\coreapplication,或者是您安装
Oracle BI 客户端工具的位置。
- 输入名称并确保 XML 扩展名保持完整。例如,artofbi-git-scm.xml。
- 单击 Save 按钮,此时出现 SCM Configuration Editor。
- 在 SCM Configuration Editor 中单击 Load 按钮。如果您使用的服务器已配置了
Oracle BI 服务器完整安装,您会看到两个后缀为 template.xml 的文件。选择其中一个文件并单击
OK 按钮,编辑器的命令字段将显示与文件名中 SCM 客户端相对应的语法。但是,如果使用 Oracle
BI 客户端工具安装,则不能使用这些模板。您可以在本文的下载部分下载 Git SCM 模板。但对目前来说,在后面的步骤中,您将创建命令输入并将其保存到第
5 步中输入的配置文件中
- 单击 Cancel 按钮关闭 Select configuration file 提示。
- 现在,按照 Git 客户端命令行开关和命令来更新字段。另外,如果您在安装 Git 客户端时使用了默认安装路径,则
Git 可执行文件位于 C:\Program Files\Git\cmd\ 下。但由于您之前安装 Git
客户端时使用了 PATH 变量选项,因此不需要使用完整路径名称。
按图 4 所示填写命令字段。
图 4对于 SCM 命令中的 Add Folder,输入
git add ${file}
9.对于 SCM 命令中 Add File,输入 git add ${file}
10.对于 SCM 命令中的 Delete,输入 git rm -force
${file}。
11.为了提高性能,您还可以使用 ${filelist} 选项来填写 Delete
命令。(这是一个最佳实践。)其语法为 git rm -force ${filelist}。
12.对于 SCM 命令中的 Rename,输入 git mv -f ${from}
${to}
13.在 Description 字段中,填写有关配置文件用途的注释,如“这是一个
ArtOfBi.com Git SCM 配置模板。”
14.在 SCM Configuration Editor 中单击 OK
按钮关闭并保存配置。
此时将会提示您其中一些命令是空的。只需单击 OK 按钮忽略该提示,然后再次单击
OK 关闭 Options 提示。
您可能已经注意到,我们没有配置 SCM Configuration Editor
中 Environment Variables 或 Post-save comment 选项卡下的任何项。SCM
客户端的环境变量通常在客户端安装过程中设置。您可以在 Post-save comment 选项卡输入一条消息,则当源控制系统下的信息库被保存且
Administration tool 成功调用 SCM 命令后,将会显示该消息。要添加一条评论,使之在调用
SCM 命令后显示,您需要:
要打开您之前创建的源代码控制配置文件,从 Administration
Tool 文件菜单中选择 Tools | Options。
- 单击 Source Control 选项卡。
- 单击 Edit… 按钮。
- 打开之前步骤中创建的 artofbi-git-scm.xml 文件。
- 单击 Post-save comment 选项卡
- 在大文本字段中输入类似于“请开发人员务必提交 Oracle BI RPD SCM Git 信息库。”的文本。
- 单击 OK 按钮来保存对 SCM 配置的编辑。
- 在其余所有提示窗口中单击 OK 按钮。
- 在您的工作站上创建初始 Git 信息库
到目前为止,您已创建了 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 文件执行初始导入:
- 打来新的命令提示窗口。
- 将目录更改为您保存 MDS XML 文件时选择的根目录。例如,cd C:\_Book\TennisRPD
- 执行下列命令来初始化(创建)空的 Git 信息库:
- # git init
- 执行下列命令,将该根目录下的所有文件添加(导入)到 SCM 信息库中:
# git add .
确保在“add”后面添加了句点,它是所有对象的通配符。执行过程需要几分钟时间,具体视
RPD 和 MDS XML 文件大小而定。
执行以下命令,将记录导入到新的本地 SCM 信息库中,并正式提交文件,以作为 Git SCM 跟踪的对象:
# git commit -m "Initial Commit"
考虑到要参考 MDS XML 信息库中的每个文件,在初次执行时可能需要几分钟时间。请确保在
-m 标志后的提交消息上加双引号(不接受单引号,且无引号的文本将被解释为命令的一部分)。
图 5
到目前为止,您已执行了基本的 Git SCM 实例化命令。git init
命令在根目录下创建 .git 信息库文件夹。git add . 命令对要添加到 Git 信息库中的所有文件和文件夹进行确认。最后,git
commit -m "Initial Commit" 命令把通过 git add .
命令添加的文件保存到信息库中,并提供一条描述该事务的评论。最终,您可以通过以下操作来验证文件确已提交。
从命令提示终端执行以下命令,查看添加到 Git 信息库中的文件是否提交了。
# git log
您还可以看到与本次提交相对应的唯一 hash tag id,它用来与以后的其他提交操作相区别。
利用 MDS XML SCM 选项进行开发
在上一节,您已设置了本地 Git 信息库,将 MDS XML 文件初始导入到信息库中,并使用
Administration Tool 为 Git 创建了 SCM 配置文件。在本节中,您将了解如何在开发
Oracle BI 元数据时使用 MDS XML SCM 选项。您的日常开发工作大致分为 4 项任务:
在 Source Control 下打开信息库
在 RPD 中进行更改
- 验证对 SCM 信息库的更改
- 提交 SCM 信息库更改
- 在 Source Control 下打开信息库
- 在 Administration Tool 下打开 Oracle BI 信息库,这类似于打开二进制
RPD 文件,但在 SCM 下打开 MDS XML 信息库只能在脱机模式下执行:
- 打开 Administration Tool
- 从文件菜单中选择 File | Open | MDS XML… 或从文件菜单图标中单击绿色文件夹。
- 打开之前创建 MDS XML 时使用的根文件夹。例如,C:\_Book\TennisRPD。界面应选择最后一次
MDS XML 操作时使用的目录。
- 输入信息库口令。例如,Admin123 .
- 在出现的 Source Control 提示中单击 Use Source Control 选项。
图 6
- 在刚刚出现 Source Control 提示中单击 Browse… 按钮,选择您在上一节中创建的
artofbi-git-scm.xml 文件。
- 单击 OK 按钮。这时,元数据信息库将在 Administration Tool 中打开。
在应用程序标题栏中,您会看到其后缀为文本“(under source control)”。现在,您已在
Source Control 下打开了 MDS XML 目录,您的 SCM 配置选项被自动设置为永久。所以当您下次在
Administration Tool 中打开 MDS XML 目录时,将不需要设置 Source Control
选项,它将自动加载。
在 RPD 中进行更改
为了了解在 SCM 下更改信息库会对本地 Git 信息库产生哪些影响,本练习将模拟实际的开发工作,逐步指导您对信息库进行简单更改。
- 在 Business Model and Mapping(逻辑层) 部分展开 TennisBM
业务模型。
- 展开 Dim Player 表。
- 右键单击 Nationality 列,并从上下文菜单中选择 Duplicate。
- 从菜单项中单击 File | Save,保存更改。
- 在弹出的“Do you wish to check global consistency?”提示中单击
Yes 按钮。
一致性检查成功后,将会提示您需要在 Source Control Management
下修改的文件(如下图所示),该提示指出,根据您所做的简单更改,将需要修改五个文件。
图 7
在提示窗口中单击 Yes 按钮继续操作。
此时弹出 Source Control Log 提示。其中显示了 Administration
Tool 为支持源代码控制所执行的操作,这是通过调用之前在 artofbi-git-scm.xml 文件中输入的命令来实现的。此时,SCM
命令已在后台执行且 RPD MDS XML 文件已被保存。窗口中有两个复选框 Close when commands
finish 和 Only show dialog when errors occur。这些复选框均未选中,实际上也无需选中,因为您会一直需要看到该过程的输出,以便在出现问题时立即作出反应。
图 8
单击 Close 按钮关闭提示窗口。
验证对 SCM 信息库的更改
由于更改已显示在 Source Control Log 窗口中并且未出现错误消息,因此可以认为
Administration Tool 正确地调用了 SCM 命令。文件经过修改并保存在 Git 信息库的“未载入工作区”。您需要对这些未载入的文件执行“载入”。“载入”是对当前工作区进行永久更改之前的操作,此处是指本地
SCM 信息库的主要分支。最好使用客户端工具在 SCM 系统中验证这些文件的状态。可以通过两种方式来实现:命令行或图形方式。
要使用命令行界面查看任何已修改文件的状态,请按以下步骤操作:
- 打开 Command Prompt 并导航到保存 MDS XML 目录的根目录,然后创建您的 Git
信息库。
执行命令:
- # git status
- 该命令的结果中所显示的信息与 Administration Tool 提示窗口(在保存前一步中所做更改后弹出)中的信息相同。
- 要使用 Git GUI 查看任何已修改文件的状态,请按以下步骤操作:
- 打开 Windows Explorer 窗口
- 打开创建 Git 信息库时使用的根目录。例如,C:\_Book\TennisRPD\
右键单击 .git 目录(一个隐藏文件夹,可通过 Folder Options
显示),并从上下文菜单中选择 Git GUI。其注意,当您在 Windows 机器上安装 Git 客户端时就已安装了
Git GUI。
图 9
Unstaged Changes 区域中的文件与保存信息库时显示的已修改文件相同。这证明此时
Administration Tool 与 SCM 命令协作成功。现在,您已对修改后的文件进行了健全性检查,可以将文件载入并提交给本地
Git 信息库了。提交后,您的文件将被永久更改。
提交 SCM 信息库更改
将 Unstaged Changes 区域内已修改的文件和变更转换为 Staged
Changes 状态,并提交这些更改。而 Administration Tool 无法执行提交,只能由开发人员通过
SCM 客户端来完成。无论您使用何种 SCM 工具,情况都是如此。您可以使用命令行界面 (CLI) 或者
GUI 界面。Git GUI 界面非常简单 — 只需单击 Stage Changed 按钮,在 Commit
Message 区域输入一条消息,然后单击 Commit 按钮。下面概述的步骤将使用 CLI 来提交更改。
打开命令提示窗口,将目录更改为您创建 Git 信息库的根目录。例如,C:\_Book\TennisRPD。
执行命令:
# git add .
输入命令:
# git commit - m "First full changes
to the MDS XML SCM"
现在,您可以输入 git status 或 git log 命令,验证更改是否已提交给信息库。
执行辅助 SCM 任务
使用 Git SCM 客户端工具手动提交更改后,您就已经成功使用了 Oracle
BI SCM 功能。作为开发生命周期的一部分,您还需要执行其他一些辅助任务。
将 MDS XML 信息库部署到 Oracle BI 服务器
在开发周期中,接下来的任务之一是将信息库部署为联机模式,以便您查看和测试使用
MDS XML SCM 所做的任何脱机更改。不能将 MDS XML 文件直接部署到 Oracle BI
服务器。在部署之前,必须将文件再次转换为二进制 RPD 格式。
要将 MDS XML 保存回
RPD 格式:
当 source control 下的 MDS XML 信息库处于打开状态时,在
Administration Tool 的文件菜单中单击 File | Save As | Repository…。
在出现的 Save As 提示中输入 RPD 的名称
单击 Save 按钮。
请注意,Administration Tool 应用程序的标题已变回 RPD
的名称,且不再显示文本后缀 (under source control)。现在,您可以使用 Enterprise
Manager Fusion Control 将这个已保存的 RPD 文件上载到 Oracle BI 服务器。
查看 Oracle BI SCM 日志文件
您要了解的下一个任务是查看日志文件并处理错误。在发生错误时,请务必使用上述方法将
MDS XML 重新保存为二进制 RPD 格式。然后,您可以使用 SCM 客户端工具处理 Administration
Tool 和您 SCM 信息库之间出现的错误。修复问题后,您可以重新打开 MDS XML 文件并继续进行开发。
在日志文件中,您可以看到发送给 SCM 工具的所有命令。在 MDS XML SCM 模式下,从文件菜单栏选择
File | Source Control | View Logs。您还可以在文件系统的下述位置看到该日志文件C:\ProgramFiles\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 开发人员的采用??? |