【发布时间】:2019-12-30 07:27:06
【问题描述】:
我需要从 BigTable 获取 50 条最新数据(基于时间戳)。
我使用read_row 获取数据并使用CellsRowLimitFilter(50) 进行过滤。但它没有返回最新数据。数据似乎没有根据时间戳排序?如何获取最新数据?
感谢您的帮助。
【问题讨论】:
标签: python google-cloud-bigtable bigtable
我需要从 BigTable 获取 50 条最新数据(基于时间戳)。
我使用read_row 获取数据并使用CellsRowLimitFilter(50) 进行过滤。但它没有返回最新数据。数据似乎没有根据时间戳排序?如何获取最新数据?
感谢您的帮助。
【问题讨论】:
标签: python google-cloud-bigtable bigtable
与 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.
【讨论】:
原来问题出在架构上。它不是为时间序列数据设计的。我应该使用id#reverse_timestamp 创建行键,数据将从最新开始排序。现在我可以使用CellsRowLimitFilter(50) 并获取50 条最新数据。
【讨论】: