首页 > 解决方案 > Bigtable - read_rows 和 start_key

问题描述

有没有办法start_key为 Bigtable 编写?我无法找到关于语法用途的明确文档start_key

假设我有一个用户活动的 {domain}_{timestamp} 行键。

要将查询过滤到特定域,我可以使用过滤器(较慢)或 start_key(较快)。

我一直在写我的start_key字符串{domain}_,但是如果我们现在有domain,user IDtimestamp, 现在我想按除特定时间之外的任何用户进行过滤,我可以使用类似的东西{domain}_*_{timestamp}吗?

标签: bigtablegoogle-cloud-bigtable

解决方案


您必须使用带有RegexStringComparator. 你也可以setStart({domain}_)为了更好的表现。不幸的是,这将{domain}_在服务器端进行扫描和过滤。

使用随机用户 ID 进行搜索可能会更快,或者如果您需要所有用户,则使用Table.get(List<Get>)每个Get用户对应的位置。


推荐阅读