【问题标题】:Building aggregation/summary reporting database against Oracle, Sql Server and Mongodb针对 Oracle、Sql Server 和 Mongodb 构建聚合/汇总报告数据库
【发布时间】:2012-03-20 07:00:22
【问题描述】:

这是一个设计,因为我过去没有做过类似的事情,并且是一个很好的挑战。我有一台支持 Oracle、Sql Server 和 Mongodb 的服务器。您可以选择在启动时使用哪一个。本质上,每个服务器都存储 xml 数据包,这些数据包被分解为它们的组件元素。

我需要建立一个报告数据库,为仪表板的报告提供聚合和汇总数据,但问题(机会)是 Mongodb。我可以轻松地使用 sql server 报告服务来构建 reportdb,与 Oracle 相同,或者我可以使用 Crystal 之类的东西来对抗两者,甚至创建一个数据库,并在每个表上设置一组触发器,并带有一些 pl/sql 逻辑使用 Oracle 或使用 Sql 的 T-Sql 来动态创建报告数据库。这将负责报告。但他们是mongodb。很少或没有报告基础设施,当然不在 BIRT 或 jaspersoft (Java) 之外。我正在使用 C#。

我正在考虑使用 c# 服务器组件,它拦截传入的 xml 数据包,并提取适当的元素字段数据,并将其写入报告数据库,可能类似于 sqlite(可能太小)。如果它在 sql server 或 Oracle 上运行,那么我将使用该数据库实例来支持报告数据库。

在任何数据库上,我实际上只支持最多 6 个月的数据。数据将被分类为 24 小时、1 周、1 个月、3 个月、6 个月,并在压缩和备份数据库上进行渐进式存档。

但这就是它变得朦胧的地方。例如,使用 sqlite 作为报告数据库,使用 mongodb 作为 xml 数据库。举个例子。如果用户想要深入研究,我是否必须提供某种动态更新,以便从 Mongodb 中提取额外的报告信息,或者可以在服务器组件阶段完成,当它被写入 sqlite 时。

或者都是f bol.cks

非常感谢任何想法或想法。 鲍勃。

【问题讨论】:

  • 我需要专业人士来看看这个。
  • 您是否需要一个可以为主要数据库引擎的所有三个选项都工作和维护的应用程序,还是要选择一个?

标签: c# sql-server-2008 mongodb reporting oracle11g


【解决方案1】:

在从 mongodb 获取数据以进行报告方面,您可以在上面编写自己的代码 1)mongodb查询 2) 聚合框架 3) 在数据库 Map/reduce 或 4)使用hadoop连接器。 您可以使用 C# 驱动程序。除此之外,正如您提到的,还有 Jaspersoft 集成或 Pentaho (http://wiki.pentaho.com/display/BAD/Create+a+Report+with+MongoDB)

【讨论】:

  • Pentaho 很贵。 Jaspersoft 是基于 Java 的,所以已经过时了。
  • 新的聚合框架:mongodb.org/display/DOCS/Aggregation+Framework 和 Kristina Chodorow 的 tuto(也在 SO 上):snailinaturtleneck.com/blog/2012/01/26/…
  • @AurelienB,我没有看到聚合框架。我去看看。
  • @AurelienB,伙计,这太棒了。易于从 10Gen c# 提供程序调用,我可以在 stateforge 中生成状态机来驱动聚合工作流。谢谢。
【解决方案2】:

我认为 Microsoft 的 Biztalk Server 最适合您的需要。您可以使用 Biztalk 服务器的pipeline component 来实际处理传入的消息。 (您可以进行简单的属性提升、转换等。)您可以使用Biztalk Orchestrations 来实际处理数据。对于聚合和报告,您可以使用Biztalk's Business Activity Monitoring。它支持数据的实时聚合并将它们放入您的数据库中。它有一个 BAM 门户,您可以从中查看所有存储和聚合的数据。如果您想拥有自己的报告风格,您可以使用Microsoft's Report Builder 3 并使用 SSRS 部署您的报告。

【讨论】:

  • 感谢您的建议,但这是一个正在构建的产品,biztalk 已经过时了。
【解决方案3】:

看看Nucleon BI Studio。您可以获得功能齐全的 30 天免费试用,完整版售价 250 美元。我过去使用过它,它还不错,而且只是开发成本的一小部分。

我与公司没有任何关系。

【讨论】:

  • 我也没有看过,它确实让我很高兴。对于 BI 报告堆栈来说似乎真的很便宜。我认为没有人告诉他们它有多便宜。看起来很理想。我去看看。
  • 这很合适。还计划使用 MongoDB 聚合框架,因为它也很合适。谢谢。
【解决方案4】:

也许我不完全理解你的问题,但我会试一试:首先是你的问题,总结一下。

您希望根据不同类型的数据存储生成报告:sql this、sql that 或文档数据库。您认为当前拥有的选项是各种类型的内置报告。

您有不同的点可用于获取数据。您可以在数据进入系统时拦截数据或从数据库中获取信息。为了制作具有向下钻取的动态报告,它实际上取决于您要使用的报告工具的类型。您只需要构建一个隐藏数据存储的外观 - 通过拦截数据包并将它们存储在您选择的数据库中,或者通过相同的抽象/外观从您选择的数据存储中实际构建它们。您甚至可以考虑一种混合解决方案,您可以在初始化报告组件时从数据存储区(例如 mongo)进行初始化,然后根据传入的数据包动态更新。

这一切都取决于你想去哪里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 2015-09-28
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    相关资源
    最近更新 更多