将 RDS 转移到 S3 再转移到 RDS 或 Redshift 实现近实时传输

0

【以下的问题经过翻译处理】 IHAC 使用一组 RDS(250 个数据库,每个客户一个)实例用于 OLTP,另一组 RDS 使用转换后的数据进行分析。

他们所有的客户数据都必须进行隔离(目前大约有 250 个客户,但还在增加)。

他们正尝试使用 DMS 进行迁移,但遇到了问题。 RDS 到 RDS 对他们来说真的很慢,CDC 也不好用,所以他们改用了 RDS 到 S3,然后使用 Glue 进行数据转换并放入分析服务器。

他们目前的解决方案简单快捷,但随后他们面临了 DMS 端点限制的问题。

他们只有大约 350 GB 的数据,但我仍然认为他们使用 Redshift 或 Redshift Spectrum for OLAP 可能会更好。

问题仍然在于如何进行迁移和数据转换最有效。

由于使用方法不对,DMS CDC 仍然可能存在问题。

但是,还有 RDS 快照导出的选项可以与 Redshift Spectrum 一起使用 。这能否用于增量数据? https://aws.amazon.com/about-aws/whats-new/2020/01/announcing-amazon-relational-database-service-snapshot-export-to-s3/

由于客户数据隔离,将会有数百个数据库,每个数据库都有相同的表名,分别在 S3 中需要一个单独的目录。

有什么建议吗?

1 Antwort
0

【以下的回答经过翻译处理】 根据您的客户对“近乎实时”的定义,您有几个选择,但所有这些选择都需要考虑各种成本和因素:

  1. 使用 WAL 复制到 Kinesis: <https://aws.amazon.com/blogs/database/stream-changes-from-amazon-rds-for-postgresql-using-amazon-kinesis-data-streams-and-aws-lambda />。这会消耗您主数据库的资源,但您可以通过设置副本来减少资源消耗。
  2. 定时对变更了的数据进行 S3 导出。这是成本最低的方法,您可以决定从哪些表导出数据以及导出的频率。您可以选择每10分钟左右做一次,可以使用Lambda 和 AWS Batch 实现。
  3. 升级为 Aurora 并使用数据库流。这样您在写入时的影响最小,只需使用lambda 将 SQL 语句转换为数据文件即可。
  4. 将 DMS 与 RDS 作为源,S3 作为目标。与#1一样,建议您在 RDS 副本上设置。
profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen