我们计划创建一个新的应用程序,它不会与当前应用程序具有相同的架构,并且表的架构肯定会有一些差异。我们当前应用程序的数据库运行在 AWS Aurora Serverless v1 集群上,并使用 MySQL 5.7。我们需要将数据从旧应用程序迁移到新应用程序,在某些地方进行一些架构更改。
一种解决方案是以 csv 等易于阅读的格式创建旧表的转储,然后将数据导入新应用程序,根据需要选择数据。这将需要在两个应用程序上编写定制代码,以从一个应用程序导出数据并将其导入另一个应用程序。
考虑到我们在 AWS 中,并且打算继续使用它,选择 Aurora 作为数据库(我们必须决定是使用提供的解决方案还是使用 Serverless v2),是否有任何服务可以从一个 Aurora 导出数据Serverless v1 集群到另一个 Aurora 集群,一路上进行更改?
我知道数据库快照存在,但这并不是我们的目标。我们需要将数据从一个数据库迁移到另一个数据库,而不是创建第一个数据库的另一个副本。我看到有一种服务,称为“AWS数据库迁移服务”,用于将数据迁移到RDS中,但是该服务是否适合我们的需求,从一个Aurora Serverless数据库获取数据,进行一些更改,然后将它进入我们选择的另一个 RDS 数据库?
您可以使用以下选项来实现您的目标。
1.- AWS 数据库迁移服务,此服务为您提供复制数据并在复制过程中执行一些架构转换的功能。您可以创建选择和转换规则,服务将执行这些规则并将更改应用于目标架构。您可以在此链接上查看更多详细信息。
2.- AWS Glue Studio,它是 ETL 服务,允许您在源数据库和目标数据库之间提取、转换和传输数据。
使用 AWS Glue Studio 在 Amazon RDS for SQL Server 和 Azure 托管 SQL 之间自动执行 ETL 作业
您还可以探索另一种选择。这比使用 DMS 更容易。
您可以使用 CLI aws rdsmodify-db-cluster 将 Serverless v1 修改为 Aurora Provisioned(截至目前在控制台上不可用),如下所示:
aws rds 修改数据库集群
--db-cluster-identifier
--配置引擎模式
--允许引擎模式更改
--db-cluster-instance-class
--立即申请
完成后,Aurora Serverless V1 将根据设计转换为 Aurora 配置集群。然后,您可以创建 Aurora MySQL 蓝/绿部署,允许您在绿色部署环境中测试应用程序。当您完成彻底的测试并准备好切换时,您将从蓝色部署切换到绿色部署。
如果您决定使用 Serverless V2,您可以添加读取器 (Serverless V2),然后将写入器实例(已配置)故障转移到读取器实例 (Serverless V2),然后再对 Serverless V2 进行全面测试并切换蓝/绿。
注意:Aurora 蓝/绿部署仅适用于 AWS 上的 MySQL。