使用flyway在不同db之间迁移
Posted
技术标签:
【中文标题】使用flyway在不同db之间迁移【英文标题】:migration between different dbs using flyway 【发布时间】:2018-04-15 08:00:06 【问题描述】:我们在组织中有不同的数据库,例如 MS SQL、Phoenix (HBase)、Redshift。 问题:是否可以使用 flyway 或其他工具在不同类型的数据库之间迁移。我的意思是,如果我们在 MS SQL 中有 Schema,那么轻松迁移到 RedShift 的方法是什么?如果架构已更改,是否支持为不同类型的数据库维护/升级架构。
谢谢 奥列格。
【问题讨论】:
【参考方案1】:将数据迁移到 Redshift 需要特定于 Redshift 的不同模式。
您的源数据库 -> s3 csv(压缩),如果非常大,则拆分为块
s3 数据 -> 红移分期
redshift staging -> 目标 redshift 表
您还可以考虑 CDC 是否适用于您的用例。
我最近在 AWS DMS 上取得了很好的成功,它透明且自动地处理上述过程。它还可以在适用的情况下与 CDC 合作并支持许多来源。
它会自动创建目标表。如果愿意,您可以选择(手动)修改目标表。
MS SQL 可以用作源,但不知道如何使用 hbase 作为源。您可能必须先手动将其导出到 s3。
见https://aws.amazon.com/dms/
【讨论】:
谢谢,乔恩。我将看看 DMS 服务。在我们的例子中,它不仅仅是一个迁移数据库。这是一个涉及的ETL过程。此外,在这个过程中并不涉及唯一的红移。对于 HBase,我们使用的是 Phoenix,它是带有 JDBC 驱动程序的 SQL 皮肤,所以关系模型就位。问题是一样的,有没有办法在不同数据库之间迁移模式版本。示例 MS SQL 和 Phoenix。凤凰和红移。谢谢奥列格。以上是关于使用flyway在不同db之间迁移的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jenkins 和 Gradle 运行 Flyway 迁移 - 无法解析位置类路径:db/migration
Flyway:在 [classpath:db/migration] 中找不到迁移位置
Flyway db 首先迁移 Dependent Jar - Spring boot