Nosql

发布时间:2018-11-17  栏目:NoSQL  评论:0 Comments

ref:http://www.runoob.com/mongodb/nosql.html

基础

用来非关系型数据库
CAP,BASE和终极一致性是NoSQL数据库有的老三良基础。而五分钟法则是内存数据存储的理论依据。这个是不折不扣的源流

   https://blog.csdn.net/testcs_dn/article/details/51225843

使用

貌似不会见扔传统关系数据库,而是于事关项目数据库外面加同重叠伪装,比如热点的数据库(采用NoSQL)
逐条NoSQL数据库来友好的SDK,根据SDK操纵数据库
询问本质:
http://localhost:9200/newooo/\_search/ 【POST】

{
  "query": {
    "match_phrase": {
      "content": {
        "query": "分别参加审议"
      }
    }
  }
}
{
  "query": {
    "match": {
      "title": {
        "query": "上海奶粉",
        "operator": "and"
      }
    }
  },
  "from": 0,
  "size": 100,
  "sort": {
    "time": {
      "order": "desc"
    }
  }
}

什么是NoSQL?

  百度百科中:NoSQL,泛指非关系型的数据库。中文名:非关系型数据库,外文名:NoSQL=Not
Only SQL。

  看 Wikipedia中:A NoSQL (originally
referring to “non SQL” or “non relational”) database provides a
mechanism
for storage and retrieval of
data which is modeled in means other than the tabular relations used
in relational
databases.

  NoSQL(最初指的”非
SQL”或”非关系”)数据库提供了扳平栽机制用来存储和找模型中之多少,不同为关系数据库中使用的报表关系之章程。

  再拘留Wiki中参阅的NoSQL终极指南(nosql-database.org)中说的:NoSQL
DEFINITION:Next Generation Databases mostly addressing some of the
points: being non-relational, distributed, open-source and horizontally
scalable.

  NoSQL的概念:下一代数据库重点是解决部分要义:非关系型,分布式的,开放源码和支撑横向扩张。

  The original intention has been modern web-scale databases. The
movement began early 2009 and is growing rapidly. Often more
characteristics apply such as: schema-free, easy replication support,
simple API, eventually consistent / BASE (not ACID), a huge amount of
data and more. So the misleading term “nosql” (the community now
translates it mostly with “not only sql”) should be seen as an alias to
something like the definition above. 

  初衷是现代网规模之数据库。该运动起来为2009年新,并正快速提高。通常都支持之表征(共同特征),如:无架构开放架构(不待预定义模式),易于复制,简单的API,最终一致/
基础(不支持ACID特性),支持海量数据存储。所以,误导性术语“的NoSQL”(现在社会把它翻译多为“不仅是SQL”),应受视为类似于点的定义之号。

文档型管理(文档)

文档不等于文件
囤是层状结构(类似树状结构)

优势:
化解好数额问题
惠及横向拓展
弹性:数据结构

前世今生

  NoSQL最近几年才生气起来,并且快速增长,那么它们自从什么时起部分吧?

  Such databases have existed since the late 1960s, but did not obtain
the “NoSQL” moniker until a surge of popularity in the early
twenty-first century。

  早啦,从60年份末这样的数据库已经有,但并无博得“NoSQL”的外号。

  只是原先的利用场景再切合下关系型的数据库,所以NoSQL类型的数据库不深受大部分人需要,不被多数人所知。

  NoSQL一词太早出现叫1998年,它是Carlo
Strozzi开发之一个轻量、开源、不提供SQL功能的涉项目数据库(他道,由于NoSQL悖离传统关系数据库模型,因此,它应当发一个簇新的讳,比如“NoREL”或与的接近的名)。
  2009年,Last.fm的Johan
Oskarsson发起了千篇一律次关于分布式开源数据库的座谈,来自Rackspace的Eric
Evans再次提出了NoSQL的定义,这时的NoSQL主要指非关系项目、分布式、不提供ACID的数据库设计模式。
  2009年在亚特兰大举行的“no:sql(east)”讨论会是一个里程碑,其口号是”select
