下面的示例表。我想按姓氏搜索所有记录。我如何在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”列。
答案 0 :(得分:1)
HBase不支持二级索引。因此,从技术上讲,您无法在任何其他列上查询接受密钥。 但是,您可以使用过滤器,例如
scan 'table', { FILTER => SingleColumnValueFilter.new(Bytes.toBytes('columnFamily'),
Bytes.toBytes('LastName'), CompareFilter::CompareOp.valueOf('EQUAL'),
BinaryComparator.new(Bytes.toBytes('Smith')))}
但这样做效率低,因为这不会减少服务器端IO,因为完成了整个扫描并且结果被过滤掉了。但是,它确实减少了网络带宽并减少了客户端需要处理的数据量。