使用Pentaho DI读取ISAM COBOL文件

时间:2016-03-16 18:50:24

标签: postgresql pentaho cobol kettle isam

我们在包含历史数据的大型机上有多个非常旧的 ISAM COBOL 文件。我必须使用Pentaho DI构建一个ETL进程来读取/迁移这些数据(存储在ISAM文件中),并将其加载到PostgreSQL数据库中,只需很少或不进行转换。

如何使用Pentaho DI实现这一目标?

一种解决方案可能是编写一个Cobol程序,将ISAM文件转换为大型机中的常规数据集,然后轻松ftp /读取转换后的文件。但是,如果有解决方案直接从Pentaho的ISAM文件中读取而无需开发另一个cobol程序,请告诉我。另外,请告诉我有关迁移的任何提示。

1 个答案:

答案 0 :(得分:2)

能够直接将ISAM(VSAM ???)文件直接导入Pentaho。

您无需编写程序来卸载ISAM(VSAM ???)文件, 现有大型机实用程序(排序等)可用于执行卸载。然后可以将卸载的文件传输到您的系统(它可能是 binary-ebcdic 文件), 你可以处理文件是一个不同的问题。

文件:

复杂的文件(例如,有Cobol Redefines,发生依赖),将需要Cobol

对于简单文件:

  • 大型机排序可将二进制文件转换为文字 如果需要的话。
  • 从记忆中Pentaho有一些Cobol功能(基于cobol2j / cb2xml)
  • 有一个legstar plugin 用于cobol加工。
  • 可以使用JRecord中的Cobol-to-Csv程序 将Cobol文件转换为CSV。

可是:

  • 文件可能不够,您可能需要其他相关细节,这可能需要额外的Cobol提取程序。
  • 当前表格的结构可能不适合您的新目的。有时候,它可能会 更容易对大型机进行一些转换,因为大型机上有所有相关的表/数据库。

需要注意的事项

  • Cobol 重新定义 - 需要在大型机上的Cobol中进行整理(或在Java~JRecord步骤中)。 Redefines子句是一个主要问题 当Pic-x / 9字段重新定义二进制(comp / comp-3)字段时。
  • 取决于 - 在传输之前修复Cobol。
  • 多记录文件

其他方法

披露:我写了JRecord并参与了cb2xml。