我是使用hbase的新手。 我有多个具有属性
的列如何搜索特定属性。
在这种情况下如何使用scan命令?
scan'table_name'给出所有记录。
答案 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