HBase篇(2)-数据模型与操作
HBase其实就是一个数据库,无非就是存储和增删改查,那我们先从数据模型说起把
这里有一张表,是用关系型数据库的思维画出来的表,这样比较易于理解:

概念
Table(表格)
没啥说的,和关系型数据库一样,由多行组成
Row(行)
包含一个key和一个或者多个列。行按照RowKey字典序存储在表格中。
Column Family(列族)
可以理解为一组列的集合,HBase官方建议尽量的减少ColumnFamily的数量。
Column Qualifier(列)
一个 Column Family 下面有多个Column Qualifier,
Timestamp(时间戳)
时间戳是写在值旁边的一个用于区分值的版本的数据。可以开发者自己指定,默认情况下,时间戳表示的是当数据写入时RegionSever的时间点。
Cell(单元)
单元是由行、列族、列、值和代表值版本的时间戳组成的。举个例子:
A column=CF1:C1_1, timestamp=T1, value=nice
实际模型
上面表的其中一行,在hbase shell 中显示实际是这样的。
hbase(main):006:0> scan 'table_name'
ROW COLUMN+CELL
A column=CF1:C1_1, timestamp=T1, value=nice
A column=CF1:C1_2, timestamp=T1, value=handsome
A column=CF1:C2_1, timestamp=T1, value=china
A column=CF1:C2_2, timestamp=T1, value=guangdong
可见
- 稀疏列存储:如果RowKey=B;Column=C1_1 这一格是空的,不会造成存储空间碎片,只会少存一行
B column=CF1:C1_1, timestamp=T1, value=nice
- 添加列方便:只需指定列名列族名,column=CF1:C1_1
- rowkey字典序排列
- 每个value都有一个时间戳
操作汇总
注意后方高能,是一些常用的命令,看完可以收藏一波。
增删改查
创建表
create '表名称', '列族名称1','列族名称2','列族名称N'
添加记录/更新记录
put '表名称', '行名称', '列名称:', '值'
查看记录
get '表名称', '行名称'
查看表中的记录总数
count '表名称'
删除记录
delete '表名' ,'行名称' , '列名称'
删除一张表
先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步 drop '表名称'
查看所有记录
scan "表名称"
查看某个表某个列中所有数据
scan "表名称" , {COLUMNS=>'列族名称:列名称'}
过滤器
RowFilter
通过rowkey过滤,匹配出rowkey中含uncle的数据。
> scan 'table_name', FILTER=>"RowFilter(=,'substring:uncle')"
通过rowkey过滤,匹配出rowkey等于uncle666的数据。
> scan 'table_name', FILTER=>"RowFilter(=,'binary:uncle666')"
通过rowkey过滤,匹配出rowkey小于等于uncle666的数据。
> scan 'table_name', FILTER=>"RowFilter(<=,'binary:uncle666')"
匹配从rowkey为uncle666开始读50行
> scan 'table_name',{COLUMNS=>['cf:column'],LIMIT => 50,STARTROW=>'uncle666'}
匹配时间范围
> scan 'table_name',{COLUMNS=>['cf:column'],LIMIT => 50,TIMERANGE=>'1533530400000,1535930400000'}
PrefixFilter
通过rowkey前缀过滤,匹配出rowkey前缀为666的数据。
> scan 'table_name', FILTER=>"PrefixFilter('666')"
ValueFilter
通过value过滤,匹配出value含uncle的数据。
> scan 'table_name', FILTER=>"ValueFilter(=,'substring:uncle')"
FamilyFilter
通过列簇过滤,匹配出列簇含f的数据。
> scan 'table_name', FILTER=>"FamilyFilter(=,'substring:f')"

