我们正在将数据从DB2数据库迁移到Hadoop。迁移实际上在DB2上运行select * from table1
,将其导出到分隔文件,获取该文件并将其放入Hadoop。 DB2和Hadoop驻留在不同的服务器上,不同的网络上。我们需要运行一些验证步骤,以确保从DB2中提取的数据完全已导入到Hadoop。因此,仅在两个系统上运行select count(1) from table1
都无济于事,因为我们可能会遇到由于特定字符问题(e.x.newline等)而无法导入某些列值的情况。
在两个系统上以编程方式测试数据的最佳方法是什么?
P.S:Hadoop和DB2都在RHEL上运行,因此如果可以包含任何对此过程有帮助的Linux专用工具。
答案 0 :(得分:0)
不确定这是否是最好的"方式,但我的方法是:
正如之前的海报之一所建议的那样,将数据从Hadoop导出到分隔文件,并针对DB2导入文件运行diff。这可能是最简单的方法。
编写一个简单的实用程序,它同时连接两个数据库,从两个表中提取数据进行比较,并比较结果集。谷歌搜索了一下,似乎已经有一些实用程序 - 例如http://www.dbsolo.com/datacomp.html。
希望这会有所帮助。