fun, profit from real_world where
relational=false;”。因此,对NoSQL最普遍的解说是“非关系型的”,强调键值存储和文档数据库的助益,而休是仅地反对关系项目数据库。

缓存数据DB/文件

好处:
迅速查询时的信息,比如查询好友最近之10条说说
属性有优化,毫秒级别
操作:
好友发表说说,更新DB/文件及最新的数额
询问的时段不通过存所有多少的数据库,直接当即时个中查询

出生之因

  随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高起的SNS类型的web2.0纯粹动态网站都亮心有余而力不足,暴露了重重难以克服的问题,而非关系型的数据库则由于那个自我的表征得到了非常快捷的腾飞。NoSQL数据库的有就是为了解决广大数据集合多又数列带来的挑战,尤其是很数额运用难题。

  今天咱们得以经过第三正平台(如:Google,Facebook等)可以好易之访和追捕到手多少。用户的个人信息,社交网络,地理位置,用户生成的数量和用户操作日志已经成倍的增加。我们若要是对准这些用户数量进行挖掘,那SQL数据库都休切合这些以了,
NoSQL数据库的上扬吗可能挺好之处理这些老之多少。

  manbet手机客户端3.0 1

NoSQL数据库分类

实时数据库
内存数据库
Key-Value数据库

实例

  社会化关系网:

  Each record: UserID1, UserID2 
  Separate records: UserID, first_name,last_name, age, gender,… 
  Task: Find all friends of friends of friends of … friends of a
given user.

  Wikipedia 页面 :

  Large collection of documents 
  Combination of structured and unstructured data 
  Task: Retrieve all pages regarding athletics of Summer Olympic
before 1950.

例子

Elasticsearch中的分词
一定给百度一晃,检索、或者智能提醒(网络热词分析+用户搜索统计分析)

参考:http://yankaycom-wordpress.stor.sinaapp.com/NoSql\_Database\_Note.html?q=/wp-content/NoSql\_Database\_Note.html\#Document\_Store\_448677452585955

分布式系统

  分布式系统(distributed
system)由多台计算机和通信的软件组件通过电脑网络连接(本地网络或广域网)组成。

  分布式系统是白手起家以网络之上的软件系统。正是为软件之特色,所以分布式系统具有莫大的内聚性和透明性。

  因此,网络及分布式系统之间的别更多之在高层软件(特别是操作系统),而不是硬件。

  分布式系统可以利用在不同的阳台及只要:Pc、工作站、局域网以及广域网上等。

分布式计算的亮点

  可靠性(容错) :

  分布式计算系统受到的一个重点的长处是可靠性。一光服务器的系统崩溃并无影响及任何的服务器。

  可扩展性:

  于分布式计算系统可因需要充实又多之机器。

  资源共享:

  共享数据是少不了的用,如银行,预订系统。

  灵活性:

  由于该网是非常灵活的,它怪易安装,实施和调剂新的服务。

  更快之速度:

  分布式计算系统可来多台计算机的精打细算能力,使得她比较其余系统出更快之处理速度。

  开放系统:

  由于她是放的体系,本地或远程都得看到该服务。

  更强之性:

  相较于集中式计算机网络集群可以供更胜之习性(及重新好的性价比)。

分布式计算的老毛病

  故障排除:

  故障排除与确诊问题。

  软件:

  更不见的软件支持是分布式计算系统的基本点症结。

  网络:

  网络基础设备的题材,包括:传输问题,高负载,信息丢失等。

  安全性:

  开放系统的特点深受分布式计算系统是在多少的安全性以及共享的风险等题材。

