一、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. angularjs 事件向上向下传播

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  2. django 笔记8 url模板 自定义函数 simple_tag

    感谢alex老师~ 知识点: URL - 两个没见 url>路由系统> 函数或类 > 返回字符串 Form表单提交: 提交 >url>函数或类中的方法 -.. HttpR ...

  3. Car Talk2

    #! /usr/bin/python # -*- coding: utf-8 -*- # # # “Recently I had a visit with my mom and we realized ...

  4. SharePoint 2010 开发人员学习指南

    kaneboy 翻译,一切内容版权归 Microsoft.1. SharePoint 开发起步教程 这是一个为准备进入到 SharePoint 开发领域的 .NET 开发人员所准备的免费在线学习课程. ...

  5. SSRS 报表 递归列表

    SSRS 报表 递归列表 .需要数据集合中两个必备字段 ID PID 1.添加数据集合,在图上标记的地方点击右键添加数据集合,根据需求自己编写 2.点击插入选项卡 中的 矩阵  有两种方式 一种是 矩 ...

  6. 使用regasm注册.net com组件出现不是有效的.net程序集的解决办法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 在电脑上装有VS 2008和VS 2010.使用VS 2010编写了一个C# com组件:MyCom(基于.net f ...

  7. python(2) 图像通道,几何变换,裁剪

    一.图像通道 1.彩色图像转灰度图 from PIL import Image import matplotlib.pyplot as plt img=Image.open('d:/ex.jpg') ...

  8. blongsTo 用法

    当存在这样两张表的时候: one{ , 'name':"name" 'sex':"sex" } two{ , 'type':json } 当我们需要在调用到 o ...

  9. LightOJ-1341 Aladdin and the Flying Carpet 分解质因数(注意对大素数的优化)

    题目链接:https://cn.vjudge.net/problem/LightOJ-1341 题意 给出一个长方形的面积a 让你算整数边长的可能取值,并且两个边都大于给定数字b 思路 唯一分解定理: ...

  10. 单调队列&单调栈归纳

    单调队列 求长度为M的区间内的最大(小)值 单调队列的基本操作,也就是经典的滑动窗口问题. 求长度为M的区间内最大值和最小值的最大差值 两个单调队列,求出长度为M的区间最大最小值的数组,分别求最大最小 ...