博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hbase基本用法
阅读量:5033 次
发布时间:2019-06-12

本文共 2940 字,大约阅读时间需要 9 分钟。

hbase 一些重要的解释(杂)

访问habse三种方式

访问hbase table中的行,只有三种方式:

1 通过单个row key访问

2 通过row key的range

3 全表扫描

Row key行键 (Row key)可以是任意字符串(最大长度是 64KB,实际应用中长度一般为 10-100bytes),在hbase内部,row key保存为字节数组。

Hbase会对表中的数据按照rowkey排序(字典顺序)

hbase的时间戳

时间戳的类型是 64位整型。时间戳可以由hbase(在数据写入时自动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。

hbase shell命令

进入hbase命令行

./hbase shell

显示hbase中的表

list

创建user表,包含info、data两个列族

create 'user', 'info', 'data'

 

put的用法(hbase添加数据)

例子1:

向user表中插入信息,row key为rk0001,列族info中添加name列标示符,值为zhangsan

put 'user', 'rk0001', 'info:name', 'zhangsan'

例子2:

向user表中插入信息,row key为rk0001,列族info中添加gender列标示符,值为female

put 'user', 'rk0001', 'info:gender', 'female'

info:后面的name 和gender称为 列名 。

get的用法(hbase中获取数据)

例子1

获取user表中row key为rk0001的所有信息

get 'user', 'rk0001'

例子2

获取user表中row key为rk0001,info列族的所有信息

get 'user', 'rk0001', 'info'

例子3

获取user表中row key为rk0001,info列族的name、age列标示符的信息

get 'user', 'rk0001', 'info:name', 'info:age'

例子4

获取user表中row key为rk0001,info、data列族的信息

get 'user', 'rk0001', 'info', 'data'

get 'user', 'rk0001', {COLUMN => ['info', 'data']}

获取user表中row key为rk0001,info列族的name列标示符和data列族的pic列标示符信息

get 'user', 'rk0001', {COLUMN => ['info:name', 'data:pic']}

例子5

获取user表中row key为rk0001,列族为info,版本号最新5个的信息

get 'user', 'rk0001', {COLUMN => 'info', VERSIONS => 5}

例子6

查询的是表名为testByCrq,过滤方式是通过rowkey过滤,匹配出rowkey含111的数据。

scan 'testByCrq', FILTER=>"RowFilter(=,'substring:111')"

例子7

获取user表中row key为rk0001,cell的值为zhangsan的信息

get 'people', 'rk0001', {FILTER => "ValueFilter(=,'binary: zhangsan')"}

例子8

查询的是表名为testByCrq,过滤方式是通过rowkey过滤,匹配出rowkey小于等于0111486816556的数据。

scan 'testByCrq', FILTER=>"RowFilter(<=,'binary:0111486816556')"

例子9

查询的是表名为testByCrq,过滤方式是通过value过滤,匹配出value含111的数据。

scan 'testByCrq', FILTER=>"ValueFilter(=,'substring:111')"

例子10

查询的是表名为testByCrq,过滤方式是通过列簇过滤,匹配出列簇含f的数据。 

scan 'testByCrq', FILTER=>"FamilyFilter(=,'substring:f')"

例子11

查询的是表名为testByCrq,过滤方式是通过前缀过滤过滤的是行键,匹配出前缀为00000的数据。

scan 'testByCrq', FILTER=>"PrefixFilter('00000')"

scan的用法(扫描数据)

例子1

scan 'user'

查询user表中的所有信息

例子2

查询user表中列族为info的信息

scan 'user', {COLUMNS => 'info'}

例子3

查询user表中列族为info、列标示符为name的信息,并且版本最新的5个

scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}

例子4

查询user表中列族为info和data且列标示符中含有a字符的信息

scan 'user', {COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}

例子5

查询user表中列族为info,rk范围是[rk0001, rk0003)的数据

scan 'people', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}

例子6

查询user表中row key以rk字符开头的

scan 'user',{FILTER=>"PrefixFilter('rk')"}

例子7

 

查询user表的  列族为INFO的前20条

scan 'user',{COLUMNS=>'info',LIMIT=>20}

delete的用法(删除数据)

删除user表row key为rk0001,列标示符为info:name的数据

delete 'people', 'rk0001', 'info:name'

删除user表row key为rk0001,列标示符为info:name,timestamp为1392383705316的数据

delete 'user', 'rk0001', 'info:name', 1392383705316

sniffer:person_tag_warehouse

scan 'sniffer:person_tag_warehouse', {COLUMNS => 'info'}

 

转载于:https://www.cnblogs.com/dongshanxia/p/10420391.html

你可能感兴趣的文章
[置顶] 细说Cookies
查看>>
[wp7软件]wp7~~新闻资讯,阅读软件下载大全! 集合贴~~~
查看>>
生成指定位数随机数的方法
查看>>
java的垃圾回收
查看>>
Essential C++学习笔记
查看>>
python+selenium进行简单验证码获取
查看>>
where,having与 group by连用的区别
查看>>
【MySQL】MySQL锁和隔离级别浅析二 之 INSERT
查看>>
Oracle T4-2 使用ILOM CLI升级Firmware
查看>>
4.14上午
查看>>
数据分析 -- 白话一下什么是决策树模型(转载)
查看>>
Java SPI机制原理和使用场景
查看>>
web前端java script学习2017.7.18
查看>>
删除TXPlatform
查看>>
LaTex:图片排版
查看>>
并发访问超时的问题可能性(引用)
查看>>
中小团队基于Docker的Devops实践
查看>>
利用python打开摄像头并保存
查看>>
System函数的使用说明
查看>>
Selenium-测试对象操作之:获取浏览器滚动条滚动距离
查看>>