【发布时间】:2015-06-06 10:11:51
【问题描述】:
我想知道如何配置 Hbase 以仅存储每个单元的第一个版本?假设如下Htable:
row_key cf1:c1 timestamp
----------------------------------------
1 x t1
将("1","cf1:c2",t2)放入ColumnDescriptor.DEFAULT_VERSIONS = 2的场景后,提到的Htable变成:
row_key cf1:c1 timestamp
----------------------------------------
1 x t1
1 x t2
t2>t1.
我的问题是如何改变这种情况,使第一个版本的单元格成为唯一可以存储和检索的版本。我的意思是在提供的示例中,唯一的版本是't1' 一个!因此,我想以一种忽略重复插入的方式更改 hbase。
我知道将 Htable 的 VERSIONS 设置为 1 并基于 Long.MAX_VALUE - System.currentTimeMillis() 放置可以解决我的问题,但我不知道这是不是最好的解决方案?!将 tstamp 更改为Long.MAX_VALUE - System.currentTimeMillis() 有什么问题?它有任何性能问题吗?
【问题讨论】:
-
你能澄清你的问题吗?只有每个单元的第一个版本意味着不再有任何其他版本,这意味着所有后续写入都将被忽略,而忽略重复则完全不同。
-
@mrhobo 其实我只想拥有每个单元格的第一个版本而忽略其他的。
-
所以你想在第一次写入单元格后阻止所有写入?
-
@mrhobo 是的,没错。