use*_*121 0 google-cloud-bigtable
我想询问有关在 Bigtable 中使用带或不带前缀的正则表达式查询的建议和性能注意事项。
我们需要使用正则表达式过滤行键末尾的信息。
Bigtable 是否需要进行全表扫描来执行不包含前缀的正则表达式查询?性能方面有哪些考虑?这是推荐的吗?
在查询中引入前缀会对推荐产生什么影响?
当我们优化我们的架构时,将不胜感激对此的建议/想法。
我是 Cloud Bigtable 的工程师团队成员。
Bigtable 过滤引擎将尝试解析正则表达式查询中存在的任何前缀,并使用它来缩小扫描范围。
编辑(2019-05-14):事实证明这不太准确。Bigtable 将解析出前缀并使用它来查找过去不相关的数据,但这对于每个平板电脑都是单独发生的。特别是,即使平板电脑最终被完全跳过,我们仍然必须向每个平板电脑发送请求。因此这将比真正的全表扫描快得多,但仍然存在性能问题。我们正在研究改进。
但是,如果您不提供前缀,那么 Bigtable 将无法进行任何操作,因为任何行都可能匹配。因此,这种类型的查询将导致全表扫描。对于需要良好执行的查询,不建议进行大型扫描,因此最好安排行键以尽可能避免它们。您可以在文档中找到有关架构设计的更多信息。
请注意,您始终可以在我们所有支持的客户端中对扫描设置显式行边界。这对于限制无界扫描的大小很有用,但是如果您确实需要加速大型查询,您也可以使用它来并行读取表的多个分片:
归档时间: |
|
查看次数: |
3177 次 |
最近记录: |