我需要将 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 吗?
请建议能够处理故障情况的最佳方法是什么
答案 0 :(得分:0)
您所做的基本上是一个 ETL 过程。我建议您查看 AWS EMR 或 AWS Glue。由于您似乎没有那么多经验,我会使用 Glue。
使用 Glue,您基本上可以从 MySQL 读取数据,进行转换并直接写回 MySQL。此外,由于 Glue 在后台运行 Spark,您可以利用它的分布式计算,这将加快您的进程,而不是使用单线程 lambda 函数。