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