HBase数据库相关知识补充

一、HBase中的<K,V>

在HBase中我们可以把<行键,列.列族1,列.列族2列.列族3>看作是一个<K,V>类型,如下所示:

[“2015001”,“info1”,“email1”]www.da.com
[“2015002”,“info2”,“email2”]www.sad.com

二、概念视图

HBase中的概念视图,一个表可以视为一个稀疏、多维的映射关系。如下所示,HBase表是一个稀疏的映射关系,里面存在很多的空的单元格。
在这里插入图片描述

三、面向列的存储

  • 行式数据库使用NSM(N-ary Strorage Model)存储模型,如果每一行只有少量的数据,会浪费很多磁盘空间和内存带宽。
  • 列式数据库使用DSM(Decomposition Storage Model)存储模型,缺点是执行连接操作消耗很大的元组重构代价,因为一个元组的不同属性分散到了不同的磁盘页中,当需要一个完整的元组时,就要从多个磁盘页中读取相应的字段组合起来得到一个元组。

四、NOSQL数据的产生

  • 海量数据的查询效率问题:NOSQL远远快于传统的关系型数据库
  • 高并发效率NOSQL更优秀
  • NOSQL数据库可以通过横向扩展迅速提高读写速率,应对突发的瞬间IO读写提升
  • 不要求严格的事务处理,如果一个微博用户填写了错误的信息,只需要删除原来的数据即可,不需要向传统的数据库一样进行回滚操作
  • 需要求严格的实时性,比如微博增加几个粉丝,可以过几分钟更新数据。以前web1.0时代,到银行存钱希望存储以后马上可以显示出来
  • 不需要大量的jion操作,用一个单表查询就行

五、CAP:C、A、P只能取其二

C(consistency):一致性。它是指任何一个读操作总是能够读到之前完成的写操作的结果,也就是在分布中,不同服务器中的数据一致。
A(Availability):可用性。他是指快速获取数据,可以确定的时间内返回操作结果。
P(Tolerance of Network Partition):分区容忍性。它是指当网络中出现分区的情况时(A服务器无法与其他服务器通信),分离的系统也能正常的进行。在这里插入图片描述
(1)CA(放弃分区容忍性):最简单的做法就是把所有的事务关系的内容都放在同一个机器上。传统的DBMS就是这样做的。
(2)CP(放弃可用性):当网络出现分区时,收到数据一致性影响,等待期间无法对外提供服务,Neo4J、BigTable、HBase等Nosql都采用了CP设计原则。
(3)AP(放弃一致性):用户发布数据能够及时被看到不重要,重要的是能够立刻被发出去。网站一般都是朝着AP的方向发展。Dynamo,Riak等数据库采用AP原则。

六、NoSQL到NewSQL

支持事务的可扩展数据库,spanner作为代表,实现全球一致性,有一个基于GPS和原子钟实现的时间API。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值