我正在测试数据迁移,为此我创建了 2 个 SQL 脚本,一个用于 Oracle 服务器,一个用于 MySQL。我的想法是将他们的结果导出到 .txt 文件,然后使用 unix DIFF 进行比较。它适用于小文件,但对于大文件,Oracle 和 MySQL 的客户端不支持导出如此大的文件。
一种方法是破坏查询结果然后进行比较,但这非常耗时。在我看来,如果我可以使用某些程序批量破坏结果集,那可能是可能的。
请建议我一个简单的方法来做到这一点。谢谢阿杰
我正在测试数据迁移,为此我创建了 2 个 SQL 脚本,一个用于 Oracle 服务器,一个用于 MySQL。我的想法是将他们的结果导出到 .txt 文件,然后使用 unix DIFF 进行比较。它适用于小文件,但对于大文件,Oracle 和 MySQL 的客户端不支持导出如此大的文件。
一种方法是破坏查询结果然后进行比较,但这非常耗时。在我看来,如果我可以使用某些程序批量破坏结果集,那可能是可能的。
请建议我一个简单的方法来做到这一点。谢谢阿杰
在两个数据库上运行相同的查询(以相同的方式对数据进行排序)。在将其写入文件之前逐行对其进行比较。
Step 1a: Select data from Oracle
Step 1b: Select data from MySQL
Step 2: Compare results row against row.
Step 3a: Write to file 1
Step 3b: Write to file 2
如何比较?连接列。来自 Oracle 的示例:col1||'、'||col2||'、'||col3。在 MySQL 中做同样的事情。此时,您可以比较行与行,而不仅仅是字符串与字符串。
问题是用什么工具?答案:Pentaho 数据集成。最好的开源 ETL 工具。
下载:http: //community.pentaho.com/
如何使用它: http: //pldwh.blogspot.co.uk/
如果你知道任何 OOP 语言。你可以自己写。只要您对数据进行排序并连接列,就可以了。