有時候我們需要統(tǒng)計HBase表的行數(shù),一般要么是寫MR程序俏站,要么是寫SQL。以下就是可用的幾種方式:
COUNT
HBase Shell
自帶的統(tǒng)計函數(shù)命令
hbase> count 't1'
hbase> count 't1',INTERVAL => 100000
hbase> count 't1', CACHE => 1000
hbase> count 't1', INTERVAL => 10, CACHE => 1000
注意:其中,INTERVAL
為統(tǒng)計的行數(shù)間隔欧宜,默認為1000辽俗,CACHE
為統(tǒng)計的數(shù)據(jù)緩存疾渣。這種方式效率很低,如果表行數(shù)很大的話不建議采用這種方式崖飘。
調(diào)用MR
hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'tablename'
解釋:這種方式效率比上一種要高很多榴捡,調(diào)用的hbase jar中自帶的統(tǒng)計行數(shù)的類。
Hive ON HBase
創(chuàng)建Hive
與HBase
的關(guān)聯(lián)表朱浴,將HBase
當(dāng)作Hive
的外部表吊圾。
-
HBase已有表與Phoenix做映射
只需在phoenix
中添加同名表即可映射到hbase
的同名表
create table "demo"(
"ROW" varchar primary key,
"info"."name" varchar,
"info"."address" varchar
);
然后再:
select count(*) from "demo";