大发PK10APP下载_大发PK10APP官网 - 大发PK10APP下载,大发PK10APP官网是新浪网最重要的频道之一,24小时滚动报道国内、国际及社会新闻。每日编发新闻数以万计。

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

  • 时间:
  • 浏览:1

一些商业RDBMS也外理过类似的现象图片,但它们往往否则 特定地外理了现象图片的某几条方面,更重要的是,它们非常非常的昂贵。而一些开源的RDBMS外理方案中,往往放弃了其中的一些甚至全部的关系型形状,如辅助索引,来换取更高的性能拓展能力。

原子操作的读-修改-写

故障外理

还也能用有有另一个多有趣的词来形容这一 情況——阻抗匹配(impedance match),意思否则 要为有有另一个多给定现象图片找到有有另一个多理想的外理方案,除了使用通用的外理方案,还应该知道有哪几种可用的外理方案,从而找到最适合于外理该现象图片的系统。

一致性模型

分布式模式还是单机模式?这一 架构看起来像哪几种?是仅仅运行在单个机器上,还是分布在多台机器上,但分布及扩展规则由客户端管理,换句话说,由用户买车人的代码管理?你说分布式模式仅仅是个事后的工作,否则 只会在用户还也能扩展系统时产生现象图片。否则 系统提供了一定的扩展性,没人还也能用户采取特定的操作吗?最简单的外理方案否则 一次增加一台机器,否则 设置好分区(这点对于不支持虚拟分区的系统非常重要),设置时还也能考虑同時 提高每个分区的外理能力,否则 系统的每个次要都还也能提供均衡的性能。

放宽一致性来提高系统可用性是有有另一个多非常有效的提议。不过这一 方案会强制让应用层去外理一致性的现象图片,否则 也会增加系统的僵化 度。

各种非关系型数据库有一些同時 的形状,同時 这其中的一些形状与传统的存储方案全部都是全都同時 点。否则 新系统并全部都是革命性的产品,从工程的层厚来看更像是产品的进化。

过去的四五年时间里,为了外理现象图片,创新的前进步伐由缓慢变得出奇得快,好像每周还会发布新的框架和项目来满足需求。你们看到了所谓的NoSQL外理方案问世了,NoSQL是Eric Evans针对Johan Oskarsson提出的“为新兴的新数据存储空间⑫命名”现象图片而创造的有有另一个多名词。

这一 主题在第9章里有更全部的介绍,主要阐述了如保充分利用HBase的形状去外理实际现象图片。要我们来看有有另一个多例子,理解传统的关系数据库模型转到列式存储的HBase的几点基本原则。

RDBMS提供了全都类似的操作(否则 它是有有另一个多集中式的面向单服务器的系统),但哪几种操作在分布式系统中较难实现,哪几种操作还也能帮助用户外理tcp连接池池造成的资源竞争,也还也能帮助用户完成无共享应用服务器的设计。有了哪几种比较并交换(compare and swap,CAS)操作,否则 说检查并设置(check and set)操作,在设计系统的完后 可与非 效地降低客户端的僵化 度。

辅助索引

对稀疏矩阵、宽表、列式存储的支持使得数据在存储的完后 无需范式化,同時 也还也能外理查询时采用开销很大的JOIN操作聚合数据。使用智能的主键还也能控制数据如保去存储以及存储在哪几种位置。否则 还也能使用行键的次要内容进行范围检索,行键作为组合键设计时,与字典序左次要为头的索引效果类似。否则 ,正确的设计也能使性能无需否则 数据增长而下降,类似当数据条目从10条增加到30万条时,系统仍旧还也能保持相同的读写性能。

用户没人解买车人的应用tcp连接池池的访问模式。是读多写少?还是读写相当?否则 是写多读少?是用范围扫描数据好,还是用随机读请求数据更好?一些系统仅仅对哪几种情況中的这一支持得非常好,一些系统则对各种情況都提供了很好的支持。

众所周知,僵化 的事务外理,如两阶段提交,会增加多个客户端竞争同有有另一个多资源的否则 性。最糟糕的情況否则 死锁,这一 情況也很难外理。用户还也能支持的系统采用哪种锁模型?这一 锁模型还也能外理等待和死锁?

存储模型

“在一系列的研究结果里发现,在较大型的分布式系统中,否则 网络分隔,一致性与可用性没人同時 满足。这原困有有另一个多次要最多没人同時 实现有有另一个多,不否则 三者兼顾;放宽一致性的要求会提升系统的可用性……提升一致性原困系统还也能牺牲一定的可用性。”

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

