从大型机提取数据到excel

Posted

技术标签:

【中文标题】从大型机提取数据到excel【英文标题】:Data extraction from mainframe to excel 【发布时间】:2017-07-14 09:22:37 【问题描述】:

如何将大型机中的数据提取到excel中?目前,我正在从 MS 访问中获取数据,但要求是针对大型机的。 提前致谢

【问题讨论】:

怎么会有人回答这个问题???。平面文件中的数据是 VSAM 文件,DB2 数据库 IMS DB ????。您需要进行一些研究并尝试自己解决问题。 欢迎来到 ***.com。请花一些时间阅读***.com/help 页面。我建议你阅读***.com/help/how-to-ask 和***.com/help/dont-ask 在主机上编写一个程序来创建一个 CSV 文件并从主机上 FTP 到您的计算机上? 您可能已经猜到,有很多技术,具体取决于您处理的数据类型。如果数据在大型机数据库中,许多都具有 JDBC 驱动程序,可让您从任何平台对大型机数据进行 SQL 访问。如果数据位于更传统的文件(SAM/VSAM、USS 等)中,那么我很少看到提到的工具之一是远程文件系统访问 - z/OS 上有 NFS 和 SMB 服务器,可以远程访问大型机来自几乎任何其他系统的数据,没有文件传输等等。 【参考方案1】:

首先,请理解“从大型机中提取数据”与“从英特尔中提取数据”类似。以下内容并不全面,但旨在提供一个想法,说明如何以可以有意义地回答的方式提出您的问题。

请理解...之间存在很大差异

技术上可行的方法 你的商店允许什么 根据您的要求,什么可能提供强大且可维护的解决方案

这是三个非常不同的东西。我们中的一些人在 Stack Overflow 上回答问题时的生活经验使我们不愿回答有关技术上可行的问题,而没有提及您的商店中允许的内容或正在解决的实际业务需求。

大型机已经存在了半个多世纪,许多商店都有针对技术问题的标准解决方案。有时解决方案是“不要那样做,而我们会这样做。”违背技术人员的建议或车间标准工作会限制职业生涯。

什么操作系统?

z/OS 在大型机上普遍使用,但确实存在仍然运行其祖先之一的商店,例如 MVS/XA。大型机操作系统可以追溯到 1965 年首次推出的 OS/360。

z/TPF

z/Linux 通常在 z/VM 管理程序之上运行。

z/VSE

数据存放在哪种文件中?

QSAM 或队列顺序访问方法,通常也称为平面文件。

VSAM 或虚拟顺序访问方法。有几种不同类型的 VSAM 文件,包括 KSDS (Keyed Sequential Data Set) ESDS (Entry Sequenced Data Set), RRDS (Relative Record Data Set)和Linear(概念上类似于内存映射文件)。

DBMS,例如 DB2IMS。 DBMS 通常具有提取工具,以允许从其自己的内部格式写入平面文件。例如,DB2 将数据存储在线性 VSAM 数据集中。

Unix 系统服务 文件驻留在与 QSAM 或 VSAM 不同的文件系统中。这将更加熟悉,因为它具有经典 z/OS 文件系统没有的目录结构。

数据是什么样的?

You must know the record layout of the data you wish to retrieve.

大型机数据通常在一条记录中同时包含文本和二进制数据,例如名称和货币金额:

Hopper Grace ar%

...这将是...

x'C8969797859940404040C799818385404040404081996C'

...十六进制。这是代码页 37,通常称为 EBCDIC。

在不知道姓氏限制在前 10 个字节的情况下,给定的名称限制在后面的 10 个字节中,并且货币金额在接下来的 3 个字节中是压缩十进制(也称为二进制编码十进制),您无法准确传输数据,因为代码页转换会破坏 +819.96 的货币金额。转换为 Microsoft Windows 上常用的代码页 1250,您最终会得到...

x'486F707065722020202047726163652020202020617225'

...文本数据被翻译但打包数据被破坏的地方。打包数据在最后一个半字节(最后一个字节的下半部分)中不再具有有效符号,并且数量本身已更改。

安全

您希望访问的数据是否受隐私法规的保护?您可能必须提供一些证据证明,一旦您将数据从大型机转移出去,确保只有授权人员才能访问大型机上的这些数据的任何保护措施都已到位。此类保证可能必须让审计师满意。

你需要什么

您需要知道什么操作系统保存了您的数据,您需要知道什么类型的文件保存了您的数据(DBMS 不是一种文件类型,但我们现在就让它过去吧),并且您需要知道您的记录布局。

通常,检索数据的简单方法是将其从现有数据存储(QSAM、VSAM、DBMS)中提取到一个平面文件中,其中所有数据都是文本格式。 有大型机实用程序可以实现这一目标。 在极端情况下,可以编写一个程序来实现这一目标。完成后,您可以传输数据,而不必担心破坏打包或二进制数据。

如果您的数据所在的位置是 DBMS,您或许可以直接从 DBMS 读取数据,但这可能取决于商店标准,包括安全性。

现代大型机可以通过 FTP、FTPS 和 SFTP 传输数据。在你的店里推荐的东西是问你的技术人员的。

【讨论】:

以上是关于从大型机提取数据到excel的主要内容,如果未能解决你的问题,请参考以下文章

在网站上显示大型 Excel 文件中的数据的最佳方式

使用javascript将大型html表导出到excel

在 PowerShell 中将大型 blob 从 SQL Server 提取到文件需要很长时间

从大型数据集中提取唯一数据

从大型 json 文件 (~8GB) 中自动提取数据

Python:如何快速创建仅包含大型 Excel 工作表中特定列的 pandas 数据框?