首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SQL实现复杂的计算,或者更确切地说使用ETL?

用SQL实现复杂的计算,或者更确切地说使用ETL?
EN

Stack Overflow用户
提问于 2015-05-26 09:27:40
回答 1查看 391关注 0票数 0

我们目前正在开发一个用于财务分析的web应用程序,使用PHP (ZendFramework2)和Doctrine作为ORM工具(MySQL数据库)。复杂的财务计算是在服务器端进行的,因为客户端必须尽可能简单。数据应该是几乎实时的,因为用户正在实时地输入数据。所有用户数据将立即传送到服务器。

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

因此,我们关心的是将业务逻辑和规则混合到SQL语句中(封装原则)。即使使用ORM工具,也会有一些语句使用本机SQL,不容易理解/修改。

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

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

非常感谢您的见解和建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-26 10:53:45

我不确定这个问题是否在征求意见。这个答案是为了让你在做出选择时考虑到一些事情。

在“外部”ETL还是“内部”ETL之间的选择取决于以下几个因素:

  • 开发人员的技能集。
  • ETL的要求。
  • 数据转换的特定要求。
  • 对数据库性能的具体要求。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30454644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档