【发布时间】:2013-10-29 12:29:32
【问题描述】:
我想比较 2 个大数据集(2 个表),每个包含大约 10,000,000 条记录:id 和其他属性的哈希。
如果左侧和右侧的id相同,但hash不同,我需要比较每个属性,看看哪个属性发生了变化。
实现这一目标的最佳方法是什么?
我已经尝试过DiffKit,我正在寻找可能更快的东西。
【问题讨论】:
-
如果您使用的是 SQL Server,您可能会通过编写 SQL Server Integration Services (SSIS) 包获得最佳性能。
-
我还没有深入研究它,但如果
DiffKit在数据库中执行它的检查,(即它只是自动写入语句),你不太可能做太多在普通情况下更好。你也许可以自己写一个声明;你自己试过什么?了解更多关于您的 RDBMS、表和数据集(例如,id的重复次数)也会有所帮助。 -
当您说每个表包含“其他属性的哈希”时,您的意思是该值存储为列吗?组合(id、哈希)是否在至少一个表中编入索引?
-
是的,它存储为单独的列。两个表中的 ID 列都有索引,但我可以创建另一个索引。