将列版本用于时间序列

时间:2018-12-10 16:09:33

标签: google-cloud-platform bigtable google-cloud-bigtable

official documentation中有一段文字,我无法完全理解其原因:

  

使用时间序列时,请勿利用行的事务行为。对现有行中数据的更改应存储为新的单独行,而不是在现有行中进行更改。这是一种易于构建的模型,它使您无需依赖列版本即可维护活动历史记录。

最后一句话并不明显,也不具体,因此无法说服我。就目前而言,在我看来,使用版本控制来更新单元的数据仍然很适合进行更新任务。至少版本是由BigTable管理的,因此它是一种更简单的解决方案。

有人可以提供更明显的解释,说明为什么在该用例中不应使用版本控制吗?

1 个答案:

答案 0 :(得分:0)

该页面先前Patterns for row key design下的内容进行了详细说明。高级视图是使用行键而不是列版本:

  • 使对数据的查询更加容易,从而扫描更少的数据。
  • 避免超过建议的最大行大小。

一个警告是:

  

在用例是的情况下,可以使用列的版本   实际修改值,并且值的历史很重要。对于   例如,假设您根据收盘价进行了一组计算   ZXZZT的价格,最初错误地将数据输入为   收盘价为559.40,而不是558.40。在这种情况下,重要的是要知道该值的历史记录,以防该值不正确   导致了其他错误的计算。