【问题标题】:PHP MYSQL ETL. Should I use ETL tool, stored procedure or php scripts?PHP MYSQL ETL。我应该使用 ETL 工具、存储过程还是 php 脚本?
【发布时间】:2013-09-11 14:39:27
【问题描述】:

我们正在重组整个数据库。据说,数据库结构发生了巨大变化。一些表格字段将被翻译成表格行;会有很多验证;一些表被分解成多个表,而另一些则被合并。基本上,我们将遗留数据库更改为 3NF。

新架构已准备就绪,我的任务是执行 ETL。我应该如何进行?我不熟悉任何 ETL 工具,所以那里有一个学习曲线。我正在考虑编写存储过程,它们是否能够处理我想要实现的所有这些复杂的东西?我可以编写 PHP 脚本,因此我可以更好地控制数据验证,但由于超时和长脚本,我不确定这是否可行。数据库大小约为 6 GB,大约有 450 个表。

请提出建议。

【问题讨论】:

  • 我不完全确定您的情况,但看起来混合解决方案对您的情况会有所帮助。因此,您可以对某些部分使用 php 脚本/mysql 存储过程,对其他部分使用诸如 Pentaho PDI(Kettle) 之类的 ETL 工具。
  • 无论如何,从长远来看,学习 ETL 工具会有所帮助,因为这将帮助您进行数据库迁移和备份等。为此,我强烈推荐 Kettle/Pentaho PDI。

标签: php mysql performance etl


【解决方案1】:

我建议创建一个从命令行运行的 PHP 迁移脚本。从命令行运行的 PHP 脚本不会超时。

您还可以在脚本顶部添加“set_time_limit(0)”:

<?php
set_time_limit(0);
//rest of the code goes here

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

【讨论】:

    【解决方案2】:

    我不会创建一个本土系统。 我见过的少数往往是脆弱和缺乏的。您将花费数月甚至数年的时间来了解基本的 ETL 工具。

    更多关于 ETL 工具的优缺点的信息。

    http://www.informationweek.com/software/information-management/kimball-university-should-you-use-an-etl-tool/d/d-id/1066486?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 2023-03-25
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多