在hbase中使用分隔的rowkey

时间:2013-08-06 12:26:37

标签: hbase

我可以将3个字符串组合作为HBase中的行键吗?例如,X,Y和Z值的组合标识一个唯一记录。

我将使用Java

连接到Hbase

如果有可能,请告诉我?

提前致谢。

3 个答案:

答案 0 :(得分:0)

冒着琐碎的风险,用分隔符连接你的字符串,例如产生类似“x | y | z”的东西。

答案 1 :(得分:0)

您可以使用“|”等分隔符或用于rowkeys的长度前缀字符串。

你也可以参考OpenTSDB schema design

答案 2 :(得分:0)

HBase不会阻止你这样做。虽然您可以使用任何字符作为分隔符,但请尝试使用不常见的内容,例如“〜”“^”。原因是,“|”“,”等字符极有可能作为数据的一部分出现。

但有几点建议:

  • 尽量减少rowkey的长度。
  • 尽可能使用数字键代替字符串。

HTH

P.S。 :获得这些类型的查询答案的最佳方法是尝试它。这是不应该花费几分钟的事情。


您可以使用PrefixFilter来实现这一目标。给定在实例化过滤器实例时指定的前缀,将匹配此前缀的所有行返回给客户端。构造函数是:

public PrefixFilter(byte []前缀)

示例:

过滤器过滤器=新的PrefixFilter(Bytes.toBytes(“9874541235 ^ MOBILEDEVICE ^ MOBILESOURCE”));

这将为您提供以 9874541235 ^ MOBILEDEVICE ^ MOBILESOURCE 开头的所有行。

相关问题