具体解释NoSQL数据库使用实例
一、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数据库使用实例的更多相关文章
- NoSQL 数据库概览及其与 SQL 语法的比较
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对N ...
- NoSQL数据库概览及其与SQL语法的比較
[文章摘要] HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统.同一时候也是知名的NoSQL数据库之中的一个.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤 ...
- NoSQL数据库笔谈(转)
NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...
- 把 ElasticSearch 当成是 NoSQL 数据库
Elasticsearch 可以被当成一个 “NoSQL”-数据库来使用么? NoSQL 意味着在不同的环境下存在不同的东西, 而erestingly 它并不是真的跟 SQL 有啥关系. 我们开始只会 ...
- NoSQL数据库笔谈
NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...
- NoSQL数据库介绍(2)
2 NoSQL潮流 在这一章中,将一起讨论NoSQL潮流的动机和主要驱动力.以及NoSQL主张的批评和反馈.本章将通过不同的尝试得出结论来分类和描写叙述NoSQL数据库.当中一个分类法将在随 ...
- NoSQL数据库介绍(4)
4 键/值存储 讨论了经常使用的概念.技术和模式后.第一类NoSQL数据存储会在本章进行研究. 键/值存储通常有一个简单的数据模型:一个map/dictionary,同意客户按键来存放和请求 ...
- NoSql数据库使用半年后在设计上面的一些心得
NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...
- 几款主流 NoSql 数据库的对比
最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...
随机推荐
- 10gR2 rac怎样重跑root.sh ?
原文博客链接地址:10gR2 rac怎样重跑root.sh ? 前几天遇到一客户的10205 rac,出现LMD进程IPC SEND TIMEOUT问题. 准备深入研究下Oracle RAC 的LMO ...
- [javase学习笔记]-6.7 封装
这一节我们学习面向对象中的第一个特性,封装(encapsulation) 封装:是指隐藏对象的发生和实现细节,仅对外提供公共訪问方式. 那么什么是隐藏对象的实现细节? 我们来举例学习. 比方我们来定义 ...
- windows, fast-rcnn CPU版本的安装配置
一:安装准备 1:caffe的安装配置,本人用的是happynear大神的caffe版本,具体链接https://github.com/happynear/caffe-windows,编译时需要用到p ...
- 发送消息vs函数调用
消息发送:对象处理消息: 消息发送的selector作为消息的一部分,在对象的运行时底层参与了消息分发,最终完成动态函数调用. objc_msgSend(void /* id self, SEL op ...
- Mac or windows eclipse配置tomcat
1.选择window --> Preferences 首选项 2.选择server --> Runtime Environements --> Add 3.选择对应的tomcat版本 ...
- caioj 1069 动态规划入门(二维一边推2:顺序对齐)(最长公共子序列拓展总结)
caioj 1068是最长公共子序列裸体,秒过, 就不写博客了 caioj 1069到1071 都是最长公共字序列的拓展,我总结出了一个模型,屡试不爽 (1) 字符串下标从1开始,因为0用来表示 ...
- USART
串口通信是一种设备间非常常用的串行通行方式,其简单便捷,大部分电子设备都支持. 一.物理层 常用RS-232标准,主要规定了信号的用途.通信接口以及信号的电平标准. “DB9接口”之间通过串口信号线 ...
- 安卓Gallery配合ImageSwitcher不显示图片
Gallary装的是缩略图(thumb),ImageSwitcher装的是大图. 不显示图片的一个可能原因是gallery没设置代理器,另一个原因是没使用相对布局. GalleryActivity.j ...
- Android Recovery OTA升级(一)—— make otapackage
文件夹 文件夹 概述 make otapackage BUILT_TARGET_FILES_PACKAGE ota_from_target_files WriteFullOTAPackage Sign ...
- JSP编程技术5-购物车的实现-session会话对象
首先十分感谢大家对我的文章的支持,我是个刚刚才找到自己方向的在校大学生,当然我的知识和能力有限,眼下正在努力恶补学习中.当我看到自己首次发表到CSDN首页的文章才几个小时阅读量就超过了100时,对我来 ...