2012-03-23 94 views
5

我需要创建一个分析系统。我已经使用MognoDB和PHP构建了该系统,但未使用OLAP。现在我的查询确实是我能得到的最好的,但是系统非常慢,因为没有立方体。加载最近7天的报告可能需要一分钟时间。我真的需要立方体的选项 - 切片&骰子。OLAP多维数据集 - PHP和MongoDB

那么对我来说,解决方案是什么?是否有一个很好的用MongoDB构建的多维数据集系统,可以通过PHP插入&视图数据?也许MongoDB不会对我有好处?我应该使用另一个数据库,并从0开始所有的系统?哪些OLAP解决方案使用PHP?

编辑:更多信息 - 那么,该系统就像谷歌分析。需要能够知道每天有多少观看次数,需要能够仅从指定的流量来源和国家进行报告。系统每天需要处理1,000,000个独特的视图。 但是,不仅要计数的意见,还需要能够看到有多少用户正在返回,每个用户的平均时间是多少等。

谢谢。

+0

您对数据类型,记录数量,主数据,数据来源是什么,报告要求可能是什么,您使用的是什么聚合数据没有任何说明。我们如何在不猜测的情况下回答这个问题?你需要提供更多的信息,我非常怀疑答案只是cube + olap引擎。 Thanls。 – T9b 2012-03-23 10:12:23

+0

Thanls。对不起,补充。你能解释一下这个cube + olap引擎吗?我怎样才能使用PHP?我的mongodb呢?我应该使用其他数据库吗? – 2012-03-23 10:17:56

+0

我不确定你对PHP和mongoDB的迷恋。所有你需要的东西都可以在任何数据库中完成。听起来你要么不适当地加载你的数据,要么你的SQL不够好。请提供您的代码,数据库结构等......您认为它表现不佳。 – T9b 2012-03-23 15:37:03

回答

2

MongoDB不是为OLAP多维数据集类型的应用程序构建的。我可以想到两种方法:

1)提前确定需要做什么查询,并提前以最佳格式存储数据。例如,如果您想知道每个国家/地区每天的访问次数,那么每次访问都会执行以下操作:

db.visits.update({'country':country,'day':current_day()},{$ inc:{visited:1}})

对每个度量重复一次。从应用程序到分析数据库的即时消息更新将为向访问者提供请求提供最小的开销。然后你的查询将在很大程度上预先计算。

2)试试JasperSoft的MongoDB后端。

2

要更新一点响应,icCube现在提供访问MongoDB。您应该能够设置一些MongoDB查询来创建icCube将用于报告和分析的表格。

相关问题