加锁、等待和死锁

正与非 则 类似新产品还没人要花费的名称,NoSQL一举成名。在激烈的讨论中,它被认为是“SQL”的克星_,否则 说,它给仍旧考虑使用传统RDBMS的人带来了瘟疫……否则 开个玩笑!

读/写性能

压缩

一致性还也能按照严格程度由强到弱分类,否则 是按照对客户端的保证程度分类,下面是有有另一个多非正式的分类列表。

每个链接页面只存储一份,不过,否则 一些用户否则 会链接同有有另一个多长网址,否则 还想保存你们买车人的全部信息,类似,使用统计信息,否则 会在短链接表中创建多个项来加以区分。通过这段逻辑,将url表、shorturl表和click表关联在了同時 。

一致性模型

要我们来挑几种维度简单介绍一下。还也能注意的是,列举的哪几种维度无须全面,否则 这也全部都是唯一的区分法律法律依据。

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

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

内存还是持久化?坦率来说做出这一 决定无须难,其主要原困是,你们还也能将其与RDBMS进行对比,它们通常持久化存储数据到磁盘中。即使还也能的是纯粹的内存模式,也仍旧有一些方案。一旦考虑持久化存储,就还也能考虑选折 的方案与非 会影响到访问模式?

数据模型

数据有多种存储的法律法律依据,包括键/值对(类似于HashMap)、半形状化的列式存储和文档形状存储。用户的应用如保存取数据?同時 数据模式与非 随着时间而变化?

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

更糟糕的是,RDBMS的等待和死锁的出现频率,与事务和并发的增加并全部都是线性关系,准确地说,与并发数目的平方以及事务规模的3次方甚至5次方相关⑮。分区通常是有有另一个多不切合实际的外理方案,否则 它还也能客户端采用非常僵化 的法律法律依据和较高的代价来维护分区信息。

如果连Memcached另有有另一个多的项目都划入到NoSQL范畴励志的话 ,那就成了如果全部都是RDBMS就还也能认为是NoSQL。这一 说法原困了错误的二分法,二分法掩盖了哪几种系统提供的令人振奋的技术可行性。在NoSQL范畴内,还有全都的维度还也能区分系统的特定优势所在。

图像说明文字 稍后你们会回顾哪几种维度,看看HBase适合用在哪里,其优势何在。现在还也能指出的是,一定要根据实际的需求来仔细选折 最适合的维度。按照实际情況来设计外理方案,要知道没人硬性规定说:RDBMS没人很好地外理的现象图片,NoSQL就能完美外理。重要的是正确地评估需求,否则 再做出明智的选折 ,有还也能励志的话 甚至还也能采用混合使用的方案。

下载下来的页面和提取的全部信息存储在url表中,否则 要通过压缩最大限度地减少存储量,否则 存储的页面主否则 HTML,这一 格式这一冗余量大,否则 中有 了少量文本。

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

文字实际上,为特定的现象图片制定差异化的专用外理方案的想法无须新鲜。像Berkeley DB、Coherence、GT.M另有有另一个多的系统,以及面向对象的数据库系统都否则 出现了好多年,一些甚至都还也能追溯到20世纪30年代初,从定义上来看,它们都属于NoSQL。

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

系统通过user-shorturl表还也能快速查到指定用户的所有短网址标识。这一 功能被用在用户主页中,也无需户一登录就会被记录下来。user表存储着实际用户的全部信息。

短网址存储在shorturl表中,用户还也能点击短网址来链接到全部网址。系统会跟踪每次点击,记录该网址的使用次数,还会记录一些一些信息,类似,点击该链接的用户所在的国家。哪几种信息会记录在click表中,这一 表的功能类似于有有另一个多计数器,以天为周期统计每天的访问量。

着实表的数量相同,全部都是有有另一个多,但表的含义存在了变化:clicks表被合并到了shorturl表中,统计列使用日期为列键,格式为YYYYMMDD,类似,20110302,另有有另一个多用户还也能顺序访问数据。新增的user-shorturl表代替了外键,使查询用户相关信息变得更为快捷。

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

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

系统还会在后台下载链接到的页面,并提取一些TITLE类似的HTML标签。将整个页面保存下来的目的是,供后续的异步任务进行外理和分析。哪几种内容都由url表存储。

