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

1mrurvl1  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(364)

我正在使用org.apache.hadoop.hbase库来查询hbase。在h-base中,我有以下几点:
表名:此表中的雇员有以下字段:雇员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()));
        }
    }

如何将其扩展到2行键。
注意:保证这个pair查询只返回一个值。

eivgtgni

eivgtgni1#

您希望基于不是行键的列获取记录。请确认一下。如果是,以下是选项
性能良好的行键设计。如果您更多地是基于列而不是行键进行查询,那么可以考虑修改行键设计,将该列作为行键的一部分进行追加。然后可以使用get或scan with row key range、row filter或fuzzyrowfilter
二级索引是一种选择。
使用过滤器(在您的例子中是两个singlecolumnvaluefilter)并将它们添加为scan.here的一部分

相关问题