1. 기본 작동 명령
명령 | 의미 | 예 |
---|---|---|
상태 | 표시 상태 | 상태 'hadoop1' |
Whoami | HBase의 현재 사용자 표시 | Whoami |
명부 | 모든 현재 테이블 표시 | 명부 |
카운트 | 지정된 테이블의 레코드 수 계산 | '사용자'계산 |
설명 | 테이블 구조 정보 표시 | '사용자'설명 |
존재 | 테이블이 있는지 확인 | '사용자'존재 |
활성화 됨 / 비활성화 됨 | 테이블이 활성화 / 비활성화되었는지 확인 | is_enabled '사용자' |
바꾸다 | 테이블 또는 컬럼 패밀리의 모드 변경 | '사용자'변경, NAME => 'CF2', VERSIONS => 2 |
활성화, 비활성화 | 테이블 활성화 / 비활성화 | '사용자'비활성화 |
하락 | 표 삭제 | '사용자'삭제 |
자르다 | 테이블 비활성화 | '사용자'변환 |
-
HBase 셸을 엽니 다.
cd /export/servers/hbase-2.0.0 bin/hbase shell
-
테이블 생성, 데이터 추가
# 创建表 create 'user', 'info', 'data' # 向user表中插入信息,row key为rk0001,列族info中添加name列标示符,值为zhangsan put 'user', 'rk0001', 'info:name', 'zhangsan' # 向user表中插入信息,row key为rk0001,列族info中添加gender列标示符,值为female put 'user', 'rk0001', 'info:gender', 'female' # 向user表中插入信息,row key为rk0001,列族info中添加age列标示符,值为20 put 'user', 'rk0001', 'info:age', 20 # 向user表中插入信息,row key为rk0001,列族data中添加pic列标示符,值为picture put 'user', 'rk0001', 'data:pic', 'picture'
-
계산되는 데이터 행 수
count 'user'
2. 쿼리 작업
-
get으로 쿼리 (get rowkey)
# 获取user表中row key为rk0001的所有信息 get 'user', 'rk0001'
# 获取user表中row key为rk0001,info列族的信息 get 'user', 'rk0001', 'info'
# 获取user表中row key为rk0001,info列族的name、age列标示符的信息 get 'user', 'rk0001', 'info:name', 'info:age'
# 获取user表中row key为rk0001,info、data列族的信息, 两种写法 get 'user', 'rk0001', 'info', 'data' get 'user', 'rk0001', { COLUMN => ['info', 'data']}
#获取user表中row key为rk0001,cell的值为zhangsan的信息 get 'user', 'rk0001', { FILTER => "ValueFilter(=, 'binary:zhangsan')"}
# 获取user表中row key为rk0001,列标示符中含有a的信息 get 'user', 'rk0001', { FILTER => "(QualifierFilter(=,'substring:a'))"}
-
스캔 별 쿼리 (스캔 조건)
테이블의 모든 정보를 얻을 수 없으며 테이블의 모든 정보를 얻으려면 스캔을 통과해야합니다.
# 查询user表中的所有信息 scan 'user'
# 查询user表中列族为info的信息 scan 'user', { COLUMNS => 'info'}
# 查询user表中列族为info和data的信息 scan 'user', { COLUMNS => ['info', 'data']} # 查询user表中列族为info列为name和列族为data列为pic的信息 scan 'user', { COLUMNS => ['info:name', 'data:pic']}
# 查询user表中列族为info、列标示符为name的信息,并且版本最新的5个 scan 'user', { COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"} # 查询user表中列族为info,rk范围是[rk0001, rk0003)的数据 scan 'user', { COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'} # 查询user表中row key以rk字符开头的 scan 'user',{ FILTER=>"PrefixFilter('rk')"}
# 查询user表中指定范围的数据 scan 'user', { TIMERANGE => [1582873430274, 1582873430774]}
3. 업데이트 작업
-
데이터 업데이트 : 작업은 삽입과 동일합니다.
-
업데이트 된 버전
# 将user表的f1列族版本号改为5 alter 'user', NAME => 'info', VERSIONS => 5
4. 작업 삭제
-
삭제할 행 키 및 열 이름 지정
# 删除user表row key为rk0001,列标示符为info:name的数据 delete 'user', 'rk0001', 'info:name' scan 'user'
-
삭제할 행 키, 열 이름 및 필드 값 지정
# 删除user表row key为rk0001,列标示符为data:pic,timestamp为1392383705316的数据 delete 'user', 'rk0001', 'data:pic', 1582873430274
-
column family 삭제
alter 'user', NAME => 'info', METHOD => 'delete' 或 alter 'user', 'delete' => 'info'
-
테이블 데이터 지우기
truncate 'user' scan 'user'
-
표 삭제
# 首先需要先让该表为disable状态 disable 'user' # 删除表 drop 'user' list