Hbase Shell命令

时间:2014-06-14 03:04:32

标签: hbase

我想了解一些关于hbase shell命令的基础知识。

  1. 我可以在创建hbase表后添加新的列族吗?
  2. 什么是基于两列
  3. 获取rowkey和列数据的hbase命令

    我创建了一个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'
    

2 个答案:

答案 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'))}

希望它会对你有所帮助。