如何基于Hbase中的列进行查询?

如何基于Hbase中的列进行查询?,hbase,Hbase,下表举例。我想按姓氏搜索所有记录。如何在Hbase中查询此信息 Key First Name Last Name Sport 1 John Smith Baseball 2 Wayne Smith Baseball 3 Robert Reynolds Basketball 4 Mark Thompson Basketball 注: 这里我的行id是“Key”列 HBase不支持二级索引。因此,从技术上讲,您不能在接受该键的任何其他列上

下表举例。我想按姓氏搜索所有记录。如何在Hbase中查询此信息

Key First Name  Last Name   Sport
1   John    Smith   Baseball
2   Wayne   Smith   Baseball
3   Robert  Reynolds    Basketball
4   Mark    Thompson    Basketball
注:
这里我的行id是“Key”列

HBase不支持二级索引。因此,从技术上讲,您不能在接受该键的任何其他列上进行查询。 但是,您可以使用过滤器,例如

  scan 'table', { FILTER => SingleColumnValueFilter.new(Bytes.toBytes('columnFamily'),
  Bytes.toBytes('LastName'), CompareFilter::CompareOp.valueOf('EQUAL'),
  BinaryComparator.new(Bytes.toBytes('Smith')))}
但这是低效的,因为这不会减少服务器端IO,因为整个扫描都会完成,结果会被过滤掉。但是,它确实会减少网络带宽,并减少客户端需要处理的数据量