如何用可变长度的组件组成hbase键

wf82jlnq  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(361)

假设我的hbase表需要由一个键来访问,该键是四个不同元素(k1:datetime、k2:int、k3:string、k4:double)的组合。构造此密钥的最佳实践是什么?我特别关注可变长度的数据类型(字符串)。
目前,我正在将字节长度附加到字符串中,以便可以从键字节解析回每个元素。我在想,当字符串长度不匹配时,在开始时设置长度会导致快速检查。这种方法有什么缺点吗。它会影响以后基于部分键的查询吗(我对hbase还相当陌生,只花了一个星期就对它进行了修补)
老实说,我不喜欢字符串的一部分的关键,我试图让家伙们使用某种枚举而不是字符串,但不确定我能说服他们。假设字符串是键的一部分,那么用这些元素组合键的最佳方法是什么?

cld4siwp

cld4siwp1#

如果字符串“k3”在这里是不可避免的,那么可以将其保留为在每个单元的hbase中隐式分配的10mb大小。现在在这里可以捕捉到高达毫秒的日期时间。有两种方法可用于此场景:regexstringcomparator和substringcomparator。请参考他们的用法和风格。
如果字符串的长度在这里提供了大量的数据过滤,请在每个元素之间保持相同的开头,后跟regex。在这里使用regexstringcomparator。否则,在开头提供字符串并使用regexstringcomparator并将所需数据作为param传递。
n、 b:如果提供真实的数据,挖掘解决方案会更容易。

相关问题