前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

HBase学习-DML(hbase dynamodb)

qiguaw 2024-11-10 10:46:49 资源文章 20 ℃ 0 评论

启动各个服务

我们准备好namespace和表

输入put查看用法

put 'ns1:t1', 'r1', 'c1', 'value'

(1) r1表示rowkey (hbase中的检索都是需要rowkey的)

(2)c1表示列簇+列

(3)value表示插入的值

Rowkey 底层都是以string text文本类型

ts1表示时间戳可以自己指定,默认是插入数据的时间戳

插入数据

列名不一样

put 'nstest:t1','202001020944','f1:name','001'

put 'nstest:t1','202001020944','f1:age','19'

同一列放不同的数据

put 'nstest:t1','202001020944','f1:name','002'

新的行插入数据

put 'nstest:t1','202001020949','f1:name','001'

查询数据get命令(不支持全表扫描)

查询某个rowkey的数据

get 'nstest:t1', '202001020944'

可以指定某个列簇的数据

get 'nstest:t1', '202001020944' ,'f1'

可以指定某个列簇下某个列的数据

get 'nstest:t1', '202001020944' ,'f1:age'

再做个练习

create 'tt','info'

desc 'tt'

修改属性

alter 'tt',{NAME=>'info',VERSIONS=>'3'}

插入数据

put 'tt','10001','info:name','18'

put 'tt','10001','info:name','19'

put 'tt','10001','info:name','20'

put 'tt','10001','info:name','21'

put 'tt','10001','info:name','22'

查询数据

默认显示最新的

get 'tt','10001','info:name'

最新的三个版本

get 'tt','10001',{COLUMN =>'info:name',VERSIONS => 3}

根据时间戳来查

get 'tt','10001',{COLUMN=>'info',TIMERANGE=>[1577930376929,1577930379851],VERSIONS=>3}

scan方式:全表扫描

再插入三条数据

put 'tt','10001','info:name','23'

put 'tt','10002','info:name','19'

put 'tt','10003','info:name','20'


scan 'tt'

限制行数

STARTROW表示开始的行号,LIMIT是限制显示的行数

scan 'tt',{STARTROW => '10002'}

scan 'tt', {COLUMNS => ['info'], LIMIT => 1, STARTROW => '10002'}

scan 'tt', {COLUMNS => ['info'], LIMIT => 2, STARTROW => '10002'}

再放两条数据

put 'tt','10002','info:age','jack'

put 'tt','10003','info:age','tom'

scan 'tt', {COLUMNS => ['info'], LIMIT => 1, STARTROW => '10002'}

这样limit没有限制为1条

起始和终止

scan 'tt',{STARTROW => '10001',STOPROW => '10002'}

删除数据delete

删除某一列

只删除一个列簇是删除不掉的

delete 'tt','10002','info'

必须指定到哪个列

delete 'tt','10002','info:name'

基于时间:

(1)如果时间是最新的时间,就会把这个时间以前的数据都会删除

(2)如果时间是旧的时间,而且是最原始插入的第一条记录,就只删除第一条记录

(3)如果指定的时间,是大于前几条的数据时间,那么就会把小于这个时间的数据都删除

delete 'tt','10003','info:name',1577931666502

要删除某一个rowkey,就是删除全部数据,deleteall

修改数据

修改也是put,就是将新的数据put进去,重新put

把年龄改20

put 'tt','10002','info:age','20'

清空数据

truncate 'tab' 清除了数据,并且清除了分区(region预分区数)

truncate_preserve 'tab' 只清除数据,不清除预分区数

目前的表

我们看t1和t2

插入数据

put 'nstest:t1','101','f1:name','101'

put 'nstest:t1','102','f1:name','102'

put 'nstest:t1','111','f1:name','111'

put 'nstest:t1','112','f1:name','112'

put 'nstest:t1','121','f1:name','121'

put 'nstest:t1','122','f1:name','122'


put 'nstest:t2','101','f1:name','101'

put 'nstest:t2','102','f1:name','102'

put 'nstest:t2','201','f1:name','111'

put 'nstest:t2','202','f1:name','112'

put 'nstest:t2','301','f1:name','121'

put 'nstest:t2','302','f1:name','122'

我们可以看到是有变化的

情况数据

truncate 'nstest:t2'

分区数据被清空了

如果使用

truncate_preserve 't2'

分区数还在

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表