1


我想比较 2 个大数据集(2 个表),每个包含大约 10,000,000 条记录:id以及其他属性的哈希值。

如果id左右两边是一样的,但是hash不一样,我需要比较每一个属性,看看哪个属性发生了变化。
实现这一目标的最佳方法是什么?

我已经尝试过DiffKit,我正在寻找可能更快的东西。

4

1 回答 1

0

下面的查询对于id哈希不同的每个地方都有一行,并且只包含不同的列(其他的都是 NULL)

SELECT a.id
    , NULLIF(a.col1,b.col1) t1_col1
    , NULLIF(b.col1,a.col1) t2_col1
    , NULLIF(a.col2,b.col2) t1_col2
    , NULLIF(b.col2,a.col2) t2_col2
    […]
FROM table1 a INNER JOIN table2 b
ON a.id = b.id
AND a.hash <> b.hash

(id,hash) 上的索引将加快查询速度。

于 2013-10-29T13:03:41.863 回答