我在AWS Aurora集群上运行了许多MySql数据库(OLTP)。我也有一个将用于OLAP的Redshift集群。目标是将插入和更改从Aurora复制到Redshift,但不删除。在这种情况下,Redshift将成为一个不断增长的数据存储库,而Aurora数据库将创建,修改和销毁记录-Redshift记录永远都不应销毁(至少,不作为此复制机制的一部分)。 我正在查看DMS,但是DMS似乎没有从复制中排除删除的粒度。设置我所需的环境最简单,最有效的方法是什么?我也欢迎第三方解决方案,只要它们可以在AWS中使用。
当前已设置DMS连续同步。
答案 0 :(得分:1)
您可以考虑使用DMS而不是Redshift复制到S3,然后针对该S3数据使用Redshift Spectrum(或Athena)。
作为DMS目标的S3仅附加,因此您永远不会丢失任何东西。
请参阅 https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html
这样,事情就变得复杂了一些,您可能需要一些ETL来处理该数据(取决于您的需求)
您仍然会获得记录类型为“ D”的删除,但是您可以根据需要忽略或处理这些删除。
答案 1 :(得分:0)
捕获从Aurora到Redshift的插入和更新的一种简单有效的方法可能是使用以下方法:
Aurora触发器-> Lambda-> Firehose-> S3-> RedShift
下面的AWS博客文章简化了该实现,并且看上去与您的用例几乎相似。 它还提供了示例代码,还可以通过AWS Lambda和Firehose获取从Aurora表到S3的更改。在Firehose中,您可以将目标设置为Redshift,这将把数据从S3复制到Redshift。