【问题标题】:Reading ISAM COBOL files using Pentaho DI使用 Pentaho DI 读取 ISAM COBOL 文件
【发布时间】:2023-03-28 04:12:01
【问题描述】:

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

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

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

【问题讨论】:

  • 您真的是指 ISAM,还是真的指 VSAM?我怀疑有人会支持大型机 ISAM 文件的任何内容,他们不希望有人在 VSAM 存在 30 多年后仍在使用它们,
  • 一种可能的替代方法是为您的文件(无论它们的类型)找到一个 JDBC 驱动程序。不过,乍一看,我只看到商业产品。

标签: postgresql pentaho cobol kettle isam


【解决方案1】:

不会将 ISAM (VSAM ???) 文件直接导入 Pentaho。

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


文件:

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

对于简单文件:

  • Mainframe-Sort可以将Binary文件转换为Text 如果需要。
  • 凭记忆 Pentaho 有一些 Cobol 功能(基于 cobol2j / cb2xml)
  • 有一个legstar plugin 用于 cobol 处理。
  • JRecord 中有一个 Cobol-to-Csv 程序可以使用 将 Cobol 文件转换为 CSV。

但是:

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

注意事项

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

其他方法

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

【讨论】:

  • 很遗憾它没有被 OP 接受为答案。
  • 谢谢@PepitoSh。不可能人们使用 Cobol 没有多少阅读/赞成。从积极的方面来说,回答问题的竞争并不激烈
猜你喜欢
  • 2016-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多