首页 文章

使用SQL实现复杂的计算,还是使用ETL?

提问于
浏览
0

我们目前正在开发一个使用PHP(Zend Framework 2)和Doctrine作为ORM-Tool(MySQL数据库)进行财务分析的Web应用程序 . 复杂的财务计算是在服务器端完成的,因为客户端必须尽可能简单 . 由于用户正在实时输入数据,因此数据应该几乎“实时”可用 . 所有用户数据将立即传输到服务器 .

对于财务计算,我们必须使用自定义过滤和数据聚合来连接多个表 . 业务逻辑和计算相当复杂 .

因此,我们担心在SQL语句中混合业务逻辑和规则(封装原则) . 即使使用ORM工具,一些语句也将使用本机SQL,并且不易理解/可修改 .

我们考虑使用ETL或BI软件进行数据处理 . 但是大多数ETL工具和BI软件都是用Java编写的,它们与PHP的集成似乎相当麻烦 . 我们是由5位PHP开发人员组成的团队,他们对ETL设计和处理知之甚少 . 我们在ETL中看到的最关键的缺点是处理时间,延迟和数据的最新性 .

在我们的情况下是否推荐使用ETL工具/商业智能软件?或者我们应该坚持复杂的Doctrine / SQL语句并用SQL纠缠我们的业务逻辑?

非常感谢任何见解或建议 .

1 回答

  • 1

    我不确定这个问题是否在征求意见 . 这个答案旨在让您在做出选择时考虑事项 .

    “外部”ETL或“内部”ETL之间的选择取决于几个因素:

    • 开发人员的技能组合 .

    • ETL的要求 .

    • 数据转换的特定要求 .

    • 数据库性能的特定要求 .

    在许多情况下,您可以在数据库中或使用外部工具实现相同的目标 . 外部工具的优点是它们不会妨碍数据库服务器 - 或者至少可以更轻松地控制它 . 此外,外部工具的设计目的是移动数据和处理数据,因此它们通常可提供更好的连接,性能和错误报告 .

    也就是说,如果您的技能集以SQL为中心,那么将数据加载到临时表并在数据库中完成工作也是可行的 . 我经常发现我更喜欢在数据库中进行这样的处理,但这取决于项目的要求 .

相关问题