【问题标题】:Best Way to compare a list of tables in a dynamic fashion from two DBs以动态方式比较两个数据库中的表列表的最佳方法
【发布时间】:2020-12-10 06:50:31
【问题描述】:

我们有一个用例,我们需要以汇总的方式比较两个数据库(Oracle 和 AWS Redshift)之间的 100 个表

这些表是相同的,我们需要知道这些表是否匹配。让我知道是否有任何简单的方法可以高效地比较数据

【问题讨论】:

    标签: python sql database compare


    【解决方案1】:

    我为此开发的最佳方法是对两个数据库中每个表中的每一列进行 md5 签名并比较这些签名(或者只是组合列签名来制作表签名)。我不得不进行一些编码,以确保 NULL 和空字符串错误比较并处理其他一些极端情况,但不要太极端。

    Redshift 可以非常快速地执行这种签名分析,但我过去遇到的最大问题是其他数据库计算签名的速度。正如你所问的“以一种高效的方式”。因此,在过去,当源数据库太弱而无法计算大量 md5 时,我不得不编写“轻量级”哈希函数。

    【讨论】:

    • 嗨,谢谢你。我们最终得到的是在表格中汇总的自定义 md5 签名,每列的表格分区级别。类似于 select part_col1, part_col2, concat(max(col1),'~',min(col1),'~',count(distinct col1)... [repeated for all cols] from table group by part_col1, part_col2。这个结果证明是一个很好的、高效的检查......
    猜你喜欢
    • 2014-09-11
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    相关资源
    最近更新 更多