一、NoSQL基础知识

1.关于NoSQL

在“NoSQL”一词。实际上是一个叫Racker的同事创造的,当约翰埃文斯埃里克要组织一次活动来讨论开源的分布式数据库。

这个名称和概念都由此而来。

有些人反对NoSQL术语,由于它听起来像我们定义自己是什么.在一定程度,但长期仍然是有价值的。由于当一个关系数据库是唯一的工具,你知道,每个问题,看起来像一个大拇指。

NoSQL是让人们知道有其它选择哪里。但我们并不反对关系数据库,由于当这确实是工作的最佳工具.

一个与NoSQL名称真正关注的是,它是一个非常大的帐篷。有非常不同的设计空间。假设这不是在讨论清楚的,它在各种产品混乱的结果。因此,我要建议沿着三个轴的思考非常多数据库选项:可扩展性,数据和查询模型和持久性的设计。

前所未有的数据量正推动企业关注传统的关系数据库技术。已服务了30多年良好替代品。总的来说。这些替代品已被称作“NoSQL数据库。”

最根本的问题是关系数据库不能处理非常多现代的工作量。有三个详细的问题:扩大向像Digg新闻评论站点的(3TB绿色徽章)或Facebook的(50TB收件箱中的搜索)或EBay(总体2PB),

每server性能和严格的架构设计。

备注:(Digg概念源自美国Digg公司。它全然是依靠真实的网民的自己力量。站点上全部内容都是由网民自己公布,而且内容的位置也是由网民自己来决定。当内容的顶数,评论等达到一定的数字。这些内容就有可能从众多的信息中脱颖而出。

我近期写了邮件给卡桑德拉,关于非关系型数据库的资源。我们承诺后,还有其它非关系型数据库在工作,我们称之为“NoSQL运动。”

2.一个简单的NoSQL实例

我选择了一些作为样例NoSQL数据库。这不是一个详尽的清单,但讨论的概念是对于衡量其它人也至关重要。

可伸缩性

缩放读取与复制easy,当我们对在这方面缩放时。我们的意思写了缩放到多台机器自己主动分区的数据。我们呼吁制度不健全。这样的“分布式数据库。

”这当中包含Cassandra,HBase。Riak,Scalaris,Voldemort,等等。

假设你写卷或数据容量超过一台机器可处理。那么这些是你的唯一选择,假设你不想手动分区管理。

有两件事情看在分布式数据库:1)支持多种数据中心和2)可以加入新的机器现场集群的应用程序的透明。

二、NoSQL数据库使用

1. NoSQL数据和查询模型

非分布式NoSQL数据库包含CouchDB。MongoDB,Neo4j,Redis。和Tokyo Cabinet。

这些能够作为分布式系统持久层; MongoDB提供有限的共享支持,做了单独的歇息室为CouchDB项目。和Tokyo Cabinet可作为Voldemort存储引擎使用。

数据和查询模型

在NoSQL里有非常多不同的数据模型和数据库的查询API.

一些重点:

该columnfamily模型Cassandra共享和HBase的是由谷歌的Bigtable文件。第2节描写叙述的启示。 (Cassandra下降,历史版本号,并加入超级列。)在这两个系统,你必须像你行和列习以为常,但稀疏行:每一行能够有很多或尽可能少列的须要。以及列不必须预定义。

键/值模型是最简单和最easy实现的,但效率低,仅仅有当你在查询或更新的值的一部分感兴趣。这也是难以运行的分布式圈顶更复杂的结构/价值。

文档数据库基本上是下一阶段重点/值。同意嵌套的值与每一个键关联。

文件数据库支持查询的效率比每次返回了整个BLOB更简单。

Neo4J有一个真正独特的数据模型,对象存储在图和节点和边的关系。

对于查询适合这个模型(比如。分层数据),它们能够是1000倍速度比替代品。

Scalaris是独特的。提供跨多个键分布式事务。 (讨论与贸易之间的一致性和可用性权衡超出了这个职位的范围,但还有一个方面就是要牢记在评价分布式系统。)

持久性设计

通过持续的设计我的意思是,“怎样在内部存储的数据?” 持久性模型告诉我们非常多这些数据库可以善于什么样的工作量.

在内存数据库是很。很快的(Redis达到每秒超过100,000操作一台计算机上),但不能与数据集的工作,超出可用的RAM。耐久性(保留数据。即使server崩溃或断电)也将是一个问题的数据量,能够预期损失之间的冲(复制数据到磁盘)可能很大。

Scalaris,其它内存数据库,我们的名单上。意向处理与复制耐久性问题,但因为它不支持多个数据中心的数据将仍然easy受到停电的事情一样。

