java - 默认情况下,时间戳是否出现在 HBase 表中?

标签 java nosql hbase timestamping

当我们创建任何 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/

相关文章:

apache - PouchDB View 按键查找

java - HypergraphDB Netbeans 设置

django - 在 MVC 框架中结合 noSQL 和 ORM 用于实际应用程序

hadoop - HBase 中的检查点

hadoop - HBase局部扫描怎么办?

java - 我可以手动/编程方式生成 Eclipse 工作区和项目吗?

java - 插入排序和哨兵

java - 无法通过phoenix从hbase上的现有表读取数据

java - Java Development Kit 中的 jar.exe 在哪里?

java - 如何使用 Java 中的通用方法来 CRUD MySQL 中的任何表,使用带有 Criteria 的 Hibernate,传递表名和/或字段作为参数?