关于黑龙江电力时间同步服务器的信息「黑龙江电力系统」

  本文根据DBAplus社群第99期线上分享整理而成,文末尚有好书送哦~

  讲师先容

  

陈鸿威

云财经大数据CTO

曾任百度高级工程师,现主持计划开辟云财经股市谍报和大数据中心;

拥有丰富的在线电商、证券及时体系、金融海量数据在线盘算的实战履历;致力于各类分布式和大数据开源项目研究。

  主题简介:

关于黑龙江电力时间同步服务器的信息 关于黑龙江电力时间同步服务器的信息「黑龙江电力系统」 行业资讯

  1、传统数据库回顾

  2、分布式底子理论

  3、HBase特性

  4、HBase底层架构

  5、HBase计划要点

  传统数据库回顾

  近些年来,各种互联网+的公司如雨后春笋般出现,做一个在线平台大概做一个APP根本成为这些公司的标配。Web体系的盛行,数据网络越来越轻易,促使各类数据库体系应用得越来越广泛。

  我们在平常的技能讨论大概实际应用中常常会提到传统数据库。提到传统数据库,很多人会很轻易遐想到Oracle、MySQL、SQLServer等带有很显着关系型数据库特性的数据库体系。在我看来,传统数据库并不便是这些数据库,而是看你怎么用的。一样平常来说,传统数据库包罗以下三个光显的特点:

  1、事件的保障:ACID

  ACID一言以蔽之就是原子性、同等性、隔离性、长期化事件,它是四个单词的缩写:

Atomicity原子性事件中全部操纵要么全部完成,要么全失败。

Consistency同等性在事件开始时大概竣事时,数据库应该处于同一状态。

Isolation隔离性事件将假定只有它本身在操纵数据库,相互不知晓。

Durablity一旦事件完成,就不能返回。

  要做到ACID,从编程的角度来说,数据库系同一定会用到锁。

  一样平常对事件要求比力高的重要是买卖业务场景,银行体系、大型在线电商买卖业务体系用得比力多。对于绝大多数创业公司而言,事件是一个偏理论的概念。实际上在,在线体系中,事件是一个很有效的东西,我们举个栗子:

  用户A在平台购买增值服务的场景,会有很多种处理惩罚方式。

  一样平常的程序员会如下处理惩罚:

在财务表中增长一条用户A的扣费记录。(扣费)

在用户增值服务表中增长一条用户A的增值服务记录。(开通服务)

  用户至上的程序员会如下处理惩罚:

在用户增值服务表中增长一条用户A的增值服务记录。(开通服务)

在财务表中增长一条用户A的扣费记录。(扣费)

  三年以上工作履历的程序员会如下处理惩罚:

在财务表中增长一条用户A的扣费记录。(扣费)

判定财务表中是否扣费乐成,不乐成关照体系买卖业务失败。

在用户增值服务表中增长一条用户A的增值服务记录。(开通服务)

判定用户增值服务表中是否增长乐成,不乐成删除财务表中的扣费而且关照体系买卖业务失败。

  那么用上事件之后,你只要提交给数据库一样平常程序员操纵,数据库就会给你三年以上工作履历的程序员的操纵结果,在主从架构读写分离的数据库布局中结果还会更好。

  2、丰富的数据范例和SQL的操纵方式

  传统的数据库体系可以存很多种范例的数据,重要包罗:

数字家属、整数和小数。整数又可以分为32位的,64位的…

字符串范例。字符串又分为固定长度的和可变长度的…

时间家属。日期、时间…

二进制流…

  这么多范例,确实很丰富。我们所看到的,都可以是字符,就算二进制流,也可以通过转码用字符串表现。固然,在讲字符串的时间,我们是把编程语言进化到了一个很高级的程度,开辟的友爱性大于存储本钱。

  对于传统数据库体系的常用操纵,我们一样平常会说CURD。即对表的增编削查,根本都用SQL语句来实现。SQL语句的布局重要分为以下几大部分:

操纵,select、insert、update、delete。

表对象。

字段范围(*/f1/f2…)。

Where条件。

Order排序(desc/asc)。

