当我们创建任何 HBase 表时,当我们扫描它时,时间戳是否会出现在该表中?
例如:
create 'test', 'cf'
put 'test', 'row1', 'cf:a', 'value1'
put 'test', 'row2', 'cf:b', 'value2'
put 'test', 'row3', 'cf:c', 'value3'
scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1288380727188, value=value1
row2 column=cf:b, timestamp=1288380738440, value=value2
row3 column=cf:c, timestamp=1288380747365, value=value3
最佳答案
时间戳实际上是 HBase 列的必需部分,它们的主要目的是列版本控制。 Here is some more detailed explanation关于版本和时间戳。 此外,“HBase definitive guide ”一书包含详细的 PUT 操作描述,它发现了几乎所有你可以用时间戳 (TS) 做的事情。
这里的提示是:
- 如果您没有在 PUT 中指定 TS,服务器会自动添加它。
- 如果您手动指定,则可以指定任何 TS,因此您实际上不受此字段“推荐”用法的限制,并且有很多替代方案。
- 时间戳 (TS) 的其他选项通过“保留已删除的记录”表选项、要保留的最小版本数和数据“生存时间”(TTL) 支持发现。
所以是的,您无法摆脱这些时间戳/版本,但有很多选项可以使用它们。
关于java - 默认情况下,时间戳是否出现在 HBase 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17520610/