Rational Focal Point 中的数据导入、导出和更新

概述处理大量复杂数据的各种方法

导入、导出和更新大量数据是 IBM Rational Focal Point 中重要但却资源密集的操作。本文全面概述了 Rational Focal Point 中所提供的各种数据导入、更新和导出技术的最佳实践,以及这些操作中要遵循的各种方法和准则。

Karthikeyan Dakshinamurthy, 高级软件工程师, IBM

作者照片Karthikeyan Dakshinamurthy 是在印度班加罗尔的 Rational Focal Point 开发团队的一名集成架构师。他拥有多样化的背景和丰富的经验,曾在 IT 行业任职开发人员、团队领导,以及各种 IBM Rational 产品的软件架构师。


developerWorks 投稿作者

Sreejith Nishanth, 咨询软件工程师, IBM

Sreejith NishanthSreejith Nishanth 是印度班加罗尔的 Rational Focal Point 开发团队的首席开发人员。他在该团队工作了五年。在此岗位上,他已经处理了许多客户和产品性能问题。他还担任了 Rational Focal Point 的全球领导人,并作出了许多贡献。



2013 年 3 月 07 日

简介

IBM® Rational® Focal Point™ 帮助您为项目、产品和组合管理制定基于价值的决策。本文全面概述了 Rational Focal Point 中所提供的各种数据导入、更新和导出技术的最佳实践。如果读者要寻找更多信息,然后才决定哪种导入和导出技术最适合他们需求,以及在导入和导出操作中有哪些优化步骤,本文对于这些读者将是最有用的。


外部数据模型

Rational Focal Point 的数据模型包含以下元素(见图 1):

  • 服务器,是 Rational Focal Point 服务器实例,包含一组供全局用户使用的工作区和数据。
  • 工作区,包含相关模块的集合。
  • 模块,用于将元素定义为属性定义。模块包含一组元素。
  • 元素,包含一组属性值。
  • 视图,是模块内被选中的元素和属性子集。
图 1. Rational Focal Point 高层次的外部数据模型
高层次的资源及其关系

可用的导入、导出和更新选项

以下是可用的功能类型,根据所使用的格式进行划分:

  • 使用 XML 格式导入和导出
  • 使用 Microsoft Excel 格式导入、导出和更新
  • 使用可配置的 REST(Rational Focal Point 6.5.2 及更高版本)导入、导出和更新
  • 使用 REST API 进行导入、导出和更新

使用 XML 格式导入和导出

在 XML 格式中,完全支持所有 Rational Focal Point 的属性类型的导出和导入。使用 XML 格式,可以单独导出和导入工作区或模块。XML 导入创建一个新的工作区或模块。换句话说,不能使用 XML 导入来更新现有的工作区或模块。要确定导出的内容,有三个选项可供选择:

  • Full export导出整个工作区,包括所有元素、历史日志和属性配置。
  • Limited export:导出的文件是一个压缩文件,包含 XML 格式的模块和纯文本文件格式的附件。
  • Attribute configuration export只有顶层的文件夹和属性配置将被导出。元素和历史日志将被排除。
图 2. Rational Focal Point 中的 XML 工作区导出页面
Workspace XML 导出页面,包含导出选项

图 2 的大图

这种类型的导出和导入操作最常用于将工作区或模块从测试环境迁移到生产环境,或从一个数据库实例迁移到另一个数据库实例。导出的文件是一个压缩文件,它包含 XML 格式的模块和纯文本文件格式的附件。

通过选择 General > Workspaces(见图 3)并使用 ImportWorkspace 命令按钮,可以将已导出的 Rational Focal Point 工作区 XML 文件导入为一个新的 Rational Focal Point 工作区。

图 3. Rational Focal Point 中的 XML Import Workspace 页面
XML 导入页面,提示要上传 *.fpz 文件

图 3 的大图

使用 Microsoft Excel 格式进行导入、导出和更新

这种方法通常用于将由 Rational Focal Point 外部管理的电子表格数据导入 Rational Focal Point,以实现有限的元素离线更新,或使用 Microsoft Excel 格式生成一份报告。使用这种方法可以导出、导入或更新元素的集合。提供导入的用户界面,包括对 Rational Focal Point 中的输入数据和目标元素之间的列级映射进行选择和配置的选项。

图 4. Excel 模块导入配置页面
根据列的映射 Excel 数据

图 4 大图

注:
使用 Microsoft Excel 格式的导入操作不支持链接类型 属性。