RDBMS vs NoSQL

  RDBMS 
  - 高度组织化结构化数据 
  - 结构化查询语言(SQL) 
  - 数据以及事关都存储在单独的表中。 
  - 数据操纵语言,数据定义语言 
  - 严格的一致性
  - 基础业务

  NoSQL 
  - 代表正在不仅仅是SQL
  - 没有声明性查询语言
  - 没有预定义的模式
  -键 – 值对存储,列存储,文档存储,图形数据库
  - 最终一致性,而非ACID属性
  - 非结构化和不得预知的数目
  - CAP定理 
  - 高性能,高可用性和可伸缩性

  manbet手机客户端3.0 2

CAP定理(CAP theorem)

  于电脑是中, CAP定理(CAP theorem), 又被喻为布鲁尔定理(Brewer’s
theorem), 它指出对一个分布式计算系统吧,不容许还要满足以下三碰:

  • 一致性(Consistency) (所有节点在同一时间具有相同的数码)
  • 可用性(Availability) (保证每个请求不随便成功还是失败且生应)
  • 相隔容忍(Partition
    tolerance)
     (系统遭到随意信息的散失或失败不会见潜移默化系的接续运行)

  CAP理论的主导是:一个分布式系统不可能又特别好之满足一致性,可用性和分区容错性这三个要求,最多只能以于好的满足个别单。

  因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP
原则和满足 AP 原则三杀类:

  • CA – 单点集群,满足一致性,可用性的网,通常以可扩展性上无顶强劲。
  • CP – 满足一致性,分区容忍性的体系,通常性能不是特地高。
  • AP – 满足可用性,分区容忍性的系,通常可能对一致性要求低有。

  manbet手机客户端3.0 3

NoSQL数据库的季不胜分类 

  键值(Key-Value)存储数据库

  这等同类似数据库重点会使用到一个哈希表,这个表中出一个一定的键和一个指针指为特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是倘若DBA只对有些值进行查询或更新的上,Key/value就展示效率低下了。例如:Tokyo
Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.

  列存储数据库

  这有数据库一般是因此来应针对分布式存储的雅量数据。键仍然在,但是其的特色是赖于了差不多个列。这些列是出于列家族来部署的。如:Cassandra,
HBase, Riak.

  文档型数据库

  文档型数据库的灵感是来于Lotus
Notes办公软件之,而且它们跟第一种植键值存储相近似。该档的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可
以当是键值数据库的晋级版本,允许之间嵌套键值。而且文档型数据库比键值数据库的询问效率还胜似。如:CouchDB,
MongoDb. 国内为产生文档型数据库SequoiaDB,已经开源。

  图形(Graph)数据库

  图形结构的数据库及任何队以及刚性结构的SQL数据库不同,它是下灵活的图样模型,并且会壮大至差不多独服务器上。NoSQL数据库没有正式的询问语言(SQL),因此开展数据库查询需要制订数据模型。许多NoSQL数据库都生REST式的多少接口或者查询API。如:Neo4J,
InfoGrid, Infinite Graph.

  因此,我们总结NoSQL数据库在以下的马上几种植状况下比较适用:1、数据模型比较简单;2、需要灵活性更强之IT系统;3、对数据库性能要求较高;4、不待高度的数据一致性;5、对于被一定key,比较好映射复杂值的条件。

季百般分类对比分析

  manbet手机客户端3.0 4

NoSQL的优点/缺点

  优点:

  • – 高但扩展性
  • – 分布式计算
  • – 低成本
  • – 架构的油滑,半结构化数据
  • – 没有复杂的关系

  缺点:

  • – 没有规则
  • – 有限的询问功能(到目前为止)
  • – 最终一致是匪直观的次第

BASE

  BASE:Basically Available, Soft-state, Eventually Consistent。 由
Eric Brewer 定义。

  CAP理论的着力是:一个分布式系统不容许还要非常好之满足一致性,可用性和分区容错性这三独需要,最多只能以于好之满足个别单。

  BASE是NoSQL数据库一般对可用性和一致性的弱要求原则:

  • Basically Availble –基本可用
  • Soft-state –软状态/柔性事务。 “Soft state” 可以解为”无连接”的, 而
    “Hard state” 是”面向连接”的
  • Eventual Consistency — 最终一致性, 也是凡 ACID 的末尾目的。

