我正处于涉及数十亿条记录的学术项目的架构阶段。该项目在计算能力和高度可扩展性方面应该非常轻量级。 信息结构非常简单:我需要存储每个具有不同功能的项目列表。该功能是整数,小数,日期,字符串等。导入数据时,该功能的类型是已知的。此外,功能可用于参考其他项目 我需要能够通过其功能(多个)获取和排序项目列表 - 可能使用诸如>,<,=和regexes之类的查询,长度,左,右,中间的字符串之间的字符串值和用户任意输入。
在总和,平均,分组方面的报告也是必要的,因为需求更加宽松 - 不需要完整的多维数据集功能,但更多更好。
我对整个NoSQL世界都很陌生。你会推荐什么?。
答案 0 :(得分:4)
如果您查看了MongoDB的教程,我认为它们是用于查询和聚合的Map / Reduce系统的最佳介绍。
我很想知道为什么你事先得出结论NoSQL是要走的路。虽然不同的项目可能有不同的模式,但是是否有固定数量的实体和属性,为什么你(如果有的话)排除了SQL,毕竟,它有数十年的累积功能来存储和查询数据。
答案 1 :(得分:0)
如果要使用聚合,则可以使用map reduce填充聚合表,然后提供该数据。
为每个查询编写map reduce可能很麻烦,你也可以看看Apache Pig和Hive。这对您正在讨论的特殊查询特别有用。