1

我有许多在 AWS Aurora 集群上运行的 MySql 数据库 (OLTP)。我还有一个将用于 OLAP 的 Redshift 集群。目标是将插入和更改从 Aurora 复制到 Redshift,而不是删除。在这种情况下,Redshift 将是一个不断增长的数据存储库,而 Aurora 数据库将创建、修改和销毁记录——Redshift 记录不应该被销毁(至少,不应该作为这种复制机制的一部分)。我正在查看 DMS,但似乎 DMS 没有从复制中排除删除的粒度。设置我需要的环境的最简单和最有效的方法是什么?我也对第三方解决方案持开放态度,只要它们在 AWS 中工作。

目前已设置 DMS 连续同步。

4

2 回答 2

1

您可以考虑使用 DMS 复制到 S3 而不是 Redshift,然后针对该 S3 数据使用 Redshift Spectrum(或 Athena)。

S3 作为 DMS 目标只是追加,因此您永远不会丢失任何内容。

请参阅 https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html

https://aws.amazon.com/blogs/database/replicate-data-from-amazon-aurora-to-amazon-s3-with-aws-database-migration-service/

这样,事情会变得有点复杂,您可能需要一些 ETL 来处理该数据(取决于您的需要)

您仍然会通过“D”记录类型获得删除,但您可以根据需要忽略或处理这些。

于 2019-01-25T09:04:05.453 回答
0

捕获从 Aurora 到 Redshift 的插入和更新的简单有效的方法可能是使用以下方法:

Aurora 触发器 -> Lambda -> Firehose -> S3 -> RedShift

下面的 AWS 博客文章简化了此实施,看起来与您的用例几乎相似。它还提供了示例代码,以通过 AWS Lambda 和 Firehose 获取从 Aurora 表到 S3 的更改。在 Firehose 中,您可以将目标设置为 Redshift,这会将数据从 S3 无缝复制到 Redshift。

使用 AWS Lambda 捕获 Amazon Aurora 中的数据更改

AWS Firehose 目标

于 2019-01-27T22:14:58.587 回答