【问题标题】:What is the best practice for data conversion between applications [closed]应用程序之间数据转换的最佳实践是什么[关闭]
【发布时间】:2012-02-11 00:58:09
【问题描述】:

我想知道这对于 stackoverflow 来说是否是一个过于主观的问题,但无论如何我都会试一试。

应用程序之间的数据迁移是否存在通用/最佳实践?假设我有应用程序 A 用 Ja​​va/J2EE 编写并连接到 PostgreSQL 数据库,应用程序 B 用 Ruby/Rails 编写并连接到 MySQL 数据库。

我想将我的数据从应用程序A迁移到应用程序B,A的表结构和数据模型与B完全不同。所以我想从A中提取信息,改变它的结构并将其插入到B中。

我在应用程序 B 中也有现有信息,这些信息与应用程序 A 中的信息相关,例如基于两个应用程序中通用的 ID

我尝试编写了一些花哨的 sql 脚本,但速度并不快。

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

【问题讨论】:

  • 您是指手动还是程序化迁移?
  • 太宽泛了,为什么在这个领域有最佳实践?

标签: sql data-migration database-migration


【解决方案1】:

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

  1. 在DatabaseB中重新创建数据模型,没有自增等
  2. 复制所有适当的数据到
  3. 随心所欲地处理、操纵等

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

【讨论】:

    【解决方案2】:

    可能不是单一的最佳实践,但一旦您选择了一种方法,就会出现一系列最佳实践。

    一种策略是将相同模型(或非常接近)的数据带到目标平台,然后在目标平台内进行转换。

    例如,如果目标是 SQL Server,我将在目标服务器上创建另一个数据库,其中包含从表到表的直接数据副本(数据类型是您要注意的主要内容),然后简单地使用对 database2 的查询.user.table_names 以填充目标数据模型。

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

    此外,您的转换将是直接 SQL,允许同时连接到源和目标,而没有任何服务器间延迟或带宽。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      相关资源
      最近更新 更多