- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这就是我一直在努力实现的目标。
我们正在放弃一个名为 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/
我是一名优秀的程序员,十分优秀!