如何从 bigtable 获取最近的数据?

Posted

技术标签:

【中文标题】如何从 bigtable 获取最近的数据?【英文标题】:How to get recent data from bigtable? 【发布时间】:2019-12-30 07:27:06 【问题描述】:

我需要从 BigTable 获取 50 条最新数据(基于时间戳)。

我使用read_row 获取数据并使用CellsRowLimitFilter(50) 进行过滤。但它没有返回最新数据。数据似乎没有根据时间戳排序?如何获取最新数据?

感谢您的帮助。

【问题讨论】:

【参考方案1】:

与 Bigtable 行键相关的所有数据(单元格)都按时间戳存储,提供存储数据如何随时间更改的记录。你正在使用的方法CellsRowLimitFilter(50)will return the first N cells of the row,而你想要的是最新的而不是第一个所以你应该使用CellsColumnLimitFilter(50) which will return only the most recent N cells within each column.

【讨论】:

【参考方案2】:

原来问题出在架构上。它不是为时间序列数据设计的。我应该使用id#reverse_timestamp 创建行键,数据将从最新开始排序。现在我可以使用CellsRowLimitFilter(50) 并获取50 条最新数据。

【讨论】:

您也可以通过“单元格”时间戳读取。如果您不一定想要“事件时间”中的“最新”。如果您想从表中读取最新的书面记录,这会很方便。 hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/… @Hana 我们如何生成 reverse_timestamp?默认情况下,bigtable 不是按时间戳排序存储记录吗?反向时间戳如何为获取最近记录提供额外帮助?

以上是关于如何从 bigtable 获取最近的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Cloud Bigtable cbt 工具获取密钥列表?

如何将数据从一个 BigTable 表复制到另一个 BigTable 表

如何从 java 连接到正在运行的 bigtable 模拟器

BigTable:有没有更好的方法从部分行键中获取唯一值?

如何使用 HBase/Bigtable 进行数据分析?

用于描述 BigTable 数据模型的词语的含义