快乐学习
前程无忧、中华英才非你莫属!

何时使用NoSQL才是最佳?

来源:http://www.linkedin.com/

许多组织在使用新的NoSQL产品之一时遇到困难。本博客列出了部署NoSQL技术的新系统的一些高级别要求。

请注意,本博客重点介绍以下类别的NoSQL产品:键值存储(例如DynamoDB,Riak),文档存储(例如,CouchDB,MongoDB),列系列存储(例如,Apache Hbase,Cassandra) ,而不是图形存储。这三类NoSQL产品的不同之处在于如何组织数据,如何支持数据结构,如何实现其并发机制等。事实上,即使一个类别中的产品也可能相当多样化。事实上,如果对所有的个别产品进行了详细的比较,那么他们唯一的共同之处在于它们属于NoSQL类别。这不是一个同类产品,例如SQL产品。

无论这些差异如何,对于大多数这些产品,适用以下一套高级要求:

交易:要开发的系统必须是一个交易系统。大多数NoSQL产品都不善于分析和复杂的报告。他们不支持正确的内部功能,但它们在运行交易方面表现优异。这就是NoSQL产品的优势所在。

大事务工作量:系统必须支持大量事务和/或并发用户。开发一个交易系统将是一个过度的过程,该系统使用NoSQL产品每小时处理最多五十个事务。在这种情况下,推荐更传统的东西。 NoSQL产品被开发用于操纵大数据并支持大型事务工作负载的系统。

单记录事务:NoSQL产品可以处理大量事务工作负载的技术原因之一是它们支持几乎没有开销的简单并发控制机制。但是,该机制不支持多表或多记录事务。交易限于一张表中的一条记录。这简化了并发机制,从而提高了事务的可扩展性。

大量数据采集:系统必须能够在短时间内加载大量数据。 NoSQL产品在这种类型的工作负载上很好,使其适用于例如weblog和传感器环境。

简单报告:系统只需执行简单查询,如点查询。点查询的示例是:获取发票AB457或获取产品5792的描述。此类查询不会干扰事务工作负载。大多数NoSQL产品没有用于指定复杂查询的功能,也没有优化功能。

动态数据结构:当系统需要动态数据结构时,NoSQL工作得很好。动态数据结构是灵活的数据结构。它们可以轻松更改,可以轻松添加或更改新的列或元素。某些系统需要这个特殊功能。在NoSQL产品中,更改现有数据结构非常简单。当新的记录被插入并且它包含一个新的元素或列时,NoSQL产品将处理它,而不必重新组织表中的所有其他记录。

复杂数据结构:当逻辑上属于一起的数据存储在一起时,某些系统更容易开发,即使这意味着数据结构变得非常规范化。 NoSQL产品被设计为处理非规范化结构,例如数组,层次结构,集合,重复组等。

 “窄”数据模型:如果系统需要由数百个表和相互关系组成的复杂数据模型,那么NoSQL就不是正确的选择。如果数据模型“窄”,否则NoSQL产品表现不错,换句话说,如果数据模型不包含太多的表格,则表现良好。

显然,NoSQL产品在支持这些要求方面可能有所不同。如图所示,它是一个非常异构的产品组,但希望这个列表有助于组织确定,如果一个NoSQL产品应该和可以用于他们想要开发的系统,其次,确定哪个产品可能是他们的正确选择。

打赏

未经允许不得转载:同乐学堂 » 何时使用NoSQL才是最佳?

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

特别的技术,给特别的你!

联系QQ:1071235258QQ群:226134712
error: Sorry,暂时内容不可复制!