【问题标题】:NoSQL - How to generate histograms for ranges of dataNoSQL - 如何为数据范围生成直方图
【发布时间】:2014-02-24 20:12:06
【问题描述】:

我们公司需要存储和计算与文档的内容创建、审核/批准和发布工作流程相关的分析。我们正在研究类似 Amazon SimpleDB 的东西。

我们将存储与用户在系统中执行的操作相对应的“事件”。例如:

  • [用户 B] 要求 [用户 A] 在 [时间] 审查 [文档 B]
  • [用户 A] 在 [时间] 批准了 [文档 B]
  • [用户 B] 在 [时间] 编辑了 [文档 B]
  • [用户 B] 在 [时间] 发布了 [文档 B]

然后我们希望能够为给定时间段创建此活动的图表(直方图/线图)。例如:

  • 编辑与时间
  • 批准与时间
  • 发布与时间
  • 批准与发布与时间

在 SQL 中,我假设这将通过将结果分组到“桶”中来完成。但是,我很难弄清楚如何使用像 AWS Simpledb 这样的 NoSQL 数据库来做到这一点,而无需使用 Hadoop/Map Reduce 进行批处理。这必须是实时的,因此无法进行任何批处理。

我们也在研究 Neo4J,所以如果有人有 Neo 的解决方案,我也会感兴趣。

谢谢

【问题讨论】:

    标签: sql nosql neo4j amazon-simpledb


    【解决方案1】:

    在 Neo4j 的 Cypher 中,您可以使用 CASE/WHEN 和聚合语法将内容收集到存储桶中。

    【讨论】:

    • 这也是一个很好的答案,但后者对我的用例更详细。谢谢
    【解决方案2】:

    您将使用“操作节点”来模拟批准、发布、编辑,以便您可以将两个以上的东西连接到它。

    对于建模时间,我建议使用有序的事件列表甚至时间树:http://docs.neo4j.org/chunked/milestone/cypher-cookbook-path-tree.html

    我创建了一个小的 GraphGist 给你看,看看:

    http://gist.neo4j.org/?9263624

    【讨论】:

      【解决方案3】:

      我认为数据驱动的可视化更适合您的场景。

      我是指使用 MongoDB 存储的 D3。

      Cube 收集时间戳事件以存储在 MongoDB 数据库中。

      Cubism.js(一个 D3 插件)为您进行可视化。

      【讨论】:

        猜你喜欢
        • 2019-04-11
        • 2012-08-14
        • 2014-09-21
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多