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 反向时间戳相对于常规时间戳的优势的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 时间戳的相对时间

如何在熊猫数据框中设置时间戳的偏移量?

NodeJS中获取时间戳的方法及其性能对比

聚合类相对于常规类的优势[重复]

(有没有)python socketserver 相对于常规套接字对象的性能优势?

bigQuery 不支持毫秒时间戳