PHP MySQL ETL。我应该使用 ETL 工具、存储过程还是 php 脚本?

标签 php mysql performance etl

我们正在重组我们的整个数据库。也就是说,数据库结构发生了翻天覆地的变化。一些表字段将被转换为表行;会有很多验证;一些表被分解成多个表,而另一些则合并在一起。基本上我们正在将遗留数据库更改为 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/

相关文章:

mysql - mysql 中基于键的分区可容纳数百万行

php - 使用php用户定义函数连接多个数据库

php - 多个php版本,无法连接mysqli

Php将数据分解为数组

php - 如何在PHP中使用mysql_real_escape_string函数

php - 如何传递两个变量以在 Controller 中查看(laravel 5.3)

MySQL 查询很慢(连接/计数)

php - Objective C - 无法查询数据库(MySQL)

mysql - 将一个表从一个 phpMyAdmin 服务器复制到另一个

c - strn*() 与 str*() 相比有多快?