具有相同键的行

yptwkmov  于 2021-06-09  发布在  Hbase
关注(0)|答案(5)|浏览(210)

当我需要创建hbase行时,我必须调用 Put(row_key) 方法。那么,如果我给你打电话怎么办 Put() 方法相同 row_key 价值?是更新现有行还是hbase创建新行?
可以用相同的键创建两行吗?

pxyaymoc

pxyaymoc1#

不能有具有相同键的行,但可以有多个使用时间戳的put版本。您可以将这些内置时间戳用于审计或时间戳。
如果您在未指定版本(时间戳)的情况下发出多个PUT,则以kv的最新版本为准。如果发出多个PUT并显式设置相同的时间戳,则将返回其中一个值,但hbase不保证顺序以及哪个kv将在压缩(计划的清除)后继续存在。如果你插入多个时间戳为负的看跌期权,这将是非常糟糕的。早期的hbase版本将产生不可预测的扫描结果,而后期的hbase版本将引发异常。

fquxozlt

fquxozlt2#

行键用于在hbase中唯一地标识行。如果希望两行具有相同的键,则缺少某些内容。请添加有关您的需求的更多信息,或重新访问hbase体系结构的基础知识

35g0bw71

35g0bw713#

根据put操作的文档:
put可以向表中添加新行(如果键是新的),也可以更新现有行(如果键已经存在)。put通过table.put(非writebuffer)或table.batch(非writebuffer)执行。
注意:我的重点

7jmck4yq

7jmck4yq4#

对于较新版本的hbase,只能从查询中提取最后一条记录,比如get'emp';默认情况下,版本控制保持为1;但在其他先前版本的下面,在压实过程中会被冲洗掉。

o0lyfsai

o0lyfsai5#

您的问题还应该包括列族和列限定符值。对于row key,这三个是hbase表中值的唯一标识符。
还可以为该列族启用版本控制,并具有多个值,这些值可以具有相同的“行键+列族+列限定符”值。在这种情况下,每个唯一版本(值)都由“rowkey+col.fam”定义+列质量+“时间戳”

相关问题