查询范围限定(top/limit)。

  ……

  SQL语句是为利用者友爱而计划的,无论何种数据库引擎,SQL末了都被映射成为IO和内存操纵。

  3、严格的数据模子:行式存储

  在传统数据库体系中,一样平常来说在第一次写入数据之前,都必要创建库和创建表,而每一个表都有确定的表头,确定列数,每一列的名字以及确定的数据范例。在新数据的写入大概数据的修改的时间,数据库体系会根据创建好的表布局严格校验数据的合法性,对表布局的调解一样平常都必要很大的修改代价。

  在存储单位里,同一行的数据会分布在相邻的存储单位里。

  列式存储相对于行式存储而言,其同一列的数据会分布在相邻的存储单位里。

  题外话:除了行存储和列存储,常见尚有文档模子,典范的代表就是MongoDB。假如用传统的行的角度来看,差别的行列数可以不一样,列的名字和数据范例也可以不一样,列内里可以是另一个嵌套的行。

  互联网的需求

  在互联网化的大环境下,很多体系都很轻易在短时间内体系网络上亿的数据,而且这些数据颠末加工,还要为几十万、几百万乃至更多用户提供访问。从平台角度来说,一样平常就是从小到大,从简单到复杂的过程。重要来说,具有一下三方面特点:

对数据高并发读写的要求

  数据库读写压力巨大,硬盘IO无法遭受。一样平常处理惩罚方法是主从架构,读写分离,分库、分表,缓解写压力,加强读库的可扩展性。

对海量数据的存储和访问

存储记录数量有限,SQL查询服从极低的环境下。通太过库、分表,缓解数据增长压力。

伸缩性,可用性,可靠性方面的需求

  横向扩展艰巨,无法通过快速增长服务器节点实现,体系升级和维护造成服务不可用。通过主从架构,加强读库的扩展性,利用MMM架构处理惩罚写的瓶颈。

  

  传统数据库的瓶颈

  分库分表缺点:

受业务规则影响,需求变动导致分库分表的维护复杂。

体系数据访问层代码必要修改。

  主从架构缺点:

Slave及时性的保障,对于及时性很高的场合大概必要做一些处理惩罚(在第一个购买增值服务的例子中,添加扣费记录之后,在读写分离的场景下,立马去从库查询扣费记录不肯定能查到)。

高可用性题目,Master就是谁人致命点,轻易产生单点故障。

  MMM缺点:

本身扩展性差,一次只能一个Master可以写入,只能办理有限数据量下的可用性。

  分布式底子理论

  1、CAP

分布式范畴CAP理论

Consistency同等性:数据同等更新,全部数据变动都是同步的。

Availability(可用性):好的相应性能。

Partitiontolerance:分区容忍性。

  在分布式体系中,这三个要素最多只能同时实现两点,不大概三者分身;对于分布式数据体系,分区容忍性是根本要求;对于大多数Web应用,捐躯同等性而调换高可用性,是如今多数分布式数据库产物的方向。

  2、Base

BasicallyAvailable:根本可用支持分区失败。

Softstate软状态:状态可以有一段时间差别步,异步。

Eventuallyconsistent:终极同等性,终极数据是同等的就可以了,而不是时时同等。

  3、NoSQL活动两个核心理论

Google的BigTable

BigTable提出了一种很风趣的数据模子,它将各列数据举行排序存储。数据值按范围分布在多台呆板,数据更新操纵有严格的同等性包管。

Amazon的Dynamo

  Dynamo利用的是别的一种分布式模子。Dynamo的模子更简单,它将数据按key举行hash存储。其数据分片模子有比力强的容灾性,因此它实现的是相对疏松的弱同等性:终极同等性。

  HBase特性

  HBase是GoogleBigtable的开源实现,雷同GoogleBigtable利用GFS作为其文件存储体系,HBase利用HadoopHDFS作为其文件存储体系;Google运行MapReduce来处理惩罚Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理惩罚HBase中的海量数据;GoogleBigtable利用Chubby作为协同服务,HBase利用ZooKeeper作为对应。

  重要特点

列的可以动态增长,而且列为空就不存储数据,节流存储空间。