使用可配置的 REST 进行导入、导出和更新

Rational Focal Point 6.5.2 可以被配置为 REST 客户端,以便从支持 REST API 的外部 Web 应用程序检索数据。使用此特性,您可以检索单个文件或外部资源的集合,并映射数据,以创建 Rational Focal Point 元素或更新现有的元素。您可以在用户界面定义输入数据值到元素属性的映射。此特性还支持通过选定的元素属性值编写 XML,并使用内容更新外部系统。

使用 REST API 进行导入、导出和更新

Rational Focal Point 6.4.0 及更高版本支持 REST XML API,您可以使用 REST XML API 检索或更新 XML 数据格式的 Rational Focal Point 元素。Rational Focal Point 6.5.2 及更高版本支持 REST Resource Description Framework (RDF) API,您可以使用该 API 检索或更新 RDF 文件格式的 Rational Focal Point 元素。关注“参考资料”部分的 Rational Focal Point API Reference 链接,获得更多详细资料。


导入和更新大量 XML 数据的挑战

导入大量 XML 格式的数据,这是一种资源密集型操作。导入操作的复杂性和所花的时间取决于数据量、链接的数量,以及要导入的数据所使用的表达式的数量。在导入过程中,其他用户在其操作中有可能会遇到缓慢的情况。在某些情况下,即使成功完成导入操作后,这种缓慢依然存在。如果数据较复杂,并触发许多表达式,就有可能发生这种情况。这些表达式是在后台处理的,所以在这些后台操作完成之前都会使用更多系统资源。

根据导入数据的复杂性和数量,整个导入操作可能需要几分钟到几个小时。例如,在本地测试环境中,导入有 200 个元素(每个元素有 20 个属性)的模块要用 40 秒完成,但在有 1000 个元素时,导入时间增加至 140 秒。


准备大量 XML 数据的最佳实践

本主题介绍在准备导入和更新大量数据时要考虑的一些最佳实践

  • 确保输入数据为最佳数量
  • 分配足够的操作系统内存
  • 在进入实时环境之前先在测试环境进行验证
  • 备份数据
  • 选择一个合适的时间
  • 每次只运行一个导入操作

确保输入数据为最佳数量

确保要导入和更新的数据是最优的。Rational Focal Point 为导出 XML 数据格式的工作区或模块提供了三个选项:Full export、Limited export 和 Attribute configuration export。确保您使用适当的导出选项,以避免导出的 .zip 文件中包含不想要的数据。

分配足够的操作系统内存

确保有足够的内存被分配到 Rational Focal Point 服务器。分配更多内存,使 Rational Focal Point 拥有更多的资源供后台操作(如表达式的执行、搜索索引和通知)使用,而又不会对整体性能产生负面影响。关于到底需要多少内存,虽然在目前还没有相关规则,但您可以使用下列准则来计算近似值:

  • 导入属性所需的平均内存为 4 KB。
  • 导入 10,000 个元素,其中每个元素有 10 个属性,估计内存约 400 MB (4 x 10 x 10000 KB)。

要修改最大内存,在 $TOMCAT_HOME\bin\ 目录中找到 fpenv.sh 文件(Linux 系统)或 fpenv.bat 文件(Microsoft Windows 系统),并编辑 SERVER_MAXHEAP 属性,如在图 5 的示例所示。

图 5. 样例 fpenv.sh 内存配置文件
#!/bin/sh
#########################################################
# This Script is intended to be invoked by setenv.sh                            
#                                                                                      
# Back up if you really need to alter
#                                                                                        
#########################################################
echo "Customizing server for Focal point "
DEBUG="TRUE"
...
#|------------- SERVER/JVM/JAVA MEMORY USAGE --------------
#|  Used to allocate more Memory to application from Systems installed Memory i.e.,RAM
#|   
#   SERVER_MAXHEAP , SERVER_MAXHEAP  
#       Sets Maximum amount of Memory for JAVA/Server (called Object Heap space)
#      SERVER_MAXHEAP Maximum heap memory of JVM running Focal Point Application
#      SERVER_MINHEAP Start heap memory to allocate to JVM at startup  
#      Example for allocating 1GB: SET SERVER_MAXHEAP=1024M
#       SET SERVER_MINHEAP=756M
#
#       In a production system, setting SERVER-MAXHEAP equal to SERVER_MINHEAP, 
        can save some GC overhead costs
