如果HBase以long为单位存储每列的时间戳,那么当从终端上的hbase shell访问时,它如何以正确的数字格式显示值,如果我将其他值存储为long,则以下列方式显示不可读\x00\x00\x00\x00\x00\x0By\x80
除非你转换为java代码。或者HBase是否有其他数据类型来存储时间戳值?
APP:APP_ID timestamp=1337657056164, value=\x00\x00\x00$
APP:APP_NAME timestamp=1337657056164, value=java.process
TUW:EXCEPTION timestamp=1337657056164, value=0
TUW:TUW_ID timestamp=1337657056164, value=\x00\x00\x12\x08
TUW:TUW_STATUS timestamp=1337657056164, value=\x00\x00\x00\x02
答案 0 :(得分:4)
您在HBase中存储的任何值看起来都像\x00\x00\x00\x00\x00\x0By\x80
,因为HBase将每个值视为字节数组,而不管其数据类型如何。这就是为什么你必须将这些值转换回java类型才能看到它们。
虽然时间戳是Hbase内部用于对存储数据进行版本控制的内容,但它是“自纪元以来的秒数”。它也可以是我们选择的其他一些价值。我们可以在插入数据时指定时间戳。