是的,HBase支持通過HBase Shell、Java API、REST API等方式進行條件查詢。
scan 'myTable', {COLUMN => 'cf1:column1', STARTROW => 'row1', ENDROW => 'row2'}
Scan scan = new Scan();
scan.setStartRow("row1");
scan.setEndRow("row2");
Filter filter = new SingleColumnValueFilter(Bytes.toBytes("cf1"), Bytes.toBytes("column1"), CompareFilter.CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("value1")));
scan.setFilter(filter);
ResultScanner scanner = table.getScanner(scan);
for (Result result : scanner) {
// 處理掃描結果
}
{
"table": "myTable",
"scan": {
"startRow": "row1",
"endRow": "row2",
"columns": ["cf1:column1"]
}
}
需要注意的是,HBase中的條件查詢是基于行鍵和列族、列限定符的,因此查詢效率可能受到數據模型和索引設計的影響。為了提高查詢效率,建議在數據模型和索引設計時充分考慮查詢需求,并合理設置行鍵和列族、列限定符等參數。