如何根据Hbase中的列进行查询?

时间:2017-03-20 11:34:27

标签: 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”列。

1 个答案:

答案 0 :(得分:1)

HBase不支持二级索引。因此,从技术上讲,您无法在任何其他列上查询接受密钥。 但是,您可以使用过滤器,例如

  scan 'table', { FILTER => SingleColumnValueFilter.new(Bytes.toBytes('columnFamily'),
  Bytes.toBytes('LastName'), CompareFilter::CompareOp.valueOf('EQUAL'),
  BinaryComparator.new(Bytes.toBytes('Smith')))}

但这样做效率低,因为这不会减少服务器端IO,因为完成了整个扫描并且结果被过滤掉了。但是,它确实减少了网络带宽并减少了客户端需要处理的数据量。