HBase主动切分数据,使得数据存储主动具有程度scalability。

HBase可以提供高并发读写操纵的支持,分布式架构,读写锁等待的概率大大低落。

不能支持条件查询,只支持按照Rowkey来查询。

临时不能支持Masterserver的故障切换,当Master宕机后,整个存储体系就会挂掉。

  HBase底层架构

  HBase是一个列式存储的数据库体系,跟全部的数据库系同一样,数据库是依靠文件体系的,在传统数据库内里我们常常提到存储引擎,比方MySQL有MyISAM/InnoDB,Oracle/SqlServer不开源,没有那么多选择,但都会有本身的存储引擎,说得普通一点就是假造文件体系,HBase的文件体系是HDFS,一种分布式文件体系,以是HBase天然具备分布式的特性。同时HadoopMapReduce为HBase提供了高性能的盘算本领,Zookeeper为HBase提供了稳固服务和failover机制。

  HBase计划要点

  1、逻辑数据模子

Table

Region

ColumnFamily

Row

Column

Value

TimeStamp

  你也可以把HBase当作一个多维度的Map模子去明白它的数据模子。正如下图。

  

  2、HBase的体系构成

  

  NameNode存储DataNode信息,ZooKeeper负责调治。

  一个Region只会存在一台RegionServer上,一台RegionServer上可以包罗多个Region。

  一个逻辑的表包罗多个Region,分布在各个RegionServer上,对应用程序来说只有一个大表不消管分表分库。

Region的定位

  -ROOT-

  .META

存储分布

  每一行包罗N个列,以列的情势分布在差别Region内里。

  3、HBase各对象职责

Client

  HBase的访问接口,维护cache加快HBase的访问。

Zookeeper

关于黑龙江电力时间同步服务器的信息 关于黑龙江电力时间同步服务器的信息「黑龙江电力系统」 行业资讯

  监控Master,包管只有一个Master;

  存储Region的入口地点;

  监控RegionServer上下线,并告知Master;

  存储Hbaseshcema和Table的元数据。

Master

  分配Region到RegionServer;

  RegionSever的负载均衡;

  发现失效的RegionServer并重新分配其上的Region

  管理用户对Table的增编削查操纵。

RegionServer

  维护Region,处理惩罚对这些Region的IO;

  SplitCompact。

  4、应用方式

  HBase是三维有序存储的,通过RowKey(行键),columnkey(columnfamily和qualifier)和TimeStamp(时间戳)这个三个维度可以对HBase中的数据举行快速定位。

  RowKey是HBase表布局计划中很紧张的一环,HBase中RowKey可以唯一标识一行记录,在HBase查询的时间,有以下2种方式:

按指定RowKey获取唯逐一条记录,get方法

  (org.apache.hadoop.hbase.client.Get)

按指定的条件获取一批记录,scan方法

  (org.apache.hadoop.hbase.client.Scan)

  第一种雷同key-value查找,第二种可以实现简单的条件查询功能。

  QA

  Q1:HBase是不是没有传统表的概念了。感觉都像是键值存储。

  A1:假如存储角度看是涵盖了的,但是去掉了关系。

  Q2:HBase与MongoDB的利用场景的区别老师可否简单先容一下?

  A2:HBase得当做数据分析,MongoDB在线服务性能很好,尤其是读,HBase要连合MapReduce,尚有就是MongoDB得当Web服务,比方PHP。

  直播链接

  回听直播请戳:

  https://m.qlchat.com/topic/240000397746115.htm

  暗码:222

好书相送

  在本文微信订阅号(dbaplus)批评区留下足以引起共鸣的真知灼见,并在本文发布后32小时之内成为点赞数最多的一名,可得到以下册本一本~

  

  特别鸣谢清华大学出书社提供图书赞助。

  精选专题(官网:dbaplus.cn)

  ◆MVP专栏◆

  杨志洪丨杨建荣丨邹德裕丨韩锋丨欧阳辰

  网易丨腾讯云丨百度丨朱祥磊丨卢钧轶

  ◆近期活动◆

  云数据库架构计划与实践沙龙火热报名中

你可能想看:

客户评论

我要评论