从我在本视频中看到的内容......
http://www.youtube.com/watch?v=LhnGarRsKnA
几乎所有传统的RDBM操作(JOINS,GROUP BY,HAVING等)都可以通过MapReduce /非规范化技术的组合在NoSQL数据库中完成。
是否有任何明确描述所有这些等效性的文章/文件。类似于...... NoSQL数据库中JOIN的等价性将是...... bla bla
我在任何地方都找不到这种文件:(
答案 0 :(得分:2)
有一个原因你无法找到那种类型的文档。首先,与SQL不同,没有标准的NoSQL数据库。您是否尝试过搜索特定的NoSQL数据存储?
此外,尝试将关系操作转换为非关系系统只会让您陷入困境。相反,您需要查看您尝试对这些关系操作执行的操作。例如,当您没有多个值字段时,group by用于对具有类别的列表进行排序或处理层次结构对象?是连接组装存储在多个表中的单个对象还是计算集合交集?
SQL的一大优势是任何数据都可以用标准方式表示,任何查询都可以在该数据上运行。它不一定是最适合该数据的,但它是标准的,几乎任何问题都有一个正确的答案。 NoSQL主要是通过牺牲SQL的一般性来优化您的数据存储以满足您的实际需求。这可能是性能,处理大型数据集,处理不一致的数据或只是更简单的代码。简而言之,您需要了解您的要求以及优化它们所涉及的权衡,而不是仅仅默认选择SQL。
您最好的选择是选择一个适合您需要的数据存储(高级功能的良好比较) http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis)并查看使用该数据存储如何设计系统的一些示例。运气好的话,你会找到与你正在做的事情相近的东西。
答案 1 :(得分:1)
本文提供了一些关于NoSQL与使用SQL的良好信息 http://www.develop.com/mongoDB
答案 2 :(得分:0)
要非常小心......你可能不想加入1万亿行表。考虑一下分区数据的模式。例如,使用playOrm,您可以对数据进行分区并执行S-SQL(可伸缩SQL),这样您就可以在分区中执行所需的所有连接,这在许多OLTP应用程序中正是您所需要的,就像您的客户是企业,每个企业一样它位于自己的分区中,您可以加入所有与该业务相关的表格。
答案 3 :(得分:0)
这是一个帮助你在noSql世界中获得成功的模式列表....(这是一项正在进行中的工作)。