包含时间戳的 HBase rowkey
HBase rowkey which includes timestamp
我想知道像下面这样的行键是否不好:
用户名-时间戳
这些行将从 MapReduce 作业中读取,并将使用 java 客户端 API 放置。此外,将使用 STARTROW、ENDROW 选择一个子集。
一方面,这对我的用例来说似乎很方便,因为我可以扫描特定的时间间隔,并且行主要是 MR 作业的后续行,而另一方面,我读到避免长行键和热点是很好的。
这个设计真的有问题吗?如何克服?
我是 HBase 的新手,所以任何帮助都会很棒。
一般建议是避免单调增加行键。为此,一些软件工具在行键中包含一个所谓的 "salt",它会跨区域散列键。可以在此处找到讨论:http://hbase.apache.org/0.94/book/rowkey.design.html. And here: https://phoenix.apache.org/salted.html. You can also look at Apache Trafodion http://trafodion.apache.org/,它使用行键加盐来分发 SQL-like 主键。
我想知道像下面这样的行键是否不好:
用户名-时间戳
这些行将从 MapReduce 作业中读取,并将使用 java 客户端 API 放置。此外,将使用 STARTROW、ENDROW 选择一个子集。
一方面,这对我的用例来说似乎很方便,因为我可以扫描特定的时间间隔,并且行主要是 MR 作业的后续行,而另一方面,我读到避免长行键和热点是很好的。
这个设计真的有问题吗?如何克服?
我是 HBase 的新手,所以任何帮助都会很棒。
一般建议是避免单调增加行键。为此,一些软件工具在行键中包含一个所谓的 "salt",它会跨区域散列键。可以在此处找到讨论:http://hbase.apache.org/0.94/book/rowkey.design.html. And here: https://phoenix.apache.org/salted.html. You can also look at Apache Trafodion http://trafodion.apache.org/,它使用行键加盐来分发 SQL-like 主键。