如果某些字段的值已知,则在java中查询hbase

如果某些字段的值已知,则在java中查询hbase,java,mysql,apache,hadoop,hbase,Java,Mysql,Apache,Hadoop,Hbase,我正在使用org.apache.hadoop.hbase库查询hbase。 在h-base中,我有以下几点: 表名:员工 在此表中,我有以下字段: emp\u id、姓名、年龄、职务、加入日期 如果我只知道员工的加入日期和姓名,我如何找到员工的指定。 我使用的是类似于: public static void getOneRecord (Configuration conf, String tableName, String rowKey, String rowKey2) throws IOExc

我正在使用org.apache.hadoop.hbase库查询hbase。 在h-base中,我有以下几点:

表名:员工 在此表中,我有以下字段: emp\u id、姓名、年龄、职务、加入日期

如果我只知道员工的加入日期和姓名,我如何找到员工的指定。 我使用的是类似于:

public static void getOneRecord (Configuration conf, String tableName, String rowKey, String rowKey2) throws IOException{
        HTable table = new HTable(conf, tableName);
        Get get = new Get(rowKey.getBytes());
        Result rs = table.get(get);
        for(KeyValue kv : rs.raw()){
            System.out.print(new String(kv.getRow()) + " " );
            System.out.print(new String(kv.getFamily()) + ":" );
            System.out.print(new String(kv.getQualifier()) + " " );
            System.out.print(kv.getTimestamp() + " " );
            System.out.println(new String(kv.getValue()));
        }
    }
如何将其扩展到两行键


注意:保证此对查询只返回一个值。

您希望基于非行键的列获取记录。请证实这一点。如果是,以下是选项

  • 性能良好的行键设计。如果基于列键以外的列查询更多,则可以考虑修改行键设计,以将该列追加为行键的一部分。然后,您可以使用get或扫描行键范围、行筛选器或
  • 二级索引是一种选择
  • 使用过滤器(在本例中为两个SingleColumnValueFilter)并将其作为扫描的一部分添加