NoSQL数据库——Hbase
NoSQL数据库——Hbase
1、什么叫做NoSQL数据库?
NoSQL
是非关系型数据库的统称,它采用类似键/值、列族、文档等非关系模型。
2、已经有了使用这莫方便的MySQL
等关系型数据库,为什莫还需要NoSQL
数据库?
NoSQL
数据库的产生是为了解决传统关系型数据库应对大数据的应用难题,包括大规模数据集存储、多重数据种类等方面的挑战。
常见的NoSQL数据库种类:
- 列族数据库:Hbase
- 文档数据库:mongoDB
- 键值数据库:Redis
- 图数据库:Neo4j
这里用Hbase
做个简单的了解:
- 传统关系型数据库无法应对在数据量剧增的时候导致系统扩展性和性能分析(分表分库也不能很好解决)。
- 比如MySQL数据库在怎莫分库分表引擎也就一个,数据的处理速度会变慢。但是对于比如Hbase这样的NoSQL数据库,他的底层是HDFS以及MapReduce,所以可以扩展计算以及存储节点会更快。
- 传统关系型数据库在数据结构变化是时候一般需要停机维护;并且空列会浪费存储空间。
- 关系型数据库在你更新某个用户信息的时候采用覆盖,而Hbase是生成新的记录。
谷歌和Facebook每天为他们的用户收集万亿比特的数据,这些数据存储并非固定模式。
3、Hbase列族数据库
Hbase
是一个高可靠、高性能、可伸缩的分布式数据库。主要用来存储非结构化以及半结构化的松散数据。
Hbase
的目标是处理非常庞大的表,可以同过水平扩展的方式,利用廉价的计算机集群处理超过10亿行数据和数百万列元素组成的数据表。
Hbase
是一个构建在HDFS上的分布式列存储系统。
补充:
半结构化数据是结构化数据的一种形式,它并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。半结构化数据,属于同一类实体可以有不同的属性,即使他们被组合在一起,这些属性的顺序并不重要。常见的半结构数据有XML和JSON非结构化数据:顾名思义,就是没有固定结构的数据。各种文档、图片、视频/音频等都属于非结构化数据。对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。
4、Hbase的特点:
- 大:一个表可以有数十亿行,上百万列
- 面向列:面向列(族)的存储以及权限控制,列(族)独立检索
- 多版本:每个单元的数据中可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳。
- 无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表格中不同的行可以有截然不同的列。
- 稀疏:空[Null]列并不占用存储空间,表可以设计的非常稀疏
- 类型单一:数据都是字符串,没有类型
5、Hbase数据坐标:
6、Hbase概念视图
7、Hbase物理视图
8、Hbase shell基本操作
1.进入HBase客户端命令行
[@hadoop102 hbase]$ bin/hbase shell
2.查看帮助命令
hbase(main):001:0> help
3.查看当前数据库中有哪些表
hbase(main):002:0> list
4.表的操作
4.1. 创建表
hbase(main):002:0> create 'student','info'
4.2.插入数据到表
hbase(main):003:0> put 'student','1001','info:sex','male'hbase(main):004:0> put 'student','1001','info:age','18'hbase(main):005:0> put 'student','1002','info:name','Janna'hbase(main):006:0> put 'student','1002','info:sex','female'hbase(main):007:0> put 'student','1002','info:age','20'
4.3.扫描查看表数据
hbase(main):008:0> scan 'student'
查询前几条数据
scan 'student',{LIMIT=>5}hbase(main):009:0> scan 'student',{STARTROW => '1001', STOPROW => '1001'}hbase(main):010:0> scan 'student',{STARTROW => '1001'}
4.4.查看表结构
hbase(main):011:0> describe 'student'
hbase(main):011:0> desc 'student'
4.5.更新指定字段的数据
hbase(main):012:0> put 'student','1001','info:name','Nick'
hbase(main):013:0> put 'student','1001','info:age','100'
4.6.查看“指定行”或“指定列族:列”的数据
hbase(main):014:0> get 'student','1001'
hbase(main):015:0> get 'student','1001','info:name'
4.7.统计表数据行数
hbase(main):021:0> count 'student'
4.8.删除数据
删除某rowkey的全部数据:
hbase(main):016:0> deleteall 'student','1001'
删除某rowkey的某一列数据:
hbase(main):017:0> delete 'student','1002','info:sex'
4.9.清空表数据
hbase(main):018:0> truncate 'student'
提示:清空表的操作顺序为先disable,然后再truncate。
4.10.删除表
首先需要先让该表为disable状态:
hbase(main):019:0> disable 'student'
然后才能drop这个表:
hbase(main):020:0> drop 'student'
提示:如果直接drop表,会报错:ERROR: Table student is enabled. Disable it first.
4.11.变更表信息
将info列族中的数据存放3个版本:
hbase(main):022:0> alter 'student',{NAME=>'info',VERSIONS=>3}
hbase(main):022:0> get 'student','1001',{COLUMN=>'info:name',VERSIONS=>3}
总结:这篇博客只是方便给初学一个认知,并没有涉及底层原理知识!
NoSQL数据库——Hbase相关推荐
- 大数据-NoSQL数据库-HBase操作框架:Phoenix【Java写的基于JDBC API的操作HBase数据库的SQL引擎框架;低延迟、事务性、可使用sql语句、提供JDBC接口】
一.Phoenix概述 1.Phoenix 定义 Phoenix 最早是 saleforce 的一个开源项目,后来成为 Apache 的顶级项目. Phoenix 构建在 HBase 之上的开源 SQ ...
- NoSql数据库总览
几种常用的NoSql数据库 文本主要总结市面上比较常见的几种NoSql数据库,分析其优劣: HBase Redis MongoDB CouchBase LevelDB HBase Hbase是 ...
- 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶
一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...
- 阿里云HBase全新发布X-Pack NoSQL数据库再上新台阶 1
一.八年双十一,造就国内最大最专业HBase技术团队 阿里巴巴集团早在2010开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储.持续8年的投入,历经8年双十一锻 ...
- HBase、Redis、MongoDB、Couchbase、LevelDB 五款主流NoSQL数据库大比拼
在 HBase.Redis.MongoDB.Couchbase.LevelDB 五款较主流的数据库产品中,本文将主要对它们进行分析对比. 鉴于缺乏项目中的实战经验沉淀,本文内容和观点主要还是从各平台资 ...
- 图解Nosql(hbase)与传统数据库的区别
图解Nosql(hbase)与传统数据库的区别 http://www.aboutyun.com/thread-7804-1-1.html (出处: about云开发) 问题导读: 1.nosql数据库 ...
- 使用HBase Client访问阿里云NoSQL数据库表格存储
Apache HBase Apache HBase是Hadoop database,属于Hadoop生态系统. 自从十四年前Google相继发布论文:<The Google File Syste ...
- HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比
最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...
- 大数据-NoSQL数据库:HBase【基于Zookeeper/HDFS的分布式、高并发、可扩展的NoSQL数据库;支持“十亿行”ד百万列”海量数据的实时随机读写;仅支持单表查询;不擅长数据分析】
HBase适合场景:单表超千万,上亿,且高并发! HBase不适合场景:主要需求是数据分析,比如做报表.数据量规模不大,对实时性要求高! HBase的查询工具有很多,如:Hive.Tez.Impala ...
- 分布式NoSQL列存储数据库Hbase(六)
文章目录 分布式NoSQL列存储数据库Hbase(六) 知识点01:回顾 知识点02:目标 知识点03:SQL on Hbase 知识点04:Hive on Hbase 介绍 知识点05:Hive o ...
最新文章
- 如何提高营销型网站与搜索引擎之间的信任度?
- java 矩阵求逆_java实现的顺时针/逆时针打印矩阵操作示例
- jsf服务_使用JSF的面向服务的UI
- oracle+trace参数设置,Oracle autotrace参数详解
- 计算机桌面设置定时,如何设置可以每月自动变化的日历桌面?
- gb2312编码表_汉字编码输入系统模型(一)
- 2021“鲜美生活”新趋势:中国食品行业白皮书
- char,nchar,varchar与nvarchar区别
- windows程序窗体创建流程模型A--利用基本数据类型
- ROS入门-9.订阅者Subscriber的编程实现
- Chrome即将封杀Google Earth、Google Talk等插件
- Jmeter中java接口测试
- Android IPC —— AIDL的原理
- Springboot学习-MD5盐值密码加密 DigestUtils 和 BCryptPasswordEncoder
- helm chart 快速入门
- 利用批处理添加受信任站点
- 使用Mapper代理开发解决硬编码问题
- 艺赛旗(RPA) 新手课堂 - 键盘与输入
- 申请高新技术企业认定需要多少专利?
- 新手怎么做副业?新手如何开启副业之路?