将 Aurora 数据迁移到 Redshift DWH 的好方法是啥?

Posted

技术标签:

【中文标题】将 Aurora 数据迁移到 Redshift DWH 的好方法是啥?【英文标题】:What would be a good approach to migrate Aurora data into a Redshift DWH?将 Aurora 数据迁移到 Redshift DWH 的好方法是什么? 【发布时间】:2020-04-29 08:48:52 【问题描述】:

我们需要将各种 Aurora 数据库中的数据移动和整合到 Redshift 数据库中。

由于我们的终端节点是 AWS 服务,我们正在学习 Glue、Pipeline 和 Matillion。

Glue 是否打算用于像这样的“传统 ETL”?可以使用 Glue 来创建和填充“正在运行”的事实和维度表吗?

我读到一个常见的模式是使用 Glue 运行的 apache spark 引擎转换数据 → 将数据移动到 S3 → 将数据移动到 Redshift。

为什么在我们应用了 dim/fact 逻辑之后需要将数据移动到存储桶中?

使用 Python/Scala 创建这些模糊/事实转换是否可行(因为 Glue 没有 UI 转换)?

我还了解到,在某些情况下,将数据存储在 Redshift 中并保持与原点相同的结构(无事实/暗淡)会更有效。是否有规则可以尝试查看何时会出现这种情况?

Matillion 看起来是一个不错的选择(类似于 SSIS),但似乎有点贵。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

如果您的 Aurora 数据库是基于 Postgres 的,那么我建议从 Redshift's Federated Query 开始。 FQ 允许您直接从 Redshift 查询您的 Aurora Postgres 表。使用 FQ,您可以设置一个简单的同步过程,将数据从 Aurora 导入 Redshift(请参阅这些exampleSPs)。

如果您的 Aurora 数据库是基于 mysql 的,或者您的数据量非常大,您可能希望从 exporting the data from Aurora to S3 开始,然后是 loading the extracts to Redshift。

随着您对 Redshift 的熟悉,您可以将分配键和排序键添加到表中以提高性能。 Redshift Advisor will suggest effective distribution keys and sort keys 基于您运行的查询。

这个过程应该可以让您快速开始使用 Redshift,然后您可以在以后需要它们的独特和特定功能时开始使用 Glue 或 Matillion。

【讨论】:

以上是关于将 Aurora 数据迁移到 Redshift DWH 的好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

用于独立游戏后端的 Aurora、Redshift 和 DynamoDB?

如何将 DynamoDb 迁移到 RDS (Aurora)

Aurora vs Redshift vs DynamoDB for Indie Game Backend?

使用 Ruby on rails Elastic Beanstalk 将 RDS 迁移到 Aurora MySQL

AWS 迁移MSSQL 数据库到 Aurora

将数据从 Amazon Redshift 迁移到 DynamoDB