2012-01-15 123 views
0

我不知道这是否对于计算器而言是一个太主观的问题,但是不管怎么样都不好。什么是应用程序之间的数据转换的最佳做法

在应用程序之间进行数据迁移是否有共同/最佳做法?假设我有用Java/J2EE编写的应用程序A,并连接到用Ruby/Rails编写并连接到MySQL数据库的PostgreSQL数据库和应用程序B.

我想将我的数据从应用程序A迁移到应用程序B,因此表结构和A的数据模型完全不同于B.因此,我想从A中提取信息,更改其结构并将其插入到B.

而且我已经存在于应用程序B具有与应用程序A信息的相关信息,例如基于共同的一个ID在这两个应用程序

我试着写了几个花哨的SQL脚本但去无处快。

上次我遇到像这样的项目时,我只写了一大堆代码来处理迁移。我想知道这可能是最佳做法吗?我认为这是开发人员经常做的工作。也许有工具或框架可用?

+0

您的意思是*手动*或*编程*迁移? – 2012-01-15 22:45:11

+0

程序性迁移 – 2012-01-15 22:48:17

+1

方式过于宽泛,为什么在这方面会有最佳做法? – 2012-01-15 22:53:34

回答

0

可能不是一个最佳实践,但是一旦你选择了一个方法,一组最佳实践。

一种策略是将数据放入目标平台中的相同模型(或非常接近),然后在目标平台内进行转换。例如,如果目的地是SQL Server,我会在目标服务器上创建另一个数据库,并使用从表格到表格的直接数据副本(数据类型是您正在关注的主要内容),并简单地使用查询database2.user.table_names以填充目标数据模型。

这消除了您可能使用的任何ETL工具选项中异源源/目标的问题,并允许您在数据库2上创建一些可能对您的转换最优的额外索引。

此外,您的转换将采用直接SQL,允许同时加入源和目标,而无需任何服务器间延迟或带宽。

如果你在你的表格或类似的东西里有二进制数据,显然事情会变得更加复杂。

0

广泛的问题,广泛的答案?

  1. 重新创建在DatabaseB数据模型,没有自动递增等
  2. 拷贝过来
  3. 处理所有适当的数据,操纵,等等,你的心内容

可扩展到自动化流程通过允许步骤1基于原件和副本的当前内容。

相关问题