Skip to main content

NoSQL数据库概述

01 nosql的简介 (可能 2024)

01 nosql的简介 (可能 2024)
Anonim

首字母缩略词NoSQL是在1998年创造的。许多人认为NoSQL是为了捅SQL而创建的贬义词。实际上,这个术语意味着不仅仅是SQL。这个想法是两种技术可以共存,每种技术都有自己的位置。由于许多Web 2.0领导者采用了NoSQL技术,NoSQL运动在过去几年一直是新闻报道。像Facebook,Twitter,Digg,亚马逊,LinkedIn和谷歌这样的公司都以这种或那种方式使用NoSQL。让我们分解NoSQL,以便您可以向您的CIO甚至您的同事解释。

NoSQL从需求中崛起

数据存储: 世界存储的数字数据以艾字节为单位。 exabyte等于10亿千兆字节(GB)的数据。据Internet.com称,2006年增加的存储数据量为161艾字节。仅仅4年后的2010年,存储的数据量将近1,000 ExaBytes,增幅超过500%。换句话说,世界上存储了大量数据,并且它将继续增长。

互联数据: 数据继续变得更加紧密。网络的创建以超链接形式出现,博客有pingback,每个主要的社交网络系统都有标记,将事物联系在一起。主要系统建立互连。

复杂数据结构: NoSQL可以轻松处理分层嵌套数据结构。要在SQL中完成同样的事情,您需要具有各种键的多个关系表。此外,性能和数据复杂性之间存在关联。当我们存储社交网络应用程序和语义Web中所需的大量数据时,传统RDBMS中的性能会降低。

什么是NoSQL?

我想定义NoSQL的一种方法是考虑它不是什么。它不是SQL而且它不是关系型的。顾名思义,它不是RDBMS的替代品,而是赞美它。 NoSQL专为分布式数据存储而设计,可满足大规模数据需求。想想Facebook拥有500,000,000用户或Twitter,每天都会累积Terabits数据。

在NoSQL数据库中,没有固定的模式和连接。 RDBMS通过获得更快更快的硬件和添加内存来“扩展”。另一方面,NoSQL可以利用“向外扩展”。缩小是指将负载分散到许多商品系统上。这是NoSQL的组件,使其成为大型数据集的廉价解决方案。

NoSQL类别

当前的NoSQL世界适合4个基本类别。

  1. 键值商店 主要基于2007年编写的亚马逊Dynamo Paper。主要思想是存在一个哈希表,其中有一个唯一键和一个指向特定数据项的指针。这些映射通常伴随缓存机制以最大化性能。
    1. 列家庭商店 用于存储和处理分布在许多机器上的大量数据。仍然有键,但它们指向多列。对于BigTable(Google的Column Family NoSQL模型),行由行键标识,数据按此键排序和存储。列按列族排列。
  2. 文件数据库s灵感来自Lotus Notes,与键值商店类似。该模型基本上是版本化文档,是其他键值集合的集合。半结构化文档以JSON等格式存储。
  3. 图数据库s由节点,注释之间的关系和节点的属性构建。不是使用行和列的表以及SQL的刚性结构,而是使用可以跨多台机器扩展的灵活图模型。

主要的NoSQL玩家

NoSQL的主要参与者的出现主要是因为采用它们的组织。一些最大的NoSQL技术包括:

  • 发电机: Dynamo由Amazon.com创建,是最着名的Key-Value NoSQL数据库。亚马逊需要为其电子商务业务提供高度可扩展的分布式平台,因此他们开发了Dynamo。 Amazon S3使用Dynamo作为存储机制。
  • 卡桑德拉: Cassandra由Facebook开源,是一个面向列的NoSQL数据库。
  • BigTable的: BigTable是Google专有的面向列的数据库。 Google允许使用BigTable,但仅限Google App Engine。
  • SimpleDB的: SimpleDB是另一个亚马逊数据库。用于Amazon EC2和S3,它是Amazon Web Services的一部分,根据使用情况收取费用。
  • CouchDB的: CouchDB和MongoDB是面向开源文档的NoSQL数据库。
  • Neo4j的: Neo4j是一个开源图形数据库。

查询NoSQL

如何查询NoSQL数据库的问题是大多数开发人员感兴趣的问题。毕竟,如果您无法检索并向最终用户或Web服务显示数据,那么存储在庞大数据库中的数据对任何人都无益。 NoSQL数据库不提供像SQL这样的高级声明性查询语言。相反,查询这些数据库是特定于数据模型的。

许多NoSQL平台允许RESTful数据接口。其他提供查询API。已经开发了一些试图查询多个NoSQL数据库的查询工具。这些工具通常适用于单个NoSQL类别。一个例子是SPARQL。 SPARQL是为图形数据库设计的声明性查询规范。以下是检索特定博客的URL的SPARQL查询示例(由IBM提供):

PREFIX foaf: SELECT?url在哪里{?贡献者foaf:名字叫“Jon Foobar”。?贡献者foaf:weblog?url。}

NoSQL的未来

拥有大量数据存储需求的组织正在认真对待NoSQL。显然,这个概念并没有在较小的组织中获得那么多的牵引力。在Information Week进行的一项调查中,44%的商业IT专业人士没有听说过NoSQL。此外,只有1%的受访者表示NoSQL是其战略方向的一部分。显而易见,NoSQL在我们的互联世界中占有一席之地,但需要继续发展,以获得许多人认为可能拥有的大众吸引力。