我有一个 postgres 表,正在将其同步到雪花中,并且想要验证 pg 表中的所有数据是否都在雪花表中。我的想法是对每列进行哈希和并验证它是否相同,但一直无法弄清楚。
首先我尝试使用snowflake中的HASH函数和SUM来获取一个值,这非常方便,但是PSQL不支持HASH函数所以我无法正确比较。
然后我尝试将列转换为文本,使用 PSQL 中的 string_agg 和雪花中的 listagg 连接,并使用 md5 进行 HASH 并比较值。这也不起作用,因为 Snowflake 无法使用 listagg 处理大值(我的表有 5B 行)。
最好的方法是什么?我也愿意接受完全不同的想法!
查看 Datafold 的开源 data-diff 工具。它是专门为这个用例而设计的。