29

我正在考虑将 MongoDB 用于我的下一个大项目,但我有几个担忧。特别是,我该如何进行报告?

我的理解是,我无法执行通常在关系数据库中执行的相同类型的连接和聚合。我想到的报告涉及以严格的标准汇总来自不同“表”的大量数据。

这在 MongoDB 中很容易实现吗,还是会让人头疼?

4

7 回答 7

20

虽然 Pentaho 和 Jaspersoft 以及其他遗留报告解决方案有办法从 MongoDB 中提取数据,但有两种较新的解决方案专门设计用于分析和报告 MongoDB 数据:

  • JSON工作室。这是一个商业解决方案,可让您直观地构建聚合管道并将它们连接到图表。
  • 大满贯数据。这是一个开源解决方案,可让您通过 GUI 界面或 API 直接在 MongoDB 上运行 SQL 查询(包括 JOIN、GROUP BY、HAVING 等)。该项目的当前版本已内置数据可视化,并允许您创建报告仪表板并将其嵌入到 MongoDB 应用程序中。

因为这两种方法都在 MongoDB 之上运行(相对于其他方法,即抽取数据并将其标准化以在 Mondrian 或其他方式中报告),它们对于 MongoDB 报告来说更容易、更自然。另一方面,由于数据没有加载到全内存多维数据集中(例如),如果您尝试实时生成复杂的报告,报告体验可能会受到影响。

免责声明:我是 SlamData 项目的贡献者,尽管我与 JSON Studio 没有任何关系。

于 2015-04-15T17:49:24.057 回答
4

好像 JasperReports 和 Pentaho 这样的开源工具可以连接到 MongoDB,如果你想跳到 NoSQL 船但又不想跳到 NoSQL 船,你可以使用像Simba 的那样的 ODBC 或 OLE DB 驱动程序,然后使用任何普通的 SQL 报告工具,如DBxtra

于 2013-01-15T15:32:03.420 回答
2

一般来说,不要仅仅因为你想在生产环境中尝试一些新的东西而使用 mongodb:这会给你带来很多麻烦。关于何时使用它有一篇很棒的 Stackoverflow 帖子:https ://stackoverflow.com/a/1477354/1248724

关于报告: Map-Reduce,尤其是增量的,会对您有很大帮助,但您不能将 mongoDB 视为关系数据库。它只是不是一个。例如查询子文档的疯狂。mongoDB Aggregation-Framework在大多数情况下会做得很好,但与 SQL 相比有其局限性。

于 2014-06-26T05:02:38.090 回答
2

如果您使用的是 .NET,使用 DexExpress 报告可以轻松编写报告。它适用于 MongoDb .NET 驱动程序,只有一个限制,您必须为您在数据中使用的每个聚合具有强类型。您可以从主应用程序数据库提供程序中使用的所有类型,所以这不会是一个大麻烦。如果您的 MongoDB 集合类似于 SQL 数据表,则可以使用 ODBC 驱动程序,这种方式非常有限,但您可以使用任何与 ODBC 连接一起使用的报告服务。我更喜欢首先使用:“DevExpress”XtraReports。

于 2015-11-18T20:39:11.590 回答
1

不确定您是否可以在 MongoDB 中完成所有报告以及是否有足够的响应时间。因此,您可以为此目的在 MongoDB 之上添加一个工具。例如,icCube现在支持MongoDB用于这种用途。提取整个数据集是没有意义的,但大多数时候用于报告和分析的数据只代表整体的一小部分,连接内存中的 OLAP 工具进行报告和分析是有意义的。

于 2014-05-22T09:12:40.663 回答
1

MongoDB 报告变得更容易,因为它具有聚合框架,该框架提供了一个可以连接到报告软件的 api。这是一篇提供有关 MongoDB 报告和可视化的详细信息的文章http://blog.jinfonet.com/mongodb-reporting-visualization-jreport/

于 2014-09-23T13:56:56.327 回答
0

据我所知,没有简单的方法可以像在 Mongo 的关系数据库中那样执行连接、聚合等。您可以为此使用不同的外部分析工具。在我的公司,我们使用Sisense并通过 ODBC 驱动程序将其连接到 MongoDB,这使我们可以在数据上使用类似 SQL 的功能,并且效果很好。但是,我不知道在 MongoDB 中本地执行此操作的方法。

于 2015-04-14T13:45:13.600 回答