我正在使用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工作的快照:
这是tmap配置:
现在,当我在没有外键的情况下传输数据时,结果非常快。见下文 :
但是当我使用外键传输时,我的传输速度非常慢:
(注意:我以省表为例,因为它类似于城市表)
我认为使用外键约束它必须索引列,同时传输数据使其变慢,但我不确定。有什么方法可以解决这个问题,因为我有很多类似于需要迁移的表。我很想知道原因。
我不知道为什么会出现这种情况:您可以尝试将'provience_i18n'重定向到tHashOutput(缓存组件),然后使用tHashInput(参考您的tHashOutput)链接到子工具 - > tMySQLOutput。你将有2个subjobs,每个插入一个。
您正在同时将数据加载到父级和子级。使用一个tmap。在第二个表中插入外键时,还会在外部/父表中插入。您可以选择做的是:首先将数据加载到主CITIES表中,然后加载到SubJobOk,加载到child / CITIESI18N表中。它会更快。如果有效,请告诉我。