0

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

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

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

4

1 回答 1

3

您将无法直接将 ISAM (VSAM ???) 文件直接导入 Pentaho。

您不需要编写程序来卸载 ISAM(VSAM ???)文件, 现有的大型机实用程序(排序等)可用于卸载。然后可以将卸载的文件传输到您的系统(它可能是一个二进制 ebcdic文件),您是否可以处理该文件是另一个问题。


文件:

复杂的文件(例如,有 Cobol 重新定义,发生取决于),将需要 Cobol

对于简单文件:

  • 如果需要, Mainframe-Sort可以将二进制文件转换为文本
  • 从记忆中 Pentaho 有一些 Cobol 能力(基于 cobol2j / cb2xml)
  • 有一个 用于 cobol 处理的legstar 插件。
  • JRecord中有一个 Cobol-to-Csv 程序,可用于将 Cobol 文件转换为 CSV。

但:

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

需要注意的事项

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

其他方法

披露:我编写了 JRecord 并研究了 cb2xml。

于 2016-03-16T22:36:55.780 回答