在hbase中使用分隔行键

在hbase中使用分隔行键,hbase,Hbase,我可以将3个字符串的组合作为HBase中的行键吗?例如,X、Y和Z值的组合标识一个唯一的记录 我将使用Java连接到Hbase 你能告诉我这是否可行吗 提前感谢。冒着不重要的风险,用分隔符连接字符串,例如生成类似“x | y | z”的内容。您可以为行键使用分隔符,如“|”或长度前缀字符串 您还可以参考OpenTSDB以了解更多信息。HBase不会阻止您这样做。尽管可以使用任何字符作为分隔符,但请尝试使用一些不常见的字符,例如“~”或“^”。原因是,像“|”或”、“这样的字符很可能作为数据的一部

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

我将使用Java连接到Hbase

你能告诉我这是否可行吗


提前感谢。

冒着不重要的风险,用分隔符连接字符串,例如生成类似“x | y | z”的内容。

您可以为行键使用分隔符,如“|”或长度前缀字符串


您还可以参考OpenTSDB以了解更多信息。

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

不过有几点建议:

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

附言:要回答这些类型的问题,最好的办法就是尝试一下。这不应该超过几分钟


您可以使用PrefixFilter来实现这一点。给定一个在实例化筛选器实例时指定的前缀,与此前缀匹配的所有行都将返回给客户端。建造商是:

公共前缀过滤器(字节[]前缀)

例如:

Filter Filter=new PrefixFilter(Bytes.toBytes(“9874541235^MOBILEDEVICE^MOBILESOURCE”)


这将为您提供所有以9874541235^MOBILEDEVICE^MOBILESOURCE

开头的行。根据我的要求,我实际上应该使用钥匙作为电话号码(10位数字),一个至少8个字符的代码和另一个8个字符的代码。所以我的钥匙应该是9874541235^移动设备^移动资源。不幸的是,我不得不将此组合用作键,因为只有这些组合在一起才能形成唯一的键。请建议我使用9874541235^移动设备^MOBILESOURCE作为密钥时遇到问题。这不是唯一的值。9874541235^移动设备^MOBILESOURCE^值的组合是唯一键。但问题是,当我试图检索信息时,请求中只有9874541235^MOBILEDEVICE^MOBILESOURCE。你对如何设计它有什么建议吗?@Tariq HI Tariq-很想从你这里得到一些反馈:谢谢