hbase建表,删表,修改,查询(get,scan,布隆过滤器)
建表
直接建表:
create ‘表名’,‘列族名'如果之后想加入新的列族:
alter ‘表名’,‘列族名’補充:
alter ‘表名’,{NAME=‘列族名’,屬性1=>屬性值 1,屬性2=>屬性值2}, {NAME=>‘列族名2’ ,屬性 1=>屬性值1.....}如果是不存在的列族,就是添加,如果是已存在的列族,就是修改屬性.(eg:version,bloofilter,ttl…)
其中Alter 允許的列族級別屬性 BLOOMFILTER, COMPRESSION ,TTL, BLOCKSIZE, BLOCKCACH …
如果建表時想加入一些設置:
create ‘表名’,{NAME=>‘列族名’,VERSIONS=>‘’,BLOCKCACHE=>‘’, BLOOMFILTER=>‘’,COMPRESSION=>‘’,TTL=>‘’},{NAME=>’列族名’, 屬性=>屬性值........}bloomfilter是設置布隆過濾器(一般是none,可以設置為row,rowcol),compression是設置數據壓縮方式,TTL是設置數據過期時間
查看表的屬性:
刪除表:
Disable '表名‘ drop ‘表名‘刪除列族:
alter‘表名’,‘delete’=>’列族名’判斷表是否存在:
exists '表名‘為某列族的某列數據拼接后綴數據:
Append ‘表名’,‘行鍵’,‘列名’,‘拼接值’刪除某個列族的某個字段數據:
delete ‘表名’,‘行鍵’,‘列族:列’插入數據put使用
put只能每次插入一個行鍵對應的一個列族的一個列屬性的值,不能直接插入多條數據,區別mysql的一條語句查詢。
eg:
hbase中查看所有存在的表,使用list進行查詢
hbase所有屬性:columns,startrow,endrow,timerange,versions,fliter,limit
get
get是直接使用的行鍵進行查詢是索引查找,速度最快
無論是get還是scan都使用[ ]來查詢多個列族字段的數據或者查詢時間戳范圍數據,如columns=>[‘info:name’,‘info:sno’,‘grade:Database’],如果只是一個列族的單字段數據可以不使用[ ]
eg:
versions=>3表示取過去3個版本的數據,但是前提是需要先設置當前字段有三個版本
scan
scan是基于范圍查找,另外Scan命令若不指定顯示的版本數,則顯示擁有最大(最 新)時間戳的數據版本。
直接查看表中的前10行數據:
更廣用法:
eg:
如果想要顯示所有版本數據就必須加上versions
布隆過濾器
查找形式多樣,支持多種形式的查找
RowFilter
行鍵過濾器
查詢student表中rowkey中包含123的數據。
ValueFilter
值過濾器
查詢student表中值包含123的數據,因為hbase在存儲的時候是以key-value格式的列式存儲,在查詢遍歷的時候每行每列都會遍歷,所以才有這個過濾器.
除了可以查詢等于,也可以查詢大于、大于等于、小于、小于等于、不等于,比較的方式是字典排序。
除非在數據存儲的時候存儲的類型為數字類型。
substring:包含的意思、binary:精確查詢、regexstring:正則匹配、null:空值比較、long:數字比較
SingleColumnValueFilter
單列值過濾器
查詢student表中列簇為info.列名為server的所有數據。
注意:在使用單列值過濾器必須保證每行數據都有要查詢的列,因為查詢結果也會返回沒有要查詢的列的整行記錄。
PrefixFilter
行鍵前綴過濾器
查詢student表中行鍵以123開頭的所有數據
ColumnPrefixFilter
單列名前綴過濾器
查詢student表中以server開頭的列的所有數據
MultipleColumnPrefixFilter
多列名前綴過濾器
查詢student表中以server和regioninfo開頭的列的所有數據
PageFilter
分頁過濾器
分頁過濾器要和startRow搭配使用,和LIMIT功能類似。
過濾器搭配使用的時候分頁過濾器要放在最后。
但是如果是頁面開發使用java api操作,分頁過濾器有一個缺點就是必須一頁一頁翻頁,因為要傳遞startRow的值,和ES的深度分頁類似
InclusiveStopFilter
包含結尾過濾器
endRow在使用過程中查詢結果不包括endRow,可以搭配使用這個過濾器。
FamilyFilter
列簇過濾器
QualifierFilter
列名過濾器
SingleColumnValueExcludeFilter
單列值不包含過濾器,和單列值過濾器類似
總結
以上是生活随笔為你收集整理的hbase建表,删表,修改,查询(get,scan,布隆过滤器)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用matplotlib做动态排名图
- 下一篇: 侧输出流简单应用-打印的完整流程