采用最终一致性策略的系统还还也能细分为几条子类,否则 哪几种子策略还还也能共存。亚马逊的首席技术官Werner Vogels在一篇名为“Eventually Consistent”的文章中列举了这几条子类。这篇文章还谈到了CAP定理(CAP theorem)⑬,其中指出,有有另一个多分布式系统没人同時 实现一致性、可用性和分区容忍性(或分区容错性)中的有有另一个多。CAP定理是热点话题,不过它全部都是区分分布式系统的唯一法律法律依据,但CAP定理指出了,开发一套同時 满足以上需求的分布式系统是比较困难的。类似,Vogels提到:

现象图片是,为了性能而另老要放弃以上关系型形状与非 值得?用户还也能反范式化(见1.3.3节)数据模型来外理等待,否则 还也能通过降低锁粒度的法律法律依据来尽量外理死锁。数据增长时,无需重新分区迁移数据并内嵌水平扩展性的法律法律依据。最后,用户还也能面对容错和数据可用性现象图片,采用提高扩展性的机制,用户最终会得到有有另一个多NoSQL的外理方案,更确切地说,HBase还也能满足以上多种需求。

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

辅助索引支持用户按不同的字段和排序法律法律依据来访问表。这一 维度覆盖了一些全部没人辅助索引支持且不保证数据排序的系统(类似于HashMap,即用户还也能知道数据对应键的值),到一些否则 通过內部手段简单支持哪几种功能的系统。否则 存储系统不提供这项功能,用户的应用还也能应对或自已模拟辅助索引吗?

这使得通过统计原始的短网址标识refShortId,就还也能统计任意有有另一个多短网址映射到同有有另一个多长网址的使用率。shortId和refShortId利用散列ID的法律法律依据被唯一地分配给了短网址。类似:

负载均衡

否则 ,全部都是一些工具为NoSQL数据存储提供了SQL语言的入口,用于执行一些关系数据库中常用的僵化 条件查询。否则 ,从查询法律法律依据上的限制来说,关系型数据库和非关系型数据库并没人严格的区分。

次要原则是采用反范式化模式,类似将数据克隆qq好友好友到多张表中,另有有另一个多在读取的完后 就不需从多张表中聚合数据了。否则 预先物化所需的视图,一次优化从而外理进一步的外理来提高读取性能。

有非常多的法律法律依据来转换一对一、一对多、多对多的关系,以适应HBase的底层架构。这一 简单的例子有多种实现法律法律依据,用户还也能充分理解HBase存储设计的潜在能力,否则 深思熟虑地决定用哪这一实现法律法律依据。

物理模型

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

用户信息存储在user表中,用户还也能在Hush网站上注册并创建买车人短网址列表,同時 也还也能在此网站上增加描述。user表与shorturl表之间维护了有有另一个多外键关系。

严格一致性还是最终一致性?现象图片是存储系统如保实现它的目标:还也能降低一致性要求吗?着实这一 现象图片很粗浅,否则 在特定的场景中会产生巨大影响。否则 一致性否则 会影响操作延时,即系统响应读写请求的下行速率 。这还也能权衡投入和产出后得到有有另一个多折中结果。⑭

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

不同的规模,另老要还也能设计不同的系统形状,对这一 原则的最佳描述是:反范式化、克隆qq好友好友和智能的主键(Denormalization, Duplication, and Intelligent Keys,简称DDI ⑯)。这就还也能重新思考在类似BigTable的存储系统中如保也能高效合理地存储数据。

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

在这本书里,你们另老要会提到一致性现象图片,全都有必要在这里对它稍加介绍。一完后 开使英语 英语 的一致性是保证数据库客户端操作的正确性,数据库还也能保证每一步操作全部都是从有有另一个多一致的情況到下有有另一个多一致的情況。系统没人明确地指定如保实现这一 功能,以便系统可与非 多种选折 。最终,系统要选折 是进入下有有另一个多一致的情況,还是回退到上有有另一个多一致的情況,从而保证一致性。

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

机器会崩溃是有有另一个多客观存在的现象图片,还也能有一套数据迁移方案来应对这一 情況(关于这一 点还也能参考在“一致性模型”中讨论的CAP定理)。每个数据存储如保进行服务器故障外理?故障外理完毕完后 与非 还也能正常工作?这与完后 讨论的“一致性模型”维度有关系,否则 拖累一台服务器否则 会造成数据存储的空洞(hole),甚至使整个数据存储不可用。否则 替换掉故障服务器,没人恢复30%服务的难度有多大?从有有另一个多正在提供服务的集群中卸载一台服务器时,也会遇到类似的现象图片。

也无需户有高读写吞吐率的需求,就要考虑配置一套也能随着负载变化自动均衡外理能力的系统。着实另有有另一个多没人全部外理该现象图片,否则 也还也能帮助用户设计高读写吞吐量的tcp连接池池。