PHP MYSQL ETL. 我应该使用ETL工具、存储过程还是PHP脚本?

3
我们正在重新架构整个数据库。因此,数据库结构已经发生了巨大变化。一些表字段将被转换为表行;将有很多验证;一些表被分成多个表,而其他表则被合并。基本上,我们正在将遗留数据库更改为第三范式。
新的模式已准备好,我的任务是执行ETL。我应该如何进行?我不熟悉任何ETL工具,所以需要学习。我想编写存储过程,它们能够处理我试图实现的所有这些复杂内容吗?我可以编写PHP脚本,以便更好地控制数据验证,但不确定是否应该这样做,因为会出现超时和长脚本问题。数据库大小约为6 GB,其中包含约450个表。
请给出建议。

1
我不完全确定你的情况,但看起来混合解决方案对你有帮助。因此,您可以在某些部分使用php脚本/mysql存储过程,并在其他部分使用ETL工具,如Pentaho PDI(Kettle)。 - Maximus2012
1
无论如何,学习一种ETL工具对于长远来说都是有帮助的,因为它可以帮助你进行数据库迁移和备份等操作。我强烈推荐使用Kettle/Pentaho PDI来实现这个目的。 - Maximus2012
2个回答

1
我建议创建一个PHP迁移脚本,该脚本从命令行运行。从命令行运行的PHP脚本不会超时。
你也可以在脚本顶部添加"set_time_limit(0)":
<?php
set_time_limit(0);
//rest of the code goes here

我不确定存储过程或商业ETL工具是否必要。只需将迁移脚本代码分解为适当的函数/方法,您就应该没问题了。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接