我想了解一些关于hbase shell命令的基础知识。
我创建了一个hbase表,如下所示。
create 'employee' ,'personaldetails'
我插入了一些行并添加了一些列。
put 'employee','1000','personaldetails:name','surender'
put 'employee','1000','personaldetails:age','27'
put 'employee','1001','personaldetails:name','raja'
put 'employee','1001','personaldetails:age','30'
现在我需要根据两列或一列来获取表员工的rowkey数据
以下命令抛出错误。另请告诉我如何根据列
包含两个条件get 'employee',1001,'personaldetails:name','surender'
答案 0 :(得分:0)
创建hbase表后,我可以添加新的列族吗?
是。查看ALTER。
什么是基于两列
获取rowkey和列数据的hbase命令
像WHERE子句?查看how to scan hbase from hbase shell using filter。
您确定HBase是您正在做的事情的正确数据库吗?员工数据库往往很适合RDBMS。
答案 1 :(得分:0)
是的,您可以在创建表后添加新列族,执行以下操作以添加新列族。
disable 'employee'
alter 'employee', 'new column family name' // new column family will be added into table.
enable 'employee'
要查询列值使用过滤器的基础,请查看以下代码来执行此操作。
import org.apache.hadoop.hbase.filter.CompareFilter
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter
import org.apache.hadoop.hbase.filter.SubstringComparator
import org.apache.hadoop.hbase.util.Bytes
get 'employee', 1000, {FILTER => SingleColumnValueFilter.new(Bytes.toBytes('personaldetails'), Bytes.toBytes('age'), CompareFilter::CompareOp.valueOf('EQUAL'), SubstringComparator.new('27'))}
希望它会对你有所帮助。