SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3632|回复: 1

[推荐] Rational Focal Point 中的数据导入、导出和更新

[复制链接]
发表于 2013-3-9 11:13:43 | 显示全部楼层 |阅读模式
本帖最后由 技术狂人 于 2013-3-9 11:20 编辑   j& `& W% h( `' _: [  g
4 U& ]9 @& T  u: n9 v% D7 j
简介
2 ~4 V* D9 r1 }$ fIBM® Rational® Focal Point™ 帮助您为项目、产品和组合管理制定基于价值的决策。本文全面概述了 Rational Focal Point 中所提供的各种数据导入、更新和导出技术的最佳实践。如果读者要寻找更多信息,然后才决定哪种导入和导出技术最适合他们需求,以及在导入和导出操作中有哪些优化步骤,本文对于这些读者将是最有用的。
, D. R2 m4 R: G; O  b0 n/ X

4 b. g- V2 T% A" ?  B5 q5 Z! A$ M
3 N4 e. r) K/ n2 ^外部数据模型
- u0 W& d* g8 N$ E0 hRational Focal Point 的数据模型包含以下元素(见图 1):
/ K, r8 b  U- V: C+ c
  • 服务器,是 Rational Focal Point 服务器实例,包含一组供全局用户使用的工作区和数据。
  • 工作区,包含相关模块的集合。
  • 模块,用于将元素定义为属性定义。模块包含一组元素。
  • 元素,包含一组属性值。
  • 视图,是模块内被选中的元素和属性子集。
    # Y$ Q4 F5 @* _

" s1 |" {6 h, ~; n5 X4 E! ^图 1. Rational Focal Point 高层次的外部数据模型
. ~6 p% W6 f) H8 e1 H% B& [
+ z4 y) E2 ]- a
* ~& c; O: K2 `  Q

6 i1 h5 O# X, a# ~; K/ ~$ B& w可用的导入、导出和更新选项8 b/ y) j0 {5 L$ U6 ]; v( ^
以下是可用的功能类型,根据所使用的格式进行划分:8 h: K* Z0 M1 T. [
  • 使用 XML 格式导入和导出
  • 使用 Microsoft Excel 格式导入、导出和更新
  • 使用可配置的 REST(Rational Focal Point 6.5.2 及更高版本)导入、导出和更新
  • 使用 REST API 进行导入、导出和更新+ w4 p! u. `6 @- r* A8 ~
