Google Bigtable:时间戳扫描



我看到 Bigtable 被设计为只有 1 个主索引,即行键。 但是我现在意识到我想按添加行的时间范围扫描 Bigtable。我应该如何实现这一点?是否有可能,或者我应该考虑其他类似云数据存储的东西?

目前我的行键只是一个哈希,如下所示:ABC1234567。我可以为其添加时间戳(例如ABC1234567#20180524(,然后在行键上使用正则表达式过滤器按时间范围扫描吗?此扫描不必非常快。 但是当我寻找哈希(需要快速(时,我需要使用前缀扫描而不是完全匹配。我不确定这可能会对性能产生的影响。

另一种解决方案可能是添加另一个表来存储时间戳信息。

要考虑的另一件事是,我正在使用现在处于alpha状态的Node.js客户端,因此它可能没有所有必要的工具。

我们这里有很多关于正确时间序列模式设计的文档: https://cloud.google.com/bigtable/docs/schema-design-time-series。

在特定情况下,将时间戳附加到哈希的末尾将起作用。如果要在 2018 年 3 月的所有哈希中搜索行,则需要在每次使用正则表达式筛选器时对整个表进行全面扫描。

当您需要按哈希查找时,这仍然会很快,因为您将按前缀搜索,bigtable 将能够有效地找到它,因为它依赖于字典排序。

您提到的最后一个选项(具有单独的表(称为非规范化,如果您需要两种类型的查询都快速,则是一个选项。

我不知道这个问题是否可以标记为重复,但我认为另一个问题答案可能会回答你的问题:

Bigtable 中的行时间戳 - 何时更新?

另外,您可以在此处查看时间戳范围。 以及此处的密钥组成:

每一行本质上都是键/值条目的集合,其中Key 是系列列限定符时间戳。如果行不包含特定键的值,则 键/值输入根本不存在。

最新更新