gpt4 book ai didi

java - 使用 Java 将 AS400 .MBR 文件读取到平面文件

转载 作者:行者123 更新时间:2023-12-02 03:27:22 24 4
gpt4 key购买 nike

这就是我一直在努力实现的目标。

我们正在放弃一个名为 GO-Anywhere 的供应商工具,该工具在触发选择查询后从 DB2 数据库读取数据,创建一个文件,将数据写入其中,将其压缩,然后将其 sftp 到我们的 ETL 工具可以读取的机器上它。

我已经能够在几乎相同的时间内实现 GA 所做的事情,事实上,通过使用 JSCH 和即时 jaring un-jaring,在 6.5GB 文件上比上述工具快了 5 分钟。这使得读写文件的时间从之前的 32 分钟减少到现在的 27 分钟。

但是为了满足新的 SLA 要求,我们需要进一步将时间减少到几乎一半,即 13 多分钟左右

为了实现上述目标,我已经能够直接读取 .MBR 文件并在 13 分钟或更短的时间内将其推送到 Linux 计算机,但该文件的格式不是明文。我想知道如何使用 Java 或使用 AS400 命令将 .MBR 文件转换为纯文本格式而不触发 SQL。

感谢任何帮助。

最佳答案

您错误地认为 IBM i 上的“FILE”就像 Windows/Unix/Linux 上的文件。

事实并非如此。

与 IBM i 中的所有其他对象类型一样,它是一个具有明确定义的接口(interface)的对象。

在 *FILE 对象的特定情况下,它是一个数据库表。 DB2 for i 不是安装在操作系统之上的附加 DBMS; DB2 for i 只是他们给集成到操作系统中的 DBMS 起的名称。用户程序不能像 Windows/Unix/Linux 上的文件那样直接打开存储空间。您必须通过操作系统提供的接口(interface)。

有两个可用接口(interface):记录级访问 (RLA)SQL。两者都可以在 Java 应用程序中使用。 RLA 由 com.ibm.as400.access.AS400File 类提供。 SQL 访问由 JDBC 类提供。

SQL 可能会提供最佳性能,因为您使用 RLA 处理一组记录而不是一次处理一个记录。

看看各种性能相关JDBC properties可用..

从性能的角度来看,您的单个进程不太可能充分利用系统,即。 CPU 使用率不会达到 100%,磁盘 Activity 也不会超过 60-80%。

既然如此,最好的选择是将流程分成多个流程。您需要某种方法将每个进程限制为选定的记录集。可能按主键隔离。除非记录按主键顺序,否则这会增加一些开销。如果表没有已删除的记录,则使用 RRN() 按物理顺序分隔可能会起作用。但请注意,在旧版本的操作系统上,使用 RRN() 需要全表扫描。

关于java - 使用 Java 将 AS400 .MBR 文件读取到平面文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38625707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com