如何扫描hbase中的特定列值?

时间:2011-11-18 21:33:54

标签: hbase

我是使用hbase的新手。 我有多个具有属性

的列

如何搜索特定属性。

在这种情况下如何使用scan命令?

scan'table_name'给出所有记录。

3 个答案:

答案 0 :(得分:6)

你可以使用,

  

扫描'tablename',{COLUMNS => 'cfamily:cqualifier'}

您可以使用

同时扫描多个列
  

扫描'tablename',{COLUMNS => ['cf1:cq1','cf2:cq2']}

答案 1 :(得分:2)

虽然这是一个非常古老的问题,但我觉得要更新这个,因为这有助于其他人得到答案。

我也是Hadoop-Hbase的初学者,我正在寻找这个答案,并在下面找到了获取值的命令:

Cammand姓名:得到 Cammand详细信息:获取行或单元格内容;传递表名,行和可选项                  列字典,时间戳和版本 例子:

hbase> get 'table1', 'row1'  --- this will show all column values for row1 of table1

hbase> get 'table1', 'row1', {COLUMN => 'col1'}  --- this will show value of column col1 of row1 of table1.

以下URL对所有其他Hbase命令非常有用。

http://hbase.apache.org/book.html#shell

感谢。

答案 2 :(得分:0)

从您的示例看来,您正在讨论使用hbase shell 在这种情况下,您可以编写“帮助扫描”,它将解释如何使用该命令,例如

scan 't1', {FILTER => org.apache.hadoop.hbase.filter.ColumnPaginationFilter.new(1, 0)}

您还可以看到解释here

请注意,hbase在限定符上没有索引,因此不在键上中继的扫描效率不高。通常的方法是记住密钥按字典顺序排列,并根据密钥的一部分进行搜索。并按部分键扫描。然后,您可以通过限定符进一步过滤,但过滤的记录数将会更小,因此效果会更好。 如果您正在使用过滤器,还可以考虑使用bloom过滤器设置columnfamily