hbase与传统关系数据库区别

hbase适合于非结构化数据存储的数据库。介于Map Entry 和 DB row之间的一种数据存储方式。

1. 数据类型: HBase只有简单的字符串类型,它只保存字符串所有的类型都是交给用户自己处理。关系型数据库可以选择类型

2. 数据操作: HBase操作只有很简单的插入、查询等操作,表与表之间是分离的,没有join

3. 存储模式: HBase基于列存储,每个列族由几个文件保存,不同列族的文件是分离的。传统的关系数据库是基于表格结构和行模式保存的

4. 数据维护: HBase更新操作时,旧的版本仍然保留,实际上时插入了新数据。传统关系数据库是替换修改

5. 可伸缩性: HBase能够容易的增加或者减少硬件数量

Hbase模式设计

eg:学生选择表结构在RDBMS中如下:

学生表(student):

s_no s_name s_sex s_age
学号 姓名 性别 年龄

课程表(course):

c_no c_name c_credit
课程号 课程名 学分

选课表:

sc_sno sc_cno sc_score
学号 课程号 成绩

Hbase中:

student:

row key column family column family
info value course value
s_no

info:s_name

info:s_sex

info:s_age

name

sex

age

course:c_no1

course:c_no2

course:c_no3

sc_score1

sc_score2

sc_score3

course:

row key column family column family
info value student value
c_no

info:c_name

info:c_credit

name

sex

student:s_no1

student:s_no2

sc_score1

sc_score2

工作原理

1)HBase Client端连接ZooKeeper

2)通过ZooKeeper组件client获取哪个server管理-root-Region

3) client访问管理-root-的server

4)由-root-获取管理.meta.的regionserver

5) .meta.中记录了HBase中所有表信息,根据.meta.获取Region分布信息(获取后client将缓存这个信息),访问HRegionServer

(由于client会缓存region信息,因而访问次数多了之后即使不访问.meta.,也能知道访问哪个HRegionServer)

-root-,.meta. table 关系如下:

Hbase与RDBMS的更多相关文章

  1. Apache Drill - join HBase and RDBMs

    HBase作为Nosql的常用系统之一,在很多大数据应用/平台中广泛使用.例如通过Spark统计后将结果存放到HBase中.通常统计结果还需要进一步和元数据或者字典表关联从而得到最终结果显示,这意味着 ...

  2. HBase与RDBMS的区别

    此讨论并不局限于HBase,也会延伸到MongoDB和Cassandra这样的NoSQL数据库. 1.RDBMS RDBMS有以下特点: 面向视图:RDBMS表使用固定的视图,表中的数据类型也会事先定 ...

  3. 【HBase】三、HBase和RDBMS的比较

      HBase作为一种NoSQL的数据库,和传统的类似于mysql这样的关系型数据库是有很大区别的,本文来对他们做一个对比分析,以便更加深入的了解HBase.   主要区别体现在以下六个方面:   1 ...

  4. 十、Hadoop学习笔记————Hive与Hbase以及RDBMS(关系型数据库)的关系

    Hive目的是为了简化MapReduce编程 实际应用中,Hive与Hbase不经常链接

  5. Hbase和RDBMS(关系数据库管理系统)区别

    hbase是一个基于列模式的映射数据库,键--->数据 的映射,大大简化了传统数据   数据类型:hbase的存储的数据都是字符串,所有的类型都有用户自己处理,他只保存字符串;传统的数据有丰富的 ...

  6. Hadoop学习之HBase

    1. HBase有哪些基本的特征? 2. HBase相对于关系数据库能解决的问题是什么? 3. HBase的数据模型是什么?如何表述?有哪些操作形式? 4. HBase的模式Schema设计的一些概念 ...

  7. HBase基本概念与基本使用

    1. HBase简介 1.1 什么是HBase HBASE是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群. HBASE ...

  8. Hbase记录-Hbase基础概念

    HBase是什么? HBase是建立在Hadoop文件系统之上的分布式面向列的数据库.它是一个开源项目,是横向扩展的. HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数 ...

  9. HBase教程

    https://www.yiibai.com/hbase/ 自1970年以来,关系数据库用于数据存储和维护有关问题的解决方案.大数据的出现后,好多公司实现处理大数据并从中受益,并开始选择像 Hadoo ...

随机推荐

  1. memcache实现公共计数器网站

    在反问题的过程中遇到的最近项目.网上查了很多资料并没有完全实现. 因此,要找到适合自己的xmemcache client和memcache关联API和说明,我们发现了一个比较完美的实现. 键类:net ...

  2. S2SH框架集成详解(Struts 2.3.16 + Spring 3.2.6 + Hibernate 3.6.10)

    近期集成了一次较新版本的s2sh,出现了不少问题,网上资料也是良莠不齐,有的甚至就是扯淡,简单的把jar包扔进去就以为是集成成功了,在这里整理一下详细的步骤,若哪位有什么不同看法,可以留言,欢迎批评改 ...

  3. [转] JavaScript中的字符串操作

    一.概述    字符串在JavaScript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更 多....JavaScript的核心部分提供 ...

  4. C++之智能指针

    导读 一直对智能指针有一种神秘的赶脚,虽然平时没怎么用上智能指针,也就看过STL中的其中一种智能指针auto_ptr,但是一直好奇智能指针的设计因此,今天看了一下<C++ Primer Plus ...

  5. meta标签的含义

    <meta http-equiv="imagetoolbar" content="false" /> 定是否显示图片工具栏,当为false代表不显示 ...

  6. js中的同步与异步

    同步:提交后等待服务器的响应,接收服务器返回的数据后再执行下面的代码    异步:与上面相反,提交后继续执行下面的代码,而在后台继续监听,服务器响应后有程序做相应处理,异步的操作好处是不必等待服务器而 ...

  7. 通知(Notification)的使用

    新建一个 NotificationTest项目,并修改 activity_main.xml 中的代码,如下所示:<LinearLayout xmlns:android="http:// ...

  8. JavaScript--模拟验证码

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. 关于超链接自动提示的demo

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  10. oracle之分组内的字符串连接

    实现效果: 例如下面的数据[php] groupid        personid        name 1          a          超级管理员2          b       ...