我们正在重组我们的整个数据库。也就是说,数据库结构发生了翻天覆地的变化。一些表字段将被转换为表行;会有很多验证;一些表被分解成多个表,而另一些则合并在一起。基本上我们正在将遗留数据库更改为 3NF。
新架构已准备就绪,我的任务是执行 ETL。我该如何进行?我不熟悉任何 ETL 工具,所以那里有一条学习曲线。我在考虑编写存储过程,它们是否能够处理我想要实现的所有这些复杂的东西?我可以编写 PHP 脚本,因此我可以更好地控制数据验证,但由于超时和长脚本,我不确定这是否可行。数据库大小约为 6 GB,有大约 450 个表。
请提出建议。
最佳答案
我建议创建一个从命令行运行的 PHP 迁移脚本。从命令行运行的 PHP 脚本不会超时。
您还可以在脚本顶部添加“set_time_limit(0)”:
<?php
set_time_limit(0);
//rest of the code goes here
我不确定是否需要存储过程或商业 ETL 工具。只需确保将迁移脚本代码分解为适当的函数/方法,就可以了。
关于PHP MySQL ETL。我应该使用 ETL 工具、存储过程还是 php 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744219/