《HBase权威指南》一1.3 非关系型数据库系统Not

  • 时间:
  • 浏览:0
  • 来源:大发5分PK10APP下载_大发5分PK10APP官网

对稀疏矩阵、宽表、列式存储的支持使得数据在存储的完后 我不要 范式化,一起也还需要避免查询时采用开销很大的JOIN操作聚合数据。使用智能的主键还需要控制数据怎么才能 才能 去存储以及存储在那些位置。意味着着还需要使用行键的累积内容进行范围检索,行键作为组合键设计时,与字典序左累积为头的索引效果类似于。很久,正确的设计要能使性能我不要 意味着着数据增长而下降,类似于当数据条目从10条增加到11150万条时,系统仍旧还需要保持相同的读写性能。

不同的规模,老要需要设计不同的系统特征,对有五种原则的最佳描述是:反范式化、克隆qq和智能的主键(Denormalization, Duplication, and Intelligent Keys,简称DDI ⑯)。这就需要重新思考在类似于BigTable的存储系统中怎么才能 才能 要能高效合理地存储数据。

存储模型

过去的四五年时间里,为了避免那些的间题,创新的前进步伐由缓慢变得出奇得快,好像每周有的是发布新的框架和项目来满足需求。亲戚朋友 看多了所谓的NoSQL避免方案问世了,NoSQL是Eric Evans针对Johan Oskarsson提出的“为新兴的新数据存储空间⑫命名”那些的间题而创造的另一六个名词。

标示符号化(tagword)实际上是另一六个不错的选者:最新的存储系统不提供通过SQL查询数据的手段,只提供就是比较简单的、类似于API接口的土法子 来存取数据。

物理模型

图1-3展现了Hush应用在HBase中的对应模式。每个短网址都存储在独立的表shorturl中,表中还蕴含了使用统计信息,按统计时间范围不同,存放于不同的列族中,一起每个值有的是其生存期(time-to-live)。列名是日期和另一六个可选维度后缀的组合,类似于国家代码,列值则是对应计数器的值。

很久用户有高读写吞吐率的需求,就要考虑配置一套要能随着负载变化自动均衡避免能力的系统。觉得就是 没有完整篇 避免该那些的间题,很久也还需要帮助用户设计高读写吞吐量的多多线程 。

严格一致性:数据的变化是原子的,一经改变即时生效,这是一致性的最高形式。

众所周知,复杂化的事务避免,如两阶段提交,会增加多个客户端竞争同另一六个资源的意味着着性。最糟糕的情况表就是死锁,有五种情况表也先要避免。用户需要支持的系统采用哪种锁模型?有五种锁模型还需要避免等待时间和死锁?

再来看看HBase短网址,即Hush,Hush允许用户将长网址映射为短网址(short URL),见图1-2表示的实体关系图(entity relationship diagram,ERD,简称ER图)。在附录E⑰ 中还需要查看多整的SQL模式。

让亲戚朋友 来挑几种维度简单介绍一下。需要注意的是,列举的那些维度不须全面,很久这也有的是唯一的区分土法子 。

实际上两者在底层上是有区别的,尤其涉及到模式意味着着ACID事务特征时,意味着着这与实际的存储架构是相关的。就是有五种类的新系统首先做的事情是:一蹶不振 就是限制因素以提升扩展性(有五种点会在1.3.1节讨论)。类似于,它们通常不支持事务或辅助索引。更重要的是,有五种类系统是没有固定模式的,还需要随着应用的改变而灵活变化。

辅助索引

有五种主题在第9章里有更完整篇 的介绍,主要阐述了怎么才能 才能 充分利用HBase的特征去避免实际那些的间题。让亲戚朋友 来看另一六个例子,理解传统的关系数据库模型转到列式存储的HBase的几点基本原则。

机器会崩溃是另一六个客观处于的那些的间题,需要有一套数据迁移方案来应对有五种情况表(关于有五种点还需要参考在“一致性模型”中讨论的CAP定理)。每个数据存储怎么才能 才能 进行服务器故障避免?故障避免完毕完后 否是 还需要正常工作?这与完后 讨论的“一致性模型”维度有关系,意味着着一蹶不振 一台服务器意味着着会造成数据存储的空洞(hole),甚至使整个数据存储不可用。意味着着替换掉故障服务器,没有恢复1150%服务的难度有多大?从另一六个正在提供服务的集群中卸载一台服务器时,也会遇到类似于的那些的间题。

压缩

在上述地址中,散列ID是a23eg。

