扫描(scan)
这种技术类似于数据库系统中的游标(cursor),并利用到了HBase提供的底层顺序存储的数据结构。
扫描操作的使用跟get方法非常类似。由于扫描操作的工作方式类似于迭代器,所以用户无需调用scan方法创建实例,只需要调用HTable的getScanner方法,此方法在返回真正的扫描器(scanner)实例的同事,用户也可以使用它迭代获取数据。
ResultScanner getScanner(Scan scan) throws IOException;
ResultScanner getScanner(byte[] family) throws IOException;
ResultScanner getScanner(byte[] family, byte[] qualifier) throws IOException;
后两个为了方便用户,隐式地帮用户创建一个scan实例,逻辑中最后调用getScanner(Scan scan)方法。
Scan类拥有以下构造器
public Scan()
public Scan(byte [] startRow, Filter filter)
public Scan(byte [] startRow)
public Scan(byte [] startRow, byte [] stopRow)
用户可以选择性的提供startRow参数,来定义扫描读取HBase表的起始行键,即行键不是必须指定的。同时可选stopRow参数用来限定读取到何处停止。起始行包括在内,而终止行是不包括在内的。一般用区间表示法表示为[startRow,stopRow)
扫描操作有一个特点:用户提供的参数不必精确匹配这两行。扫描会匹配相等或大于给定的起始行的行键。如果没有显式地指定起始行,