Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
6年前关闭。
Improve this question
我是HBase的新手,必须使用Composite-Key作为行键。请告诉我
以及如何使用该复合键扫描或获取某些记录?(在R.K的第1和第2以及其他部分)(例如,Rowkey:在tom上扫描)
编辑:行键是字节数组(这在问题上同样重要)
只需根据您的要求更改正则表达式即可。
根据修改,上面的答案将不成立。如果将行键作为字节数组非常重要,请使用FuzzyRowFilter。
引用javadocs
**根据模糊行键过滤数据。在扫描过程中执行快进。它需要成对(行键,模糊信息)来匹配行键。其中模糊信息是一个字节数组,其值为0或1:
0-表示提供的行键中的此字节是固定的,即,行键在相同位置的字节必须匹配
1-表示提供的行键中的此字节未固定,即此位置处的行键的字节可以与提供的行键中的字节不同
示例:假设行键格式为userId_actionId_year_month。 userId的长度是固定的,为4,actionId的长度为2,年和月的长度分别为4和2个字节。假设我们需要获取在每年的1月执行了某些操作(编码为“99”)的所有用户。然后,该对(行键,模糊信息)将为以下内容:行键=“???? 99 ???? _ 01”(可以使用任何值代替“?”)模糊信息=“\ x01 \ x01 \ x01 \ x01 \ x00 \ x00 \ x00 \ x00 \ x01 \ x01 \ x01 \ x01 \ x00 \ x00 \ x00“即模糊信息告诉匹配的掩码是“???? 99 ???? _ 01”,在哪里?可以是任何值。**
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
6年前关闭。
Improve this question
我是HBase的新手,必须使用Composite-Key作为行键。请告诉我
以及如何使用该复合键扫描或获取某些记录?(在R.K的第1和第2以及其他部分)(例如,Rowkey:在tom上扫描)
编辑:行键是字节数组(这在问题上同样重要)
最佳答案
Configuration conf = HBaseConfiguration.create();
HTable table = new HTable(conf, "t1");
Scan s = new Scan ();
RegexStringComparator keyRegEx = new RegexStringComparator(".*tom.*");
RowFilter rowFilter = new RowFilter(CompareOp.EQUAL, new RegexStringComparator(".*tom.*"));
s.setFilter(rowFilter);
ResultScanner scanner = table.getScanner(s);
Iterator<Result> it = scanner.iterator();
while(it.hasNext()){
// ... your code ...
}
只需根据您的要求更改正则表达式即可。
.*?-tom-.*
在这里会很好。根据修改,上面的答案将不成立。如果将行键作为字节数组非常重要,请使用FuzzyRowFilter。
引用javadocs
**根据模糊行键过滤数据。在扫描过程中执行快进。它需要成对(行键,模糊信息)来匹配行键。其中模糊信息是一个字节数组,其值为0或1:
0-表示提供的行键中的此字节是固定的,即,行键在相同位置的字节必须匹配
1-表示提供的行键中的此字节未固定,即此位置处的行键的字节可以与提供的行键中的字节不同
示例:假设行键格式为userId_actionId_year_month。 userId的长度是固定的,为4,actionId的长度为2,年和月的长度分别为4和2个字节。假设我们需要获取在每年的1月执行了某些操作(编码为“99”)的所有用户。然后,该对(行键,模糊信息)将为以下内容:行键=“???? 99 ???? _ 01”(可以使用任何值代替“?”)模糊信息=“\ x01 \ x01 \ x01 \ x01 \ x00 \ x00 \ x00 \ x00 \ x01 \ x01 \ x01 \ x01 \ x00 \ x00 \ x00“即模糊信息告诉匹配的掩码是“???? 99 ???? _ 01”,在哪里?可以是任何值。**
关于java - 扫描HBase中的复合键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22892130/
10-10 16:42