有一个运行了多年的Web应用程序,在其生命周期内,应用程序收集了大量用户数据。数据存储在关系DB(postgres)中。运行应用程序(执行业务)并不需要所有这些数据。但是,不时的商务人士要求我提供此数据数据的报告。这会导致一些问题:
我的想法(请注意,我是开发人员而不是数据挖掘专家)如何改进整个报告流程:
问题:但是有更好的方法吗?还有另一个DB更适合这种数据分析吗?或者我应该研究现代数据挖掘工具吗?
谢谢!
答案 0 :(得分:4)
你真的进行数据挖掘(如:分类,聚类,异常检测),或者是"数据挖掘"为你报告数据?在后一种情况下,所有现代数据挖掘工具"会让你失望,因为他们有不同的目的。
您是否使用过Postgres的索引功能?您的方案听起来好像选择和聚合是大部分工作,而SQL数据库非常适合这一点 - 如果设计得很好。
例如,物化视图和触发器可用于将数据处理为更适用于报告的方案。
答案 1 :(得分:3)
有一千种方法可以解决这个问题,但我认为对你来说阻力最小的路径就是postgres复制。查看此Postgres replication教程,了解快速,概念验证。 (当您使用Google进行postgres复制时,有很多点击,而该链接只是其中之一。)这是一个记录来自PostgreSQL网站维基的streaming replication的链接。
我建议这样做,因为它符合您的所有标准,并且仍然符合您熟悉的技术范围。唯一的学习曲线是复制部分。
复制解决了您的问题,因为它会创建第二个数据库,该数据库将有效地成为您的“只读”#34; db将通过复制过程进行更新。您可以保持架构相同,但可以更改索引并自定义报表/仪表板。这是您要查询的数据库。您的主数据库将是为用户提供服务的事务数据库,而复制的数据库将为利益相关者提供服务。
这是一个广泛的主题,所以请尽职尽责并研究它。但它也可以为您提供帮助,并可以快速转身。
答案 2 :(得分:2)