使用MySQL在父子关系上进行Talend Open Studio数据迁移

问题描述 投票:1回答:2

我正在使用Talend Open Studio进行数据迁移,因为我正在将现有的应用程序架构升级到新的应用程序架构。我在两个应用程序中使用MySQL但使用不同的模式。我已经在单个表之间成功迁移了数据,但是当我将数据从单个表传输到具有外键约束的父子关系表时,数据传输速度非常慢。对于例如我正在将Cities表迁移到Cities和Citiesi18n,以下是他们的架构:

我的旧架构:

CITIES (
  id   
  city_name
  status
  created_at
)

我需要迁移数据的新创建的架构:

CITIES (
  id   
  status
  created_at
)

CITIESI18N (
  id           
  lang_code
  name
  fk_city_id      (// foreign key of cities table)
)

以下是我的Talend工作的快照:

enter image description here

这是tmap配置:

enter image description here

现在,当我在没有外键的情况下传输数据时,结果非常快。见下文 :

enter image description here

但是当我使用外键传输时,我的传输速度非常慢:

(注意:我以省表为例,因为它类似于城市表)

enter image description here

我认为使用外键约束它必须索引列,同时传输数据使其变慢,但我不确定。有什么方法可以解决这个问题,因为我有很多类似于需要迁移的表。我很想知道原因。

mysql foreign-keys etl database-migration talend
2个回答
0
投票

我不知道为什么会出现这种情况:您可以尝试将'provience_i18n'重定向到tHashOutput(缓存组件),然后使用tHashInput(参考您的tHashOutput)链接到子工具 - > tMySQLOutput。你将有2个subjobs,每个插入一个。


0
投票

您正在同时将数据加载到父级和子级。使用一个tmap。在第二个表中插入外键时,还会在外部/父表中插入。您可以选择做的是:首先将数据加载到主CITIES表中,然后加载到SubJobOk,加载到child / CITIESI18N表中。它会更快。如果有效,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.