如何从现有的一个表数据库中填充合理的多表MySQL数据库?

时间:2010-11-09 17:28:46

标签: mysql database etl

基本上有许多巨大的分隔文件我知道我可以作为表导入,但我需要将该数据映射到现有的合理多表MySQL数据库。不应该与数据类型有任何冲突,但我对此非常陌生,所以请指出我应该注意的任何内容。很明显,我不打算在生产中运行它,直到我知道它有效。

不是100%确定stackoverflow是提出数据库问题的正确位置,但我找不到任何其他更适合的Stack Exchange。

在SuperUser上发布此question寻找用于执行此操作的GUI,但我编写此代码即可完成工作。因此,没有目标语言,只需要数据库是MySQL。

此外,发现这个堆栈溢出Q / A处理MS-SQL的SSIS(由于成本原因我不打算使用它,但所遇到的内容和问题与它出现的性质相同。) - Loading Multiple Tables using SSIS keeping foreign key relationships

1 个答案:

答案 0 :(得分:1)

我建议使用Pentaho Business Intelligence包中的ETL(提取翻译加载)工具。它有一点学习曲线,但它会完全符合您的要求。他们的ETL工具叫做Kettle,一旦掌握了它就会非常强大。

Pentaho有两个版本,一个免费试用的企业版和一个免费社区版。社区版本功能强大,但您也可以为企业版本提供测试。

这是一些链接

Pentaho Community Edition Site

Kettle Site

Pentaho Enterprise Site

更新:多个表格输出

转型的关键步骤之一是combination lookup-update。此步骤检查给定的表以查看数据流中的记录是否存在,如果不存在则插入新记录。无论是新记录还是旧记录,它都会将该记录中的关键字段附加到您的数据流中。当你继续前进时,你会在将数据导入相关表时将这些键用作外键。