#       
SERVER_MAXHEAP="1500M"
SERVER_MINHEAP="750M"

在进入实时生产环境之前先在测试环境中进行验证

在与生产环境完全相同的测试环境中测试导入或更新场景,然后才在生产环境中运行它们。在测试环境中收集的信息(导入数据的有效性、需要的时间,等等),对于生产环境中的导入操作是有用的。

备份数据

确保数据库已被正确备份,然后再开始导入和更新操作。

选择一个合适的时间

因为 XML 导入或更新操作是一种资源密集型操作,所以应选择正确的时间来执行这些操作,以便最大限度地降低对用户造成的不便。您可以选择在正常工作时间以外,当 Rational Focal Point 服务器的请求数量较少时运行这些操作。

每次只运行一个导入操作

由于导入操作的资源密集性质,每次只应运行一个导入操作。


大型 XML 导入操作的最佳实践

遵循以下准则,改进导入操作:

  • 收集 Rational Focal Point 资源的统计信息:
    • 内存统计信息
    • 属性缓存统计信息
    • 表达式队列统计信息
  • 收集 Rational Focal Point 数据库表的统计信息

收集 Rational Focal Point 资源的统计信息

在大型操作中,重要的是要监视 Rational Focal Point 服务器的健康状况,并收集感兴趣的几个统计信息。您可以从 Rational Focal Point 应用程序中获得这个信息。这些信息包括内存使用、表达队列监视和属性缓存统计信息。由于操作的状态也会显示在同一个浏览器会话中,您可能必须使用一个不同的用户 ID 创建一个新的浏览器会话来监视信息。

Rational Focal Point 内存

您可以通过选择 General > About Rational Focal Point 监视 Rational Focal Point 内存。如果出现可用内存不足,就会显示一个红色警告。要修改分配的内存,请遵循“分配足够的操作系统内存”主题中的步骤,并重新启动服务器。

技巧:
先在测试环境中测试大型操作,这始终是一个很好的实践。

图 6. 正在运行的实例的操作系统资源统计信息
正在运行的实例的操作系统资源列表

图 6 大图

属性缓存统计信息

Rational Focal Point 使用缓存来提高性能。您可以选择 Advanced>Caches 并检查属性的缓存详细信息,从而监视属性缓存统计信息。为了操作得更快,属性缓存的命中率必须达到 95% 以上。如果缓存已满,并且缓存命中率下降至低于 95%,应增加属性缓存的大小。此外,如果属性缓存的大小明显增加,则应增加 Rational Focal Point 分配的内存。请参阅 分配足够的操作系统内存 主题,了解如何基于缓存大小的增加而增大分配的内存。

图 7. 缓存使用统计信息
分配给每个资源类型的缓存详细信息。

图 7 的大图

监视表达式队列统计信息

您可以通过选择 Advanced > Expression Queue 并查看表达队列历史图来监视表达式队列。在图 8 的示例中,初始阶段的急剧上升,表示随着导入操作的进展,表达式会被逐渐地添加到队列。该图显示了一个向下的曲线,因为表达式的执行速度大于表达式的传入速度。在某些情况下,您可能也看到图表中的平稳状态。这种状态保持很长一段时间,或缓慢下降。如果表达式队列的大小没有快速减少,它可能会对 Rational Focal Point 和数据库服务器造成压力,这可能会拖慢导入进程。下一节将讨论如何提高表达式评估的速度。

图 8. 表达队列统计信息历史图
表达式执行状态随着时间变化的图线

图 8 的大图

收集 Rational Focal Point 数据库表的统计信息

监视表达式队列评估,尤其是在中间阶段,这是很重要的。通过经常收集以下 Rational Focal Point 表的数据库统计,您可以更快地进行表达式评估,而其中 xxx 会根据发生导入的项目的表 ID 而有所不同:

  • Attxxx
  • formulxxx
  • matirxxxx
  • formulaqueue
  • formuladependson

收集这些表的统计信息,可以确保索引是最新的,并且查询优化器选择了最佳评估计划。您还可以调度一个作业来定期收集统计信息,但为了做到这一点,您可能需要数据库管理员权限。如果导入操作的运行超过一小时,则每小时收集一次统计信息。

关注“参考资料”一节中“Expression queue tuning”链接,了解有关如何配置表达式队列,实现最佳表达式评估的信息。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=860894
ArticleTitle=Rational Focal Point 中的数据导入、导出和更新
publish-date=03072013