ACID vs BASE

ACID BASE
原子性(Atomicity) 基本可用(Basically Available)
一致性(Consistency) 软状态/柔性事务(Soft state)
隔离性(Isolation) 最终一致性 (Eventual consistency)
持久性 (Durable)  

Nosql和涉项目数据库的别

1.仓储方

  关系项目数据库是表格式的,因此储存在表的行和列中。他们中充分轻关联协作存储,提取数额充分便宜。而Nosql数据库则和该倒,他是大块的组合在一起。通常存储在数量集中,就如文档、键值对还是图结构。 

2.仓储结构

  关系项目数据库对应的是结构化数据,数据表都预先定义了结构(列的定义),结构描述了数额的样式与内容。这无异沾对数据建模至关重要,虽然预定义结构带来了可靠性和安静,但是修改这些多少比较紧。而Nosql数据库基于动态结构,使用与非结构化数据。因为Nosql数据库是动态结构,可以十分爱适应数据类型和布局的转。 

3.存储规范

  关系项目数据库的数存储为了重新胜似的规范性,把数量分割为极小之关联表以避免重新,获得精简的上空应用。虽然管理起颇清晰,但是单个操作设计到差不多张表的时光,数据管理虽显示略微麻烦。而Nosql数据存储于面数据汇总,数据常常或会见又。单个数据库很少为隔开,而是存储成了一个整,这样整块数据更有益读写

 4.囤扩展

  这或是两者之间最老之界别,关系项目数据库是纵向扩展,也就是说想要增长处理能力,要利用速更快的计算机。因为数量存储于论及表中,操作的性能瓶颈可能涉及到大半只说明,需要经升级计算机性能来克服。虽然发不行老之恢弘空间,但是最终见面达成纵向扩展的上限。而Nosql数据库是横向扩张的,它的存储天然就是是分布式的,可以由此给资源池添加更多的常见数据库服务器来分担负载。

 5.查询艺术

  关系项目数据库通过结构化查询语言来操作数据库(就是咱们普通说的SQL)。SQL支持数据库CURD操作的效果很强,是业界的正式用法。而Nosql查询以块呢单元操作数据,使用的好坏结构化查询语言(UnQl),它是不曾正经的。关系项目数据库表中主键的定义对应Nosql中储存文档的ID。关系项目数据库使用预定义优化措施(比如索引)来加快查询操作,而Nosql更简约重复确切的数额访问模式。

 6.事务

  关系项目数据库遵循ACID规则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)),而Nosql数据库遵循BASE原则(基本可用(Basically
Availble)、软/柔性事务(Soft-state )、最终一致性(Eventual
Consistency))。由于涉及项目数据库的数据强一致性,所以本着工作的支持大好。关系项目数据库支持对作业原子性细粒度控制,并且爱回滚事务。而Nosql数据库是以CAP(一致性、可用性、分区容忍度)中任选两码,因为根据节点的分布式系统中,很为难通满足,所以本着事情之支撑非是甚好,虽然为堪运用工作,但是并无是Nosql的闪光点。

 7.性能

  关系项目数据库为了维护数据的一致性付出了了不起的代价,读写性能于差。在直面高并发读写性能好不同,面对海量数据的时刻效率特别低。而Nosql存储的格式都是key-value类型的,并且存储在内存中,非常容易存储,而且对数据的
一致性是 弱要求。Nosql无需sql的辨析,提高了读写性能。

 8.授权法

  关系项目数据库一般发生SQL
Server,Mysql,Oracle。主流的Nosql数据库有redis,memcache,MongoDb。大多数的涉项目数据库都是付费的还要价格昂贵,成本较生,而Nosql数据库一般都是开源的。

孰当使用

  现在都出很多局利用了 NoSQL:

  • Google
  • Facebook
  • Mozilla
  • Adobe
  • Foursquare
  • LinkedIn
  • Digg
  • McGraw-Hill Education
  • Vermont Public Radio

留下评论

网站地图xml地图