Hbase统计表总行数的三种方式

     由于Hbase是列式数据库,没有提供类似SQL的数据查询语句,可以通过以下三种方式获取表的总行数。

1. 使用Hbase自带的Count命令

      hbase提供了count命令可以在hbase交互界面使用,获取总行数
      
hbase> count ‘test′  
hbase> count ‘t1′, INTERVAL => 100000  
      INTERVAL为统计的行数间隔,默认为1000。使用此种方式效率比较低,一般数据量在千万级别时,耗时6分钟以上,不建议使用。

2.使用hbase自动的mapreduce任务统计行数

    hbase自带有继承的统计表行数的mapreduce的Job---->org.apache.hadoop.hbase.mapreduce.RowCounter
  
   $HBASE_HOME/bin/hbase   org.apache.hadoop.hbase.mapreduce.RowCounter
  运行结果会在ROWS处体现
  这种方法会启用mapreduce任务去统计行数,在数据量比较大时,可以简单的使用此命令
  

3.使用hive创建外表关联Hbase表

  对于存在的hbase表,在hive中创建关联表,然后使用语句统计总行数
  select count(*) from Test;
CREATE EXTERNAL TABLE Test(
mRID string,
name string,
nominalVoltage FLOAT
)ROW FORMAT SERDE'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED BY'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key,pw:name,pw:nominalVoltage")
TBLPROPERTIES("hbase.table.name"= "test");


    以上三种方法可以使用统计总行数,但作为开发获取总行数时,就需要使用过滤器Filter或者协处理器Coprocessor进行编码实现,二者使用起来性能上还是有很大的差距,下一篇文章再详细的说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值