【问题标题】:What's the best practice for developing a PHP data import framework?开发 PHP 数据导入框架的最佳实践是什么?
【发布时间】:2009-02-09 09:31:41
【问题描述】:

在我们作为一家气象公司的网络开发人员工作期间,我们一遍又一遍地面临同样的任务:从某个地方(FTP/Web/目录/邮件)获取一些文件并将包含的数据导入数据库。

当然,文件格式永远不会相同,数据库的设计总是不同,必须处理无数特殊情况等等。

所以现在我正在为这类工作计划一个导入框架。由于我们都是经验丰富的 PHP 开发人员,并且当前的脚本是 PHP 或 Perl,我们将坚持使用 PHP 作为脚本语言。

  • 数据获取器将从源中获取文件,将其打开并将内容存储到字符串变量中。 (别担心,PHP 会从我们这里获得足够的内存。)
  • 数据处理程序将完成复杂的工作,将字符串转换为某种数组。
  • 数组将保存到数据库或写入新文件或我们应该对它执行的任何操作。

除此功能外,还会有一些常见的错误处理、日志写入和电子邮件报告。

这个想法是使用类的集合(一些 getter 类、许多专门的处理程序、一些 writer 类)。

我的问题:我如何在工作脚本中实际组织这些课程?我是否发明了某种将被解释的元语言并相应地调用类?或者只是提供这些类必须实现的一些简单接口,而我的用户(就像我说的:经验丰富的 PHP 开发人员)会编写加载这些类的小型 PHP 脚本?

几乎可以肯定,第二个版本提供了最大的灵活性和可扩展性。

您对这样的事业还有其他想法吗?

【问题讨论】:

    标签: php frameworks import etl


    【解决方案1】:

    我建议借鉴Data Transformation Services (DTS) 的概念。您可以拥有数据源和数据接收器、导入任务、转换任务等。

    【讨论】:

    • 感谢您的提示,我会仔细阅读。它为我指出了一个首字母缩略词的正确方向:ETL(提取、转换、加载)。
    【解决方案2】:

    在需要导入和导出的数十种不同外部数据格式的类似环境中工作,我可以建议至少尝试并让它们统一数据格式。我们通过开发工具帮助公司以外的其他人将他们的数据转换为我们的格式而取得了一些成功。我们还免费为他们提供了源代码。

    其他一些人现在正在使用我们的工具为我们转换他们的数据,如果他们改变了他们的格式,他们会改变转换工具。减少我们头痛的原因之一。

    在一种情况下,它甚至会导致另一家公司改用我们系统内部使用的文件格式。当然,这只是一个案例,但我认为这是漫长道路上的第一步;-)

    【讨论】:

    • 这是一个“政治难题”:太多不同的公司涉及太多不同的工具和应用程序。大多数时候,我们只需要使用我们得到的东西,并且无权要求改变他们导出数据的方式。 :-(
    【解决方案3】:

    定义一个标准的网络服务在这里不起作用是有原因的吗?然后,您可以提供标准格式的数据,如果出现错误,则返回 SOAP 错误(可能由输入文档中的字段填充)。

    这可能比 Pavel 的建议更有限(或需要更多的前期设计),但可能值得考虑。

    【讨论】:

    • 就像我作为对 Treb 的赞扬所指出的那样:我们不能对数据供应商提出太多要求,并且对他们处于弱势地位。 :-( 或者他们根本不具备将 Matlab 或 IDL 输出发送到 Web 服务的知识。务实地说,我们必须自己做这项工作。
    猜你喜欢
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    相关资源
    最近更新 更多