将 MySQL 行从一个表迁移并转换到另一个表

时间:2021-05-04 13:10:30

标签: amazon-web-services aws-lambda amazon-aurora aws-dms

我需要将 30 亿条记录从一个 MySQL Aurora 表迁移到同一集群中的 5 个不同表。

还有2列的转换也必须发生。

所以当我们迁移时,我们需要将 xml 转换为 json,然后 json 将存储在目标表之一中。

我们正在寻找将这些数据从一个 MySQL 表迁移到另一个表的最佳方法,而且我们在 AWS 上,因此我们可以灵活地使用任何可以帮助我们实现这一目标的服务。

到目前为止,这是我们计划的

MySQL TABLE ----DMS------>S3 ------LAMBDA to convert XML to JSON and create 5 types of files ---->Lambda on file create and Load data local to 5 Different MySQL table .

但是有一件事我们想知道如果 Load data local 在这两者之间失败我们如何处理?所以 Lambda 会将对从 s3 本地加载数据的查询提交到 MySQL 但是我们如何在 Lambda 中跟踪加载数据本地成功还是失败?

我们不能使用任何直接的方式,因为我们需要在两者之间转换数据。

这里有什么更好的方法可以使用吗?

我们可以使用数据管道代替 Lambda 函数来加载本地数据吗?

或者我们可以使用 DMS 将文件从 S3 上传到 MySQL 吗?

请建议能够处理故障情况的最佳方法是什么

1 个答案:

答案 0 :(得分:0)

您所做的基本上是一个 ETL 过程。我建议您查看 AWS EMR 或 AWS Glue。由于您似乎没有那么多经验,我会使用 Glue。

使用 Glue,您基本上可以从 MySQL 读取数据,进行转换并直接写回 MySQL。此外,由于 Glue 在后台运行 Spark,您可以利用它的分布式计算,这将加快您的进程,而不是使用单线程 lambda 函数。