HBase篇(2)-数据模型与操作的更多相关文章
- 从零自学Hadoop(20):HBase数据模型相关操作上
阅读目录 序 介绍 命名空间 表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
- 从零自学Hadoop(21):HBase数据模型相关操作下
阅读目录 序 变量 数据模型操作 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
- HBase篇(1)-特性与应用场景
[每日五分钟搞定大数据]系列,HBase第一篇 结束了Zookeeper篇, 接下来我们来说下Google三驾马车之一BigTable的开源实现:HBase,要讲的内容暂定如下: 这是第一篇我们先不聊 ...
- HBase介绍 (1)---数据模型
http://blog.csdn.net/heyutao007/article/details/5766896 BigTable是什么?Google的Paper对其作了充分的说明.字面上看就是一张大表 ...
- Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...
- Hbase深入学习(六) Java操作HBase
Hbase深入学习(六) ―― Java操作HBase 本文讲述如何用hbase shell命令和hbase java api对hbase服务器进行操作. 先看以下读取一行记录hbase是如何进行工作 ...
- Oracle知识梳理(三)操作篇:SQL基础操作汇总
Oracle知识梳理(三)操作篇:SQL基础操作汇总 一.表操作 1.表的创建(CREATE TABLE): 基本语句格式: CREATE TABLE table_name ( col_ ...
- Hbase到Solr同步常用操作
Hbase到Solr同步常用操作 1. 整体流程 2. 常用操作 Hbase常用操作 Solr常用操作 hbase-index常用操作 3. 其他资料 Lily HBase Indexer使用整理 h ...
- 小白两篇博客熟练操作MySQL 之 第一篇
小白两篇博客熟悉操作MySQL 之 第一篇 一.概述 1. 什么是数据库? 答: 储存数据的仓库, 如: 在ATM的事例中创建的一个db 目录, 称为数据库 2. 什么是Mysql, Oracl ...
随机推荐
- 卸载(uninstalled)Mac os Jenkins pkg 安装包
有些小伙伴不熟悉Jenkins, 在mac上安装,会选择pkg 安装包, 安装后又想卸载,苦于卸载不干净,今天给到一个命令即可搞定. 对应qq群号:616961231打开终端输入下面命令'/Libra ...
- mysql之外键
本文内容: 什么是外键 外键的增加 外键的修改和删除 外键的约束模式 首发日期:2018-04-12 什么是外键: 外键就是表中存在一个字段指向另外一个表的主键,那么这个字段就可以称为外键. 一张表可 ...
- 第二篇 Html(13章节)-a标签,img标签,列表,表格
1. a标签 - 超链接,可以跳转 - 锚 href='#某个标签的ID' 标签的ID不允许重复 <!DOCTYPE html> <html lang="en&qu ...
- SAP生产机该不该开放Debuger权限
前段时间公司定制系统在调用SAP RFC接口的时候报错了,看错误消息一时半会儿也不知道是哪里参数数据错误,就想着进到SAP系统里面对这个接口做远程Debuger,跟踪一下参数变量的变化,结果发现根本就 ...
- Linux 网卡聚合
Linux 网卡聚合的类型: 1.broadcast:传输来自所有端口的每个包 2.roundrobin:以轮播方式传输来自每个端口的包 3.activebackup:故障转移运行程序,监视更改并选择 ...
- python库安装方法及下载依赖库
python库的安装方法 直接使用pip pip install xxx python第三方下载,可以在地址栏上输入所需库的名字,进行快速查找 源码安装 python setup.py install ...
- This network connection does not exist
This network connection does not exist 在windows server 2008上面map了一个磁盘,共享的folder被我停止共享后,点击该磁盘的disconn ...
- Windows10家庭版连接远程桌面出现credssp加密oracle修正问题
我发现我的win10不能连接别人的远程桌面,问题如下: 1.windows10家庭版需要修改注册表,家庭版没有组织策略: 2.win+R打开快速启动命令行输入"regedit": ...
- Win10家庭版-添加[组策略]
win10家庭版有很多功能都不能用,这一次就碰到了一个找不到‘组策略’的问题,在网上搜索到了一个方法,记录一下: 新建一个txt,将下面内容复制到文本中: =====分隔符====== @echo o ...
- JAVA之Math类常用数学运算记录
Math中定义了许多的方法,且这些方法均为static类型,通过Math类就能直接调用. 调用形式:Math.方法名 例如,我要进行e运算,那么我直接调用Math.exp(double 类型 数值); ...