就是商业RDBMS也避免过类似于的那些的间题,但它们往往就是特定地避免了那些的间题的某好多个方面,更重要的是,它们非常非常的昂贵。而就是开源的RDBMS避免方案中,往往放弃了其中的就是甚至完整篇 的关系型特征,如辅助索引,来换取更高的性能拓展能力。

RDBMS提供了就是类似于的操作(意味着着它是另一六个集中式的面向单服务器的系统),但那些操作在分布式系统中较难实现,那些操作还需要帮助用户避免多多多线程 造成的资源竞争,也还需要帮助用户完成无共享应用服务器的设计。有了那些比较并交换(compare and swap,CAS)操作,意味着着说检查并设置(check and set)操作,在设计系统的完后 还需要有效地降低客户端的复杂化度。

短网址存储在shorturl表中,用户还需要点击短网址来链接到完整篇 网址。系统会跟踪每次点击,记录该网址的使用次数,有的是记录就是就是信息,类似于,点击该链接的用户所在的国家。那些信息会记录在click表中,有五种表的功能类似于另一六个计数器,以天为周期统计每天的访问量。

那些的间题是,为了性能而老要放弃以上关系型特征否是 值得?用户还需要反范式化(见1.3.3节)数据模型来避免等待时间,很久还需要通过降低锁粒度的土法子 来尽量避免死锁。数据增长时,我不要 重新分区迁移数据并内嵌水平扩展性的土法子 。最后,用户需要面对容错和数据可用性那些的间题,采用提高扩展性的机制,用户最终会得到另一六个NoSQL的避免方案,更确切地说,HBase还需要满足以上多种需求。

辅助索引支持用户按不同的字段和排序土法子 来访问表。有五种维度覆盖了就是完整篇 没有辅助索引支持且不保证数据排序的系统(类似于HashMap,即用户需要知道数据对应键的值),到就是意味着着通过组织组织结构手段简单支持那些功能的系统。意味着着存储系统不提供这项功能,用户的应用还需要应对或自已模拟辅助索引吗?

加锁、等待时间和死锁

采用最终一致性策略的系统还还需要细分为好多个子类,很久那些子策略还还需要共存。亚马逊的首席技术官Werner Vogels在一篇名为“Eventually Consistent”的文章中列举了这好多个子类。这篇文章还谈到了CAP定理(CAP theorem)⑬,其中指出,另一六个分布式系统没有一起实现一致性、可用性和分区容忍性(或分区容错性)中的另一六个。CAP定理是热点话题,不过它有的是区分分布式系统的唯一土法子 ,但CAP定理指出了,开发一套一起满足以上需求的分布式系统是比较困难的。类似于,Vogels提到:

更糟糕的是,RDBMS的等待时间和死锁的再次出现频率,与事务和并发的增加并有的是线性关系,准确地说,与并发数目的平方以及事务规模的3次方甚至5次方相关⑮。分区通常是另一六个不切合实际的避免方案,意味着着它需要客户端采用非常复杂化的土法子 和较高的代价来维护分区信息。

一致性模型

在这本书里,亲戚朋友 老要会提到一致性那些的间题,就是有必要在这里对它稍加介绍。一结速的一致性是保证数据库客户端操作的正确性,数据库需要保证每一步操作有的是从另一六个一致的情况表到下另一六个一致的情况表。系统没有明确地指定怎么才能 才能 实现有五种功能,以便系统还需要有多种选者。最终,系统要选者是进入下另一六个一致的情况表,还是回退到上另一六个一致的情况表,从而保证一致性。

放宽一致性来提高系统可用性是另一六个非常有效的提议。不过有五种方案会强制让应用层去避免一致性的那些的间题,很久也会增加系统的复杂化度。

各种非关系型数据库有就是一起的特征,一起这其中的就是特征与传统的存储方案有的是就是一起点。很久新系统并有的是革命性的产品,从工程的角度来看更像是产品的进化。

用户信息存储在user表中,用户还需要在Hush网站上注册并创建各人所有短网址列表,一起也还需要在此网站上增加描述。user表与shorturl表之间维护了另一六个外键关系。

下载下来的页面和提取的完整篇 信息存储在url表中,然后能 通过压缩最大限度地减少存储量,意味着着存储的页面主就是HTML,有五种格式有五种冗余量大,很久蕴含了多量文本。

正意味着着类似于新产品还没有大慨的名称,NoSQL一举成名。在激烈的讨论中,它被认为是“SQL”的克星_,意味着着说,它给仍旧考虑使用传统RDBMS的人带来了瘟疫……就是开个玩笑!

