Bigquery 集群不会降低查询成本
Posted
技术标签:
【中文标题】Bigquery 集群不会降低查询成本【英文标题】:Bigquery clustering not reducing query costs 【发布时间】:2019-02-19 17:31:41 【问题描述】:我对 BigQuery 中的聚簇表(带有日期分区)有疑问。我有一个由名为 entity_id 的列聚集的表。问题是,我希望在通过这些聚集列过滤查询时看到字节读取减少,但根据 BigQuery Web UI,它无论如何都会进行全扫描。
例如:
SELECT * FROM project.usersDataset.users_cluster
WHERE entity_id = '405849241' LIMIT 1000;
回报:
“查询完成(经过 0.570 秒,已处理 862.94 MB)”
这实际上是整个表的大小 (862,94 MB)
这是表配置: Table configuration img
编辑:我一直在进行测试,我发现有时会保存一些读取的字节,但不会太多:Query from BigQuery Web Ui 我期望节省更多的字节成本(返回 1 个条目并扫描 862MB 表中的 719MB),但在 bigquery 文档中没有任何保证。
有人知道会发生什么吗? 谢谢!
【问题讨论】:
我在此链接***.com/questions/53980953/… 中提出了类似的问题,您能否提供与您的 Web UI 相同的屏幕截图以帮助深入了解此问题 集群只适用于分区表,并且通常在 1GB 以上的数据集上起作用。 是的 Tamir,这与您的问题非常相似。实际上(正如我最近编辑的帖子)我继续测试,我发现有时会减少一些字节成本(总表的 862MB 中的 719MB 并返回 1 行)。我想我期待更大的成本节省,但在 bigquery 文档中并没有保证这些,正如 Pentium10 指出的那样,数据量可能也无济于事。谢谢两位! 【参考方案1】:来自 link 中提供的 BigQuery 文档
正在开发的功能
支持集群非分区表。
请检查您的表是集群和分区
注意:根据 BigQuery 文档,如果没有 WHERE
条件,也将使用集群
【讨论】:
我忘了补充,它是一个按日期分区的表,由 entity_id 字段聚集。我最近编辑了帖子以添加表格规格。我对你的笔记有疑问,我认为你实际上需要查询中的集群字段才能工作 查看 Felipe 关于集群 medium.com/google-cloud/… 的精彩文章,在他的示例中查看部分仅在分区上的位置以及集群如何节省成本,如果不清楚,我的意图是抱歉。希望本文档能解决您的问题。 @MarcoLotto,我发布了另一个关于类似问题的问题,您可以在此link 中找到。请注意,如果您将流式缓冲区附加到您的表,您可能需要每天运行merge
命令以查看成本改进以上是关于Bigquery 集群不会降低查询成本的主要内容,如果未能解决你的问题,请参考以下文章