我们正在着手将遗留 OpenVMS RMS 文件迁移到关系数据库(MS SQL 2012 和 Oracle 10g 都可用)。我想知道是否有:
- 检索索引文件架构的工具
- 解析索引文件的工具
- 将自定义 RMS 数据格式(分区小数等)作为包/API/库处理的工具 也许我应该改变方法?
我们正在着手将遗留 OpenVMS RMS 文件迁移到关系数据库(MS SQL 2012 和 Oracle 10g 都可用)。我想知道是否有:
有几种可用的工具,特别是通过 ODBC 供应商(我为其中之一工作:Attunity)。
1 >> 检索索引文件架构的工具
请说清楚。仅查找文件中的记录/列布局和索引或文件之间的关系。
1a) 当前使用的文件如何?Cobol、Basic、Fortran 程序?数据检索?他们将使用一些数据定义方法,所以你需要一个可以利用它的工具。Connx 和 Attunity Connect 可以“导入”CDD 定义、BASIC - MAP 文件、Cobol Copybooks。变体通常也包括在内。我编写了许多(perl/awk)脚本来将特殊定义转换为 XML。
1b ) 分析/RMS,或调用 RMS XAB 的程序可以获得可用的索引信息。Atunity connect 将知道如何将这些映射到 1a 中的字段)
1c ) OpenVMS 上的(索引)文件之间没有正式的、存储的关系。这就是程序逻辑中的全部内容。然而,一些适度智能的 Perl/Awk/DCL 脚本通常可以通过查看文件名和数据类型匹配来生成可能的外键/主键表。
我们在谈论多少个文件/布局/千兆字节?
2 >> 解析索引文件的工具
请说清楚?一旦知道结构(问题 1),就可以通过读取该结构来完成解析,对吗?您永远都不想了解索引文件的内部结构。只需告诉 RMS 获取记录。
3 >> 将自定义 RMS 数据格式(分区小数等)作为包/API/库处理的工具
再次,请澄清。一旦知道结构,只需使用“正确”工具来使用该结构进行读取,它肯定会尊重详细的数据定义。
(我知道自己写一个很简单,只是觉得这个行业会有东西)
著名的遗言……“很简单”。整个公司都在为一般情况而建立和发展。我承认,对于特定情况,它可能相对简单,但“魔鬼在细节中”。
在 Attunity Connect 案例中,我们有一个 UDT(用户定义的数据类型)来处理“奇数”案例,通常涉及 DATES。整数中的日期,字符串中的日期,自 xxx 以来的单位都是开箱即用的,但例如有些有 -1 表示“某个高日期”,需要一些帮助才能将其存储在数据库中。
所有数据库都有一些批量加载工具(BCP、SQL$LOADER)。只要您可以提供符合预期的数据(表格、逗号分隔、是否引用、是否转义),您就应该处于良好状态。
EGH 工具 Vselect 可能是一种方便且高性能的方式,可以批量读取索引文件、过滤和格式化一些文件,并为 DB 加载程序输出顺序文件。它可以比 RMS 更快地读取 RMS 索引文件!(虽然它有自己的元数据语言!)
Attunity 提供完全访问和复制服务。它们包括 CDC(变更数据捕获),不仅可以加载数据,还可以近乎实时地保持最新状态。这对于“进化”与“革命”很有用。查看 Attunity 的“复制”。有了数据字典后,只需指向所需的表(包括、排除过滤器),指向目标数据库并单击即可复制。当然,有(全局或每个表)转换的选项(例如将 AREA-CODE+EXHANGE+NUMBER 转换为单个电话号码,或添加修改后的日期列)。
这会是一次大的开关转换,还是希望迁移数据并让旧系统保持几天、几个月、几年的活力,一直保持数据密切同步?
希望这对一些人有所帮助,Hein van den Heuvel。
OP:也许我应该改变方法? 大概。
您可能会考虑寻找数据迁移供应商,其中一些可能有现成的解决方案,如果不是作为 COTS 工具,更有可能打包为服务(我认为这不是一个大市场)。
这对您没有帮助的是我认为应用程序代码存在更大的问题:谁将更改进行 RMS 调用的所有代码,以及进行关系数据库调用的相应代码?实体(“Joe Programmer”,或一些工具)如何知道数据迁移到哪里,以便他可以编写正确的调用?对于数据表示可能会发生变化的事实,您要做什么?
理想情况下,您需要一个自动迁移工具,它将移动数据本身(因此知道数据布局和表示会发生变化),并会进行相应的代码更改。您也可以寻找这类供应商。