【问题标题】:NoSQL DB and ReportingNoSQL 数据库和报告
【发布时间】:2011-01-27 18:38:48
【问题描述】:

我正处于一个涉及数十亿条记录的学术项目的架构阶段。该项目在计算能力和高度可扩展性方面应该是非常轻量级的。 信息结构非常简单:我需要存储一个项目列表,每个项目具有不同的特征。特征是整数、小数、日期、字符串等。导入数据时,特征的类型是已知的。此外,特征可用于引用其他项目。
我需要能够按其特征(多个)获取和排序项目列表 - 可能使用诸如 >、

报告在总和、平均值、分组的意义上也是必要的,因为要求更宽松 - 不需要完整的多维数据集功能,但越多越好。

我对整个 NoSQL 世界都很陌生。你会推荐什么?。

【问题讨论】:

    标签: database architecture reporting nosql


    【解决方案1】:

    如果您查看 MongoDB 的教程,在我看来,它们是对用于查询和聚合的 Map/Reduce 系统的最佳介绍。

    我确实想知道您为什么提前得出结论,NoSQL 是要走的路。虽然不同的项目可能有不同的架构,但实体和属性的数量是否固定,为什么(如果有)排除了 SQL,毕竟 SQL 已经积累了数十年的数据存储和查询功能。

    【讨论】:

    • 属性完全是任意的。我对 SQL VLDB 有一些经验,但它并不好。它需要太多的处理。
    • “完全任意”指向 NoSQL,可以理解。这意味着,正如我所说,您正在寻找学习 Map/Reduce。我自己一直在学习它,虽然我最终可能不会使用 MongoDB,但我发现它的教程是最好的,所以最好继续学习。
    • 如果我目前理解你说对 NoSQL DB 执行复杂查询的方法是使用 Map/Reduce,对吧?
    • @sonia,是的。 “Map”与“Select”大致相同(有许多合适的免责声明),“Reduce”与“Group by”大致相同,也有合适的免责声明。
    【解决方案2】:

    如果您要使用聚合,那么您可以使用 map reduce 来填充聚合表,然后提供该数据。

    为每个查询写 map reduce 可能比较麻烦,你也可以看看 Apache Pig 和 Hive。这对于您所说的那种临时查询特别有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-30
      • 2011-02-10
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多