我想知道这对于stackoverflow来说是否是一个过于主观的问题,但不管怎么说还是不好意思。
应用程序之间是否存在数据迁移的通用/最佳实践?假设我有一个用Java / J2EE编写的Application A,它连接到一个用Ruby / Rails编写并连接到MySQL数据库的PostgreSQL数据库和应用程序B.
我想将数据从应用程序A迁移到应用程序B,表结构,因此A的数据模型与B完全不同。所以我想从A中提取信息,更改其结构并将其插入到B. / p>
此外,我在应用程序B中存在信息,该信息与来自应用程序A的信息有关,例如基于两个应用程序中常见的ID
我尝试编写一些花哨的SQL脚本,但这种情况无处可去。
上次我遇到这样的项目时,我只是编写了大量的代码来处理迁移。我想知道这可能是最好的做法吗?我认为这是开发人员经常做的工作。也许有工具或框架可供使用?
答案 0 :(得分:0)
可能不是一个单一的最佳实践,但是一旦你选择了一种方法,一系列最佳实践。
一种策略是将数据放在目标平台中的相同模型(或非常接近)中,然后在目标平台内进行转换。
例如,如果目标是SQL Server,我会在目标服务器上创建另一个数据库,从表到表的数据类型是直接的(数据类型是你在那里注意的主要内容),只是对database2使用查询.user.table_names以填充目标数据模型。
这消除了您可能正在使用的任何ETL工具选择中异构源/目标的问题,并允许您在数据库2上创建一些可能是转换最佳的附加索引。
此外,您的转换将采用直接SQL,允许同时加入源和目标,而不会产生任何服务器间延迟或带宽。
如果你的表中有二进制数据或类似的东西,显然事情变得复杂得多。
答案 1 :(得分:0)
广泛的问题,广泛的答案?
通过允许步骤1基于原始和副本的当前内容,扩展到自动化流程。