使用 XML 格式导入和导出+ R3 o# s: L3 M0 h- f6 i& O
在 XML 格式中,完全支持所有 Rational Focal Point 的属性类型的导出和导入。使用 XML 格式,可以单独导出和导入工作区或模块。XML 导入创建一个新的工作区或模块。换句话说,不能使用 XML 导入来更新现有的工作区或模块。要确定导出的内容,有三个选项可供选择:
: }0 d0 x  q7 Q: Y# {' e/ |+ T( m& u
  • Full export导出整个工作区,包括所有元素、历史日志和属性配置。
  • Limited export:导出的文件是一个压缩文件,包含 XML 格式的模块和纯文本文件格式的附件。
  • Attribute configuration export只有顶层的文件夹和属性配置将被导出。元素和历史日志将被排除。
    . [( o  Y* i, g! c6 ]

# ]8 p  z" u: I( D/ j6 m0 A图 2. Rational Focal Point 中的 XML 工作区导出页面6 h0 @5 U. A2 G5 N8 J6 z( G
" |( L6 {" X* t- m
这种类型的导出和导入操作最常用于将工作区或模块从测试环境迁移到生产环境,或从一个数据库实例迁移到另一个数据库实例。导出的文件是一个压缩文件,它包含 XML 格式的模块和纯文本文件格式的附件。. r# J% c3 g# H8 i# {$ w6 O! c
通过选择 General > Workspaces(见图 3)并使用 Import Workspace 命令按钮,可以将已导出的 Rational Focal Point 工作区 XML 文件导入为一个新的 Rational Focal Point 工作区。
) X/ w6 {1 {6 r
( V( i  f& N' A% i( K* a6 f' ?图 3. Rational Focal Point 中的 XML Import Workspace 页面 6 e0 x- _7 g; _- k2 \( e3 ^7 d
: S& y) x. {: F  k" G, [
使用 Microsoft Excel 格式进行导入、导出和更新+ V$ P) |+ ?3 [' T: y# n2 X
这种方法通常用于将由 Rational Focal Point 外部管理的电子表格数据导入 Rational Focal Point,以实现有限的元素离线更新,或使用 Microsoft Excel 格式生成一份报告。使用这种方法可以导出、导入或更新元素的集合。提供导入的用户界面,包括对 Rational Focal Point 中的输入数据和目标元素之间的列级映射进行选择和配置的选项。2 d* ?3 `% U- c: ]
$ u0 M$ W/ L; j
图 4. Excel 模块导入配置页面, \) a$ d4 w3 v' P

! \$ q  ?9 j( `( O注: 1 B" Y; i- F# m7 Q' U
使用 Microsoft Excel 格式的导入操作不支持链接类型 属性。
; b5 }$ R( s2 J2 b$ [( Y2 H& p使用可配置的 REST 进行导入、导出和更新
: c/ r2 L2 P8 PRational Focal Point 6.5.2 可以被配置为 REST 客户端,以便从支持 REST API 的外部 Web 应用程序检索数据。使用此特性,您可以检索单个文件或外部资源的集合,并映射数据,以创建 Rational Focal Point 元素或更新现有的元素。您可以在用户界面定义输入数据值到元素属性的映射。此特性还支持通过选定的元素属性值编写 XML,并使用内容更新外部系统。/ m  @5 {. w% Y3 g6 D
使用 REST API 进行导入、导出和更新0 ]3 v$ D2 W  n0 X! b
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 链接,获得更多详细资料。
1 D8 c& C6 k" _) y+ k$ R

# `" y! Q# o, C5 [% e( ~, B
/ ^  Q4 _; J3 ~% Y8 S/ u, X导入和更新大量 XML 数据的挑战
/ i% R  g( z& ^: U. U2 {* ?导入大量 XML 格式的数据,这是一种资源密集型操作。导入操作的复杂性和所花的时间取决于数据量、链接的数量,以及要导入的数据所使用的表达式的数量。在导入过程中,其他用户在其操作中有可能会遇到缓慢的情况。在某些情况下,即使成功完成导入操作后,这种缓慢依然存在。如果数据较复杂,并触发许多表达式,就有可能发生这种情况。这些表达式是在后台处理的,所以在这些后台操作完成之前都会使用更多系统资源。
% q) n& ]" h! r; x根据导入数据的复杂性和数量,整个导入操作可能需要几分钟到几个小时。例如,在本地测试环境中,导入有 200 个元素(每个元素有 20 个属性)的模块要用 40 秒完成,但在有 1000 个元素时,导入时间增加至 140 秒。% [5 f+ u8 e0 u

1 m$ _! z( V" T2 N1 M
2 y- L0 t. S& [- X8 t
准备大量 XML 数据的最佳实践
7 F% n+ T' d6 Z! ^0 r' p/ p; u本主题介绍在准备导入和更新大量数据时要考虑的一些最佳实践
; ~( F; P7 S% o; c2 t6 Z
  • 确保输入数据为最佳数量
  • 分配足够的操作系统内存
  • 在进入实时环境之前先在测试环境进行验证
  • 备份数据
  • 选择一个合适的时间
  • 每次只运行一个导入操作) w9 v; Y( P! w+ O
确保输入数据为最佳数量  s& v6 G& Z6 g) @
确保要导入和更新的数据是最优的。Rational Focal Point 为导出 XML 数据格式的工作区或模块提供了三个选项:Full export、Limited export 和 Attribute configuration export。确保您使用适当的导出选项,以避免导出的 .zip 文件中包含不想要的数据。! d8 Z- T! V1 M( W, ?# W( n5 I
分配足够的操作系统内存
7 W+ |. |/ Z+ n/ v8 b& a# L) I确保有足够的内存被分配到 Rational Focal Point 服务器。分配更多内存,使 Rational Focal Point 拥有更多的资源供后台操作(如表达式的执行、搜索索引和通知)使用,而又不会对整体性能产生负面影响。关于到底需要多少内存,虽然在目前还没有相关规则,但您可以使用下列准则来计算近似值:7 j1 N4 U% ?# j1 r
  • 导入属性所需的平均内存为 4 KB。
  • 导入 10,000 个元素,其中每个元素有 10 个属性,估计内存约 400 MB (4 x 10 x 10000 KB)。
    4 O7 x+ a2 |/ ]  P
要修改最大内存,在 $TOMCAT_HOME\bin\ 目录中找到 fpenv.sh 文件(Linux 系统)或 fpenv.bat 文件(Microsoft Windows 系统),并编辑 SERVER_MAXHEAP 属性,如在图 5 的示例所示。8 m, t' E4 `) |9 N/ ~

+ B# {$ ?5 p! m. S2 S! I, u6 ^图 5. 样例 fpenv.sh 内存配置文件 # Q/ x3 e' C6 H& S
#!/bin/sh
% Y, _8 \0 m; Z) l* n#########################################################
# F- b: v" L$ R, N/ E# This Script is intended to be invoked by setenv.sh                            ) n# H' ^" R3 E" s9 @
#                                                                                      
* b. P5 u  v* ^$ g8 G( b7 _1 ^# Back up if you really need to alter
) p- Z0 L0 C3 M$ h7 F& o) }# B$ X% C* P#                                                                                       
3 f0 z9 c) N4 h5 o3 H: |#########################################################
, N5 F- `' q  o2 o. _' a$ [' H+ L. zecho "Customizing server for Focal point "
. A/ M. J2 X, M9 D- O% EDEBUG="TRUE"+ ~* ]. ^) X2 m& q$ v8 ~/ I8 i; S3 C
...2 h6 H$ z: T. x. {
#|------------- SERVER/JVM/JAVA MEMORY USAGE --------------
: V' p8 m3 k- k8 w4 W4 \#|  Used to allocate more Memory to application from Systems installed Memory i.e.,RAM
& {  K  p; P3 z5 _" a% C" p#|   ( Y, ], f. b4 C! ]0 |
#   SERVER_MAXHEAP , SERVER_MAXHEAP  
7 `2 M: I! _$ F1 H#       Sets Maximum amount of Memory for JAVA/Server (called Object Heap space)
# h' G! N! A5 T#      SERVER_MAXHEAP Maximum heap memory of JVM running Focal Point Application
: l! l7 O. [& Q#      SERVER_MINHEAP Start heap memory to allocate to JVM at startup  ( Z( _( s* X0 U/ H* T
#      Example for allocating 1GB: SET SERVER_MAXHEAP=1024M( A. Y0 U: R' A7 I7 I% {
#       SET SERVER_MINHEAP=756M/ |  i; l0 m7 m* z8 W0 p: B- m
#
7 m: a( [) Z! M#       In a production system, setting SERVER-MAXHEAP equal to SERVER_MINHEAP, 8 K. J" o" Y. D9 k$ S
        can save some GC overhead costs
2 `5 C: w* F% V3 C  t# h& u0 [+ u#       $ P* E6 @, I7 e3 u2 Z$ N) d0 |
SERVER_MAXHEAP="1500M", ~; k% ?8 S: e. u
SERVER_MINHEAP="750M"

9 B% ^9 {( k9 W( k) X* h2 V6 t在进入实时生产环境之前先在测试环境中进行验证1 m6 y3 R9 c* }% l! C
在与生产环境完全相同的测试环境中测试导入或更新场景,然后才在生产环境中运行它们。在测试环境中收集的信息(导入数据的有效性、需要的时间,等等),对于生产环境中的导入操作是有用的。
% V) J3 E, w* E  D8 P$ M9 Z3 k, a备份数据% z9 L1 v# h4 `; [6 H1 P, V
确保数据库已被正确备份,然后再开始导入和更新操作。( [$ W: ?* H& G
选择一个合适的时间
& s8 F" R: d# b7 s, r因为 XML 导入或更新操作是一种资源密集型操作,所以应选择正确的时间来执行这些操作,以便最大限度地降低对用户造成的不便。您可以选择在正常工作时间以外,当 Rational Focal Point 服务器的请求数量较少时运行这些操作。' ^8 K1 f" ]9 g3 i0 ~" M
每次只运行一个导入操作
9 G# i( U0 N; V! W5 V. K! U" t5 b由于导入操作的资源密集性质,每次只应运行一个导入操作。
% B0 Z5 W# [7 F, f& ]# h" a
- z  R) h1 I/ N% G- ]- n+ J

4 i; D8 O. N& E! N6 X1 G" L大型 XML 导入操作的最佳实践; s: G6 m2 J1 B6 P* A2 J) x3 a% `
遵循以下准则,改进导入操作:# Z0 j- e! k4 S# I
  • 收集 Rational Focal Point 资源的统计信息:) S7 C1 |6 o2 b# w
    • 内存统计信息
    • 属性缓存统计信息
    • 表达式队列统计信息
      ) U' t7 v# t9 K
  • 收集 Rational Focal Point 数据库表的统计信息
    6 u" d/ N: {  T% r7 B. d! v
收集 Rational Focal Point 资源的统计信息
( ?1 Y# k. s* O, a) w在大型操作中,重要的是要监视 Rational Focal Point 服务器的健康状况,并收集感兴趣的几个统计信息。您可以从 Rational Focal Point 应用程序中获得这个信息。这些信息包括内存使用、表达队列监视和属性缓存统计信息。由于操作的状态也会显示在同一个浏览器会话中,您可能必须使用一个不同的用户 ID 创建一个新的浏览器会话来监视信息。! |- [& G* z+ x; n. r5 W
Rational Focal Point 内存
, {! A0 T6 s- j2 b您可以通过选择 General > About Rational Focal Point 监视 Rational Focal Point 内存。如果出现可用内存不足,就会显示一个红色警告。要修改分配的内存,请遵循“分配足够的操作系统内存”主题中的步骤,并重新启动服务器。8 g: U7 |& Y! B. I! _" s9 R: f( ]4 m
技巧:$ d* V- F9 I/ g/ O. l  F% z/ P, ]
先在测试环境中测试大型操作,这始终是一个很好的实践。
" m- l2 {; s: \  ^( `2 g7 R! P* }1 ?1 A9 E* A
图 6. 正在运行的实例的操作系统资源统计信息/ q1 V4 a1 L  L

6 f+ R9 S1 k- i# n0 c2 r0 d3 `6 y$ \
属性缓存统计信息
* E* O8 I3 r5 Q0 v% x! m9 u4 z% Q3 e  o4 ?Rational Focal Point 使用缓存来提高性能。您可以选择 Advanced > Caches 并检查属性的缓存详细信息,从而监视属性缓存统计信息。为了操作得更快,属性缓存的命中率必须达到 95% 以上。如果缓存已满,并且缓存命中率下降至低于 95%,应增加属性缓存的大小。此外,如果属性缓存的大小明显增加,则应增加 Rational Focal Point 分配的内存。请参阅 分配足够的操作系统内存 主题,了解如何基于缓存大小的增加而增大分配的内存。
9 U$ W$ w9 k" o. d  i/ b. V4 p, k" {# r1 x; y
图 7. 缓存使用统计信息' _* i% Z/ i( w! p

, q& z$ i# z) q: M* u: _2 B/ B1 Q监视表达式队列统计信息- R' H& y. n# G1 r/ }# D
您可以通过选择 Advanced > Expression Queue 并查看表达队列历史图来监视表达式队列。在图 8 的示例中,初始阶段的急剧上升,表示随着导入操作的进展,表达式会被逐渐地添加到队列。该图显示了一个向下的曲线,因为表达式的执行速度大于表达式的传入速度。在某些情况下,您可能也看到图表中的平稳状态。这种状态保持很长一段时间,或缓慢下降。如果表达式队列的大小没有快速减少,它可能会对 Rational Focal Point 和数据库服务器造成压力,这可能会拖慢导入进程。下一节将讨论如何提高表达式评估的速度。4 P; d% c6 a$ Q1 w! y) M* t4 G6 h

9 e% I3 M( S5 c5 I6 b3 C  M$ N图 8. 表达队列统计信息历史图
( d5 t1 [$ {) u  s" B
8 s/ V) p7 n6 e& J收集 Rational Focal Point 数据库表的统计信息* e7 T, P* j3 l  q( E$ ]+ ~5 n* ^
监视表达式队列评估,尤其是在中间阶段,这是很重要的。通过经常收集以下 Rational Focal Point 表的数据库统计,您可以更快地进行表达式评估,而其中 xxx 会根据发生导入的项目的表 ID 而有所不同:6 M, l1 }; s  a5 m9 i
  • Attxxx
  • formulxxx
  • matirxxxx
  • formulaqueue
  • formuladependson; j1 L& N/ \" c( [. e/ a
收集这些表的统计信息,可以确保索引是最新的,并且查询优化器选择了最佳评估计划。您还可以调度一个作业来定期收集统计信息,但为了做到这一点,您可能需要数据库管理员权限。如果导入操作的运行超过一小时,则每小时收集一次统计信息。4 W% m  q# ~5 T% r
关注“参考资料”一节中“Expression queue tuning”链接,了解有关如何配置表达式队列,实现最佳表达式评估的信息。
1 a$ K) E4 a& u: j, l+ ?9 Q* C$ j! f! q% v+ C, y2 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
 楼主| 发表于 2013-3-9 11:21:18 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-1-16 20:37 , Processed in 0.073597 second(s), 8 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表