【问题标题】:Avoid duplication in Amazon DMS CDC/ Ongoing Replication task避免 Amazon DMS CDC/持续复制任务中的重复
【发布时间】:2022-01-13 13:14:29
【问题描述】:

我们正在执行 DMS 任务 CDC,并持续从 RDS Mysql 复制到 Redshift。我们面临的问题是,即使我们有一个主键,一些记录也会作为重复项多次插入到 Target Redshift。 在 AWS DMS 上运行 CDC 任务并作为目标 Redshift 时,是否有避免重复行的最佳实践?

(p.s 我们设置了主键和外键,但仍然会出现重复)。

【问题讨论】:

    标签: amazon-web-services amazon-redshift amazon-rds aws-dms


    【解决方案1】:

    Redshift 不强制唯一性 - 请参阅 https://docs.aws.amazon.com/redshift/latest/dg/t_Defining_constraints.html 这是由于集群数据仓库解决方案的性质。

    您需要有一个 UPSERT 进程,显式删除每个 PK 的先前行,然后插入新行。仅 INSERT 进程将在 Redshift 中创建重复项。我相信 DMS 可以选择执行此操作,但我的 ATM 面前没有文档。

    【讨论】:

    • 感谢您的回答。是的,我知道主键问题。我正在寻找这些 DMS 选项文档,我尝试了 aws dms 官方文档,但没有提到这个选项
    • 所以我不是 DMS 方面的专家,一般建议不要使用它。与许多 AWS 高端服务一样,它是一个 80% 的解决方案,但存在许多使人绊倒的缺陷。我知道 mySQL 和 RS 之间的 PK 需要完全匹配才能使 DMS 正常工作。我认为有一个开关可以使它执行 UPSERT 进程与 INSERT 但当您选择 RS 作为目标时它可能不是自动的。 (确保它是 RS 而不是 postgres)我会查看重复项,看看这些行有什么不同(如果有的话)。可以提供有关原因的线索。
    • 感谢您的建议,我会研究一下这个主键和行的差异
    猜你喜欢
    • 2016-01-20
    • 2022-07-17
    • 2017-04-03
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 2013-03-20
    相关资源
    最近更新 更多