bigtable 反向时间戳相对于常规时间戳的优势
Posted
技术标签:
【中文标题】bigtable 反向时间戳相对于常规时间戳的优势【英文标题】:bigtable reverse timestamp advantage over regular timestamp 【发布时间】:2020-12-29 05:08:36 【问题描述】:Bigtable docs说:
通过反转时间戳,您可以设计一个行键,其中最 最近的事件出现在表格的开头而不是结尾。作为 结果,你可以简单地通过检索获得最近的 N 个事件 表格的前 N 行。
我的理解是,假设表格按升序排序,那么常规时间戳将意味着最近的事件将位于表格的末尾,因为这些值会增加,而反向时间戳将意味着最近的事件将位于表格的开头,因为那些值会降低。我的理解是,这种反向时间戳设计利用了对表的行键进行排序。
为什么升序排序而不是降序排序有好处 - 升序排序是 bigtable 中唯一支持的排序类型吗?以上“我的理解”是否正确?
【问题讨论】:
【参考方案1】:是的,你的理解是正确的。云 Bigtable 仅支持按字典顺序排序的键。因此,您可以通过反转时间戳来设计一个键,以便通过检索表的前 N 行来获取最近的 N 个事件。
在 Cloud Bigtable 中存储时间序列数据是天作之合。云 Bigtable 将数据存储为行中的非结构化列;每一行都有一个 行键和行键按字典顺序排序
行按行键按字典顺序排序,从最低到最低 最高字节字符串。行键按大端字节顺序排序 (有时称为网络字节顺序),二进制等价于 按字母顺序。
Time series and Cloud Bigtable
Designing your schema
例如,这是按字典顺序对这些值进行排序(升序)的方式:
1425330757686
1425330757687
1425330757688
2
3
【讨论】:
【参考方案2】:为什么升序排序比降序排序有好处 - 升序排序是 bigtable 中唯一支持的排序类型吗?
Bigtable stores data lexicographically 开箱即用。这意味着键“203”将放在“202”之后,但键“00202”将放在“203”之后。您不能以任何其他方式对数据进行排序。
除此之外,您的理解是正确的。使用反向时间戳时,最近的事件将位于表的开头。
【讨论】:
以上是关于bigtable 反向时间戳相对于常规时间戳的优势的主要内容,如果未能解决你的问题,请参考以下文章