HBase与RDBMS的区别
此讨论并不局限于HBase,也会延伸到MongoDB和Cassandra这样的NoSQL数据库。
1、RDBMS
RDBMS有以下特点:
面向视图:RDBMS表使用固定的视图,表中的数据类型也会事先定义。表的视图在创建时就已经定义,并且不容易修改。向视图中添加元素的操作会以新建表的形式实现,这一操作会在原始表和新建表中建立一对一关系。这也限制了RDBMS的使用场景,RDBMS适合高度结构化的用例场景,比如金融数据存储。
标准化数据:RDBMS通常存储着高度标准化的数据,但是数据仓库中可能存在非标准化的数据。数据仓库通常针对的是报表型用例,而标准化数据存储则是针对事务型用例。
薄表:RDBMS表中通常不会包含太多列,并且最大只支持几百个列。这导致RDBMS通常会使用多个表,并且会在这些表间建立各种关系,比如一对一、一对多、多对多。
2、HBase(NoSQL数据库)
HBase有以下特点:
弱视图:HBase是一种高效的映射嵌套。用户可以在运行时定义列,每一行都有属于自己的列。HBase将解释数据值的任务交给应用程序。
HBase里的概念视图
HBase里的物理视图
因此,HBase非常适合数据结构灵活的应用。比如,一个专利应用的场景,数据结构必须是灵活的;为了提高性能,需要在一次查询中检索出所有文档。同时每个文档都包含多个页面,每个页面都有自己的ID。与数据库不同,在数据库中需要使用额外的元数据表来描述页面ID,HBase中的列键是自描述的。当文档中的页面数量庞大时,列可以根据页面的数据进行调整。而不包含这么多页面的文档则可以将不需要的列设置为空值。
非标准化数据:从HBase表中检索出的行是用例视角的信息全集,这能极大减少服务器的执行周期并支持大量的并发请求。
HBase与RDBMS的区别的更多相关文章
- Hbase与RDBMS
hbase与传统关系数据库区别 hbase适合于非结构化数据存储的数据库.介于Map Entry 和 DB row之间的一种数据存储方式. 1. 数据类型: HBase只有简单的字符串类型,它只保存字 ...
- hive与hbase的联系与区别
hive与hbase的联系与区别: 共同点: 1.hbase与hive都是架构在hadoop之上的.都是用hadoop作为底层存储. 他们的底层是要通过mapreduce分布式计算的,hbase.hi ...
- [转帖]hive与hbase的联系与区别:
https://www.cnblogs.com/xubiao/p/5571176.html 原作者写的很好.. 这里面简单学习总结一下.. 都是bigdata的工具, 都是基于google的bigta ...
- Hbase和RDBMS(关系数据库管理系统)区别
hbase是一个基于列模式的映射数据库,键--->数据 的映射,大大简化了传统数据 数据类型:hbase的存储的数据都是字符串,所有的类型都有用户自己处理,他只保存字符串;传统的数据有丰富的 ...
- [转载] Hive与HBase的联系与区别
转载自http://blog.csdn.net/wangmuming/article/details/23954527和http://www.cnblogs.com/justinzhang/p/427 ...
- Apache Drill - join HBase and RDBMs
HBase作为Nosql的常用系统之一,在很多大数据应用/平台中广泛使用.例如通过Spark统计后将结果存放到HBase中.通常统计结果还需要进一步和元数据或者字典表关联从而得到最终结果显示,这意味着 ...
- 面试:Hbase和Hive的区别
区别: 1. Hive是一个构建在Hadoop基础设施之上的数据仓库,通过HQL查询存放在HDFS上的数据,不能交互查询.HBase是一种Key/Value系统,它运行在HDFS之上,可以交互查询. ...
- 【HBase】三、HBase和RDBMS的比较
HBase作为一种NoSQL的数据库,和传统的类似于mysql这样的关系型数据库是有很大区别的,本文来对他们做一个对比分析,以便更加深入的了解HBase. 主要区别体现在以下六个方面: 1 ...
- hive、Hbase、mysql的区别
1.Hive和HBase的区别 1)hive是sql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce. 2)hive是面向行存储的数据库. 3)Hive本身 ...
随机推荐
- PAT (Advanced Level) Practice(更新中)
Source: PAT (Advanced Level) Practice Reference: [1]胡凡,曾磊.算法笔记[M].机械工业出版社.2016.7 Outline: 基础数据结构: 线性 ...
- Xpath语法与lxml库
1. Xpath 1 )什么是XPath? xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历. 2) X ...
- 3.git高级篇总结
阅读 Git 原理详解及实用指南 记录 高级 1:不喜欢merge的分叉,用rebase吧 介绍的是 rebase 指令,它可以改变 commit 序列的基础点.它的使用方式很简单: git reba ...
- 19.理解slop
主要知识点: slop的含义(内在原理) slop的用法 一.slop的含义是什么? query string(搜索文本)中的几个term,要经过几次移动才能与一个document匹配 ...
- Flask - app的配置和实例化Flask的参数
目录 Flask - app的配置和实例化Flask的参数 app的配置 app的配置 Flask - app的配置和实例化Flask的参数 app的配置 基本用法: from flask impor ...
- BZOJ 1614 USACO 07Jan. 洛谷1948 电话线
二分+特殊姿势的check:二分最小代价P,把边权小于等于P的边设为0,其他的设为1,跑一遍最短路,判断dis[n]是否大于K #include<cstdio> #include<a ...
- 2、ceph-deploy之配置使用RBD
说明 部署完ceph集群(active+clean状态)之后, 我们来实践下ceph block device(即RBD或RADOS block device). 我们需要在一台新的client节点上 ...
- Struts2 Action重启偶尔404 偶尔正常
这是一个痛苦的教训 因想懒省事,复制module.action 到product.action 跟user.action 然后修改代码内容 ,最痛苦的是 还用查找替换功能进行全部文字替换 , ...
- ACDream - Chasing Girl
先上题目: Chasing Girl Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- PHP array_intersect_key()
定义和用法 array_intersect_key() 函数使用键名比较计算数组的交集. array_intersect_key() 返回一个数组,该数组包含了所有出现在被比较的数组中并同时出现在所有 ...