0

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

我将使用 Java 连接到 Hbase

你能告诉我这是否可能吗?

提前致谢。

4

3 回答 3

0

冒着微不足道的风险,将您的字符串与分隔符连接起来,以产生诸如“x|y|z”之类的东西。

于 2013-08-06T12:49:54.620 回答
0

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

不过有几个建议:

  • 尽量减少 rowkey 的长度。
  • 如果可能,尝试使用数字键而不是字符串。

高温高压

PS:获得这些类型查询答案的最佳方法是尝试一下。这是不应该超过几分钟的事情。


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

公共 PrefixFilter(byte[] 前缀)

例子 :

Filter filter = new PrefixFilter(Bytes.toBytes("9874541235^MOBILEDEVICE^MOBILESOURCE"));

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

于 2013-08-06T16:38:34.703 回答
0

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

您也可以参考 OpenTSDB 进行架构设计

于 2013-08-06T15:45:20.940 回答