Hbase新手,没有配置hive或impala。 :-( 现在想要根据多个列值扫描表的行 假设表A有4列aa,ab,ac,ad。我希望表的所有行满足列ab&的值条件。广告。
其他查询是如何在多个表上查询,假设表中存在外部键。
答案 0 :(得分:0)
重申您的情景:一个HBase表名为 A ,一个列族 CF1 ,其中有四个列限定符,即 aa,ab,ac ,广告
您的要求是获得符合两列限定符ab&的行。广告条件
此实现的方法是使用SingleColumnValueFilter。 根据需要创建过滤器列表(在您的情况下为两个过滤器列表) 并按相关顺序添加过滤器
如果您有两个不同的列族(A& B),那么 扫描' A' ,{COLUMNS => [' A:AA' ,' B:ab']}
在你的第二个问题中,外键是什么意思?如果要引用唯一的复合密钥标识符,则浏览辅助索引。
答案 1 :(得分:0)
对于扫描单个hbase表中多列的行,您可以使用Hbase Api,以下java代码可以解决您的问题。
SingleColumnValueFilter f1 = new SingleColumnValueFilter(Bytes.toBytes("0"), Bytes.toBytes("EMP_KEY"), CompareFilter.CompareOp.LESS_OR_EQUAL, Bytes.toBytes(500));
SingleColumnValueFilter f2 = new SingleColumnValueFilter(Bytes.toBytes("0"), Bytes.toBytes("DEPT_KEY"), CompareFilter.CompareOp.EQUAL, Bytes.toBytes(204));
FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL); //could be FilterList.Operator.MUST_PASS_ALL instead
filterList.addFilter(f1);
filterList.addFilter(f2);
Scan scan = new Scan();
scan.setFilter(filterList);