Memtables和SSTables缓存在内存中写入(1“memtable”)后。以书面追加仅仅承诺为耐久性日志。

当写够已被接受的memtable排序并写入到磁盘上的全部一次作为“sstable。

”这提供近内存中的表现,由于没有涉及要求。同一时候避免了纯粹的耐久性问题,在内存的方法。 (这是具体描写叙述在第5.3和先前提及的5.4 Bigtable的文件,以及在该日志结构合并树。

B-树已被用于从数据库中实际上是时间的起点。

索引他们提供强大的支持。但表现欠佳的旋转盘(这仍然是迄今为止最具有成本效益,由于多)要求读或写什么工作。

一个有趣的变体是CouchDB的追加,仅仅有B -树,它避免了管理费用的目的在限制CouchDB一写一时间成本.

结论

该NoSQL运动在2009年爆炸地为越来越多的企业全力对付大量数据。在Rackspace云高兴地发挥了NoSQL运动的早期作用。并继续投入资源,Cassandra像NoSQL支持事件。

本文借鉴http://database.51cto.com/art/201004/192283.htm

具体解释NoSQL数据库使用实例的更多相关文章

  1. NoSQL 数据库概览及其与 SQL 语法的比较

    NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对N ...

  2. NoSQL数据库概览及其与SQL语法的比較

    [文章摘要] HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统.同一时候也是知名的NoSQL数据库之中的一个.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤 ...

  3. NoSQL数据库笔谈(转)

    NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...

  4. 把 ElasticSearch 当成是 NoSQL 数据库

    Elasticsearch 可以被当成一个 “NoSQL”-数据库来使用么? NoSQL 意味着在不同的环境下存在不同的东西, 而erestingly 它并不是真的跟 SQL 有啥关系. 我们开始只会 ...

  5. NoSQL数据库笔谈

    NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...

  6. NoSQL数据库介绍(2)

    2 NoSQL潮流      在这一章中,将一起讨论NoSQL潮流的动机和主要驱动力.以及NoSQL主张的批评和反馈.本章将通过不同的尝试得出结论来分类和描写叙述NoSQL数据库.当中一个分类法将在随 ...

  7. NoSQL数据库介绍(4)

    4 键/值存储      讨论了经常使用的概念.技术和模式后.第一类NoSQL数据存储会在本章进行研究. 键/值存储通常有一个简单的数据模型:一个map/dictionary,同意客户按键来存放和请求 ...

  8. NoSql数据库使用半年后在设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...

  9. 几款主流 NoSql 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

随机推荐

  1. less05 作用域

    less @clolor:#ffffff; .bgcolor{ width: 50px; a{ color: @clolor; } @clolor:#ff0000; //覆盖,作用域跟js一样,现在局 ...

  2. Data Member Order

    https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/data-member-order In some appl ...

  3. 版本控制器:SVN(精讲)

    版本控制器:SVN 1 开发中的实际问题 1.1 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流——需求之一:备份! 1.2 这个项目 ...

  4. Linux系统下安装redis

    Linux 下安装 下载地址:http://redis.io/download,下载最新文档版本. 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download ...

  5. php修改限制上传文件大小

    win下:     1.编辑 php.ini:修改在 php5 下文件大小的限制     找到:file_uploads=On  允许 HTTP 文件上传     找到:max_execution_t ...

  6. POJ 3567 Cactus Reloaded(仙人掌直径)

    题意 裸的仙人掌直径. 题解 先考虑基环树的直径:先算出每颗“树”的直径,再在环上跑DP 再考虑仙人掌的直径:把每个基环树缩成一条边,边长为基环树深度. #include<iostream> ...

  7. [UVa11549]Calculator Conundrum

    题目大意:有一个只能显示n位数字的计算器,当溢出时只显示最高的n位. 输入k,要你不断平方,问你计算器显示的最大数是多少. 解题思路:这题的示数肯定会循环,那么我们关键就是找什么时候循环了. 可以用F ...

  8. Linux 中常用的基础命令一

    1.目录相关命令的使用  pwd(printing working directory) 显示当前工作目录    pwd命令相关的环境变量:     PWD  保存了当前工作目录路径     OLDP ...

  9. CSU 1378 Shipura 简单模拟

    上周末中南的题,当时就知道是个简单模拟题,可是一个多小时就是没写出来,代码能力啊 >.< 题意: 某人发明了一种程序语言,只支持一种运算">>",和一种函数 ...

  10. 洛谷 P2839 畅通工程

    P2839 畅通工程 题目描述 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连, ...