我可以将3个字符串组合作为HBase中的行键吗?例如,X,Y和Z值的组合标识一个唯一记录。
我将使用Java
连接到Hbase如果有可能,请告诉我?
提前致谢。
答案 0 :(得分:0)
冒着琐碎的风险,用分隔符连接你的字符串,例如产生类似“x | y | z”的东西。
答案 1 :(得分:0)
您可以使用“|”等分隔符或用于rowkeys的长度前缀字符串。
你也可以参考OpenTSDB schema design。
答案 2 :(得分:0)
HBase不会阻止你这样做。虽然您可以使用任何字符作为分隔符,但请尝试使用不常见的内容,例如“〜”或“^”。原因是,“|”或“,”等字符极有可能作为数据的一部分出现。
但有几点建议:
HTH
P.S。 :获得这些类型的查询答案的最佳方法是尝试它。这是不应该花费几分钟的事情。
您可以使用PrefixFilter来实现这一目标。给定在实例化过滤器实例时指定的前缀,将匹配此前缀的所有行返回给客户端。构造函数是:
public PrefixFilter(byte []前缀)
示例:
过滤器过滤器=新的PrefixFilter(Bytes.toBytes(“9874541235 ^ MOBILEDEVICE ^ MOBILESOURCE”));
这将为您提供以 9874541235 ^ MOBILEDEVICE ^ MOBILESOURCE 开头的所有行。