一、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. Codeforces 708D 费用流 (呃我们的考试题)

    NB的题目背景 输入输出一样 考试的时候貌似只有gzz一个人搞出来了 %gzz 思路: 分情况讨论 add(x,y,C,E) C是费用 E是流量 1. f>c add(x,y,2,inf),ad ...

  2. 天津大学各种Latex模板共享链接

    多元统计课最后Ppt里说要共享一下模板.这里给出链接 https://www.github.com/6gbluewind 注:写本文时还未上传 ************* 下午终于有网了,于是上传了一 ...

  3. Python dataframe中如何使y列按x列进行统计?

    如图:busy=0 or 1,求出busy=1时los的平均,同样对busy=0时也求出los的平均 Python dataframe中如何使y列按x列进行统计? >> python这个答 ...

  4. TPC-C测试

    TPC发布的测试标准之一,是专门针对联机事务处理系统(OLTP)的测试标准.1992年发布1.0版本.最新版本5.11,2010年发布. 测试规范中模拟了一个比较复杂并具有代表意义的OLTP应用环境, ...

  5. 51Nod 和为k的连续区间

    一整数数列a1, a2, ... , an(有正有负),以及另一个整数k,求一个区间[i, j],(1 <= i <= j <= n),使得a[i] + ... + a[j] = k ...

  6. Display Video

    ###chromium webrtc视频显示 ###两个数据源:本地数据源: MediaStreamRemoteVideoSource(content/renderer/media/webrtc/me ...

  7. 我的 Linux 主目录中的隐藏文件是干什么用的?

    作者: Alexander Fox 译者: LCTT MjSeven 在 Linux 系统中,你可能会在主目录中存储了大量文件和文件夹.但在这些文件之外,你知道你的主目录还附带了很多隐藏的文件和文件夹 ...

  8. NodeJS学习笔记 (19)进阶调试-debugger(ok)

    写在前面 谈到node断点调试,目前主要有三种方式,通过node内置调试工具.通过IDE(如vscode).通过node-inspector,三者本质上差不多.本文着重点在于介绍 如何在本地通过nod ...

  9. gcd步数

    题目描述 一个有趣的函数F(a,b),表示对于数对(a,b)调用辗转相除法的步数为多少 例如 (24,40)....0 (16,24).....1 (8,16).....2 (0,8)....3,即f ...

  10. JZOJ5821手机信号

    用set维护,(l,r,v),注意边界,保证了两个端点l,r一定有信号站 增加有三种可能,1.直接加(没有影响),2.将原本的一个区间变成两个 3.将原本的一个区间变成三个 删除有三种情况,1.全包含 ...