RDBMS非常适合事务性操作,但不见长于超大规模的数据分析避免,意味着着超大规模的查询需要进行大范围的数据记录扫描或全表扫描。分析型数据库还需要存储数百或数千TB的数据,在一台服务器上做查询工作的响应时间,会远远超过用户可接受的合理响应时间。垂直扩展服务器性能,即增加CPU核数和磁盘数目,就是须能很好地避免该那些的间题。

内存还是持久化?坦率来说做出有五种决定不须难,其主要意味着着是,亲戚朋友 还需要将其与RDBMS进行对比,它们通常持久化存储数据到磁盘中。即使需要的是纯粹的内存模式,也仍旧有就是方案。一旦考虑持久化存储,就需要考虑选者的方案否是 会影响到访问模式?

本节书摘来异步社区《HBase权威指南》一书中的第1章,第1.3节,作者: 【美】Lars George 译者: 代志远 , 刘佳 , 蒋杰 责编: 杨海玲,更多章节内容还需要访问云栖社区“异步社区”公众号查看。

原子操作的读-修改-写

严格一致性还是最终一致性?那些的间题是存储系统怎么才能 才能 实现它的目标:需要降低一致性要求吗?觉得有五种那些的间题很粗浅,很久在特定的场景中会产生巨大影响。意味着着一致性意味着着会影响操作延时,即系统响应读写请求的下行带宽 。这需要权衡投入和产出后得到另一六个折中结果。⑭

一致性模型

用户需要了解各人所有的应用多多线程 的访问模式。是读多写少?还是读写相当?意味着着是写多读少?是用范围扫描数据好,还是用随机读请求数据更好?就是系统仅仅对那些情况表中的有五种支持得非常好,就是系统则对各种情况表都提供了很好的支持。

这使得通过统计原始的短网址标识refShortId,就还需要统计任意另一六个短网址映射到同另一六个长网址的使用率。shortId和refShortId利用散列ID的土法子 被唯一地分配给了短网址。类似于:

最终一致性:在没有更新数据的一段时间里,系统将通过广播保证副本之间的数据一致性。

数据模型

系统通过user-shorturl表还需要快速查到指定用户的所有短网址标识。有五种功能被用在用户主页中,很久用户一登录就会被记录下来。user表存储觉得际用户的完整篇 信息。

分布式模式还是单机模式?有五种架构看起来像那些?是仅仅运行在单个机器上,还是分布在多台机器上,但分布及扩展规则由客户端管理,换句话说,由用户各人所有的代码管理?我说分布式模式仅仅是个事后的工作,很久只会在用户需要扩展系统时产生那些的间题。意味着着系统提供了一定的扩展性,没有需要用户采取特定的操作吗?最简单的避免方案就是一次增加一台机器,很久设置好分区(这点对于不支持虚拟分区的系统非常重要),设置需要要考虑一起提高每个分区的避免能力,意味着着系统的每个累积都需要提供均衡的性能。

当用户需要存储TB级的数据时,尤其当那些数据差异性很小或由可读性文本组成时,压缩会带来非常好的效果,即能节省多量的原始数据存储。就是压缩算法还需要将此类的数据压缩到原始文件大小的十分之一。有可选者的压缩组件吗?又有那些压缩算法可用?

弱一致性:没有做出保证的情况表下,所有的更新会通过广播的形式传递,展现给不同客户端的数据顺序意味着着不一样。

顺序一致性:每个客户端看多的数据依照它们操作执行的顺序而变化。

累积原则是采用反范式化模式,类似于将数据克隆qq到多张表中,就是 在读取的完后 就不需从多张表中聚合数据了。意味着着预先物化所需的视图,一次优化从而避免进一步的避免来提高读取性能。

因果一致性:客户端以因果关系顺序观察到数据的改变。

一致性还需要按照严格程度由强到弱分类,意味着着是按照对客户端的保证程度分类,下面是另一六个非正式的分类列表。

负载均衡

图像说明文字 稍后亲戚朋友 会回顾那些维度,看看HBase适合用在哪里,其优势何在。现在需要指出的是,一定要根据实际的需求来仔细选者最适合的维度。按照实际情况表来设计避免方案,要知道没有硬性规定说:RDBMS没有很好地避免的那些的间题,NoSQL就能完美避免。重要的是正确地评估需求,很久再做出明智的选者,有需要一句话甚至还需要采用混合使用的方案。

还需要用另一六个有趣的词来形容有五种情况表——阻抗匹配(impedance match),意思也我不要 为另一六个给定那些的间题找到另一六个理想的避免方案,除了使用通用的避免方案,还应该知道有那些可用的避免方案,从而找到最适合于避免该那些的间题的系统。

读/写性能

每个链接页面只存储一份,不过,意味着着也我不要 户意味着着会链接同另一六个长网址,很久还想保存亲戚朋友 各人所有的完整篇 信息,类似于,使用统计信息,然后能 在短链接表中创建多个项来加以区分。通过这段逻辑,将url表、shorturl表和click表关联在了一起。

觉得表的数量相同,有的是另一六个,但表的含义处于了变化:clicks表被合并到了shorturl表中,统计列使用日期为列键,格式为YYYYMMDD,类似于,201101502,就是 用户还需要顺序访问数据。新增的user-shorturl表代替了外键,使查询用户相关信息变得更为快捷。

系统有的是在后台下载链接到的页面,并提取就是TITLE类似于的HTML标签。将整个页面保存下来的目的是,供后续的异步任务进行避免和分析。那些内容都由url表存储。

很久连Memcached就是 的项目都划入到NoSQL范畴一句话,那就成了很久有的是RDBMS就还需要认为是NoSQL。有五种说法意味着着了错误的二分法,二分法掩盖了那些系统提供的令人振奋的技术可行性。在NoSQL范畴内,还有就是的维度还需要区分系统的特定优势所在。

数据有多种存储的土法子 ,包括键/值对(类似于HashMap)、半特征化的列式存储和文档特征存储。用户的应用怎么才能 才能 存取数据?一起数据模式否是 随着时间而变化?

故障避免

有非常多的土法子 来转换一对一、一对多、多对多的关系,以适应HBase的底层架构。有五种简单的例子有多种实现土法子 ,用户需要充分理解HBase存储设计的潜在能力,很久深思熟虑地决定用哪有五种实现土法子 。

“在一系列的研究结果里发现,在较大型的分布式系统中,意味着着网络分隔,一致性与可用性没有一起满足。这意味着着另一六个累积最多没有一起实现另一六个,不意味着着三者兼顾;放宽一致性的要求会提升系统的可用性……提升一致性意味着着系统需要牺牲一定的可用性。”

文字实际上,为特定的那些的间题制定差异化的专用避免方案的想法不须新鲜。像Berkeley DB、Coherence、GT.M就是 的系统,以及面向对象的数据库系统都意味着着再次出现了好多年,就是甚至都还需要追溯到20世纪150年代初,从定义上来看,它们都属于NoSQL。

很久,有的是就是工具为NoSQL数据存储提供了SQL语言的入口,用于执行就是关系数据库中常用的复杂化条件查询。很久,从查询土法子 上的限制来说,关系型数据库和非关系型数据库并没有严格的区分。

猜你喜欢

游客zuc4beqhlrrjg的主页

文章:2丨粉丝:61185丨话题:0文章:28丨粉丝:77丨话题:0阿里云ET专家,重点在智能语音、人脸识别、图像识别、OCR等...文章:3000丨粉丝:62902丨话题:0

2020-01-27

真有一些女生不想谈恋爱 觉得谈恋爱很麻烦嘛

追答追答追问追答追答追问追答追问追答你应该学好进一步发展啊?诱导她做或多或少男女亲戚大伙才会做的事情。比如牵手,接吻。难道她都有不承认她是你女友?你喜欢的或多或少 女生是非常

2020-01-27

看别人秀恩爱,看到情侣,我也羡慕想谈恋爱。为什么会这样啊?而且

展开详细展开详细为你推荐:展开详细由于有追你的由于遇到了心仪的帅哥都还要尝试一下啊,当然是在成年然后 啊,被早恋哈哈,希望对您有所帮助哈追答本回答由外国网友推荐有点硬推荐

2020-01-27

情侣之间千万不能做的事有哪些?

有点痛 推荐你对你这一回答的评价是?你对你这一回答的评价是?收起更多回答(2)使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。那就说 并不一直跟他吵

2020-01-27

请问,哪些地方适合情侣独处,我想要那种只有俩个人,没有别人打扰的地方,而且不要很贵的地方。家、宾馆

随便说说我最喜欢另另一个 人一块儿坐在公园的长登上,看着旁边的人在休息或是在奔跑,我真的很喜欢那种感觉.......扫描二维码下载倘若宾馆一句话,一般容易会使人想歪的,那就在

2020-01-27