Java 如何比较来自两个不同数据库的数据?
我正试图找到解决我问题的办法。问题陈述Java 如何比较来自两个不同数据库的数据?,java,database,Java,Database,我正试图找到解决我问题的办法。问题陈述 我有两个不同的数据库的Oracle和AS400。这两个数据库具有相同的结构和相同的表(但表名明显不同) AS400通过互联网更新,Oracle通过商店或仓库更新 两个数据库每天都进行同步,同步后,我们需要每天生成一份报告,以了解数据中是否存在任何差异 需要从双方进行比较,首先从AS400获取数据,然后与Oracle DB进行比较,反之亦然 我们这里说的是1000万张唱片。第一次是对整个数据库进行比较,随后的报告将只对更改或新添加到数据库中的记录进行比较(这
提前感谢。我从未使用过它,但Liquibase同时支持DB2和Oracle
简单的方法是设置两个数据源,从每个存储中获取数据并进行比较 当然,你的内存会被1000万条记录所占用,所以也许可以尝试批量抓取和比较数据(注意在这样做时发生的更新)
如果您使用多线程,可能会获得进一步的性能增强如果您担心初始比较的内存消耗,为什么不考虑使用某种形式的记录数据散列呢。假设有一个合适的主键(比如长键)和SHA-1摘要,这意味着每个记录4+20=24字节,或者每个数据库大约200 Mb 两个数据库每天都进行同步,同步后,我们需要每天生成一份报告,以了解数据中是否存在任何差异 根据同步的完成方式,您可能只需要获取Oracle数据库和AS400数据库的每日事务输入。处理这些日常事务文件要比处理整个数据库快得多 如果没有日常事务文件,那么这是您的第一步。创建每日事务文件。1)在Java中使用Joda库,在Java中使用日期算法将轻而易举。2) 使用批处理获取记录,在数据库上的命中率将最小。@BBBZone两个数据库每天都进行同步,同步后,我们需要每天生成一份报告,以了解数据中是否存在任何差异。-这句话需要稍加澄清。同步后,两个数据库将具有相同的数据权限。AS400数据将在oracle中更新,oracle数据将在AS400中更新。那么,进行比较的必要性是什么呢。