统计表的行数的代码实现,还蛮实用的,适合你用HBase做数据的时候。就是用个Scan操作,把全表遍历一遍,行数一目了然。关键代码直白,直接调用getScannerscanner.next()遍历一圈,性能上问题不大,毕竟不是高频操作。

HBase 的操作里,像这种全表扫描统计行数的写法,挺常见的:

public static void countRows(String tableName) throws IOException {
  init();
  Table table = connection.getTable(TableName.valueOf(tableName));
  Scan scan = new Scan();
  ResultScanner scanner = table.getScanner(scan);
  int num = 0;
  for (Result result = scanner.next(); result != null; result = scanner.next()) {
    num++;
  }
  System.out.println("行数:" + num);
  scanner.close();
}

顺带一提,文章里还贴了学生表、课程表的数据结构转换案例,挺适合新手练手,把关系型表结构转成 HBase 的列族形式,典型。

如果你正好在做扫码相关功能,也可以顺路看看它推荐的 Android Studio 扫码功能实现,跟 HBase 结合开发场景还挺多的,尤其做物联网或者数据采集类项目。

嗯,要注意一点,全表扫描这种操作别放在线上频繁跑,量大了容易拖垮 RegionServer,建议测试环境里玩一玩就好。