【问题标题】:Bigquery clustering not reducing query costsBigquery 集群不会降低查询成本
【发布时间】: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 文档中没有任何保证。

有人知道会发生什么吗?
谢谢!

【问题讨论】:

  • 我在此链接stackoverflow.com/questions/53980953/… 中提出了类似的问题,您能否提供与您的 Web UI 相同的屏幕截图以帮助深入了解此问题
  • 集群只适用于分区表,并且通常在 1GB 以上的数据集上起作用。
  • 是的 Tamir,这与您的问题非常相似。实际上(正如我最近编辑的帖子)我继续测试,我发现有时会减少一些字节成本(总表的 862MB 中的 719MB 并返回 1 行)。我想我期待更大的成本节省,但在 bigquery 文档中并没有保证这些,正如 Pentium10 指出的那样,数据量可能也无济于事。谢谢两位!

标签: google-cloud-platform google-bigquery


【解决方案1】:

来自 link 中提供的 BigQuery 文档

正在开发的功能

支持集群非分区表。

请检查您的表是集群和分区

注意:根据 BigQuery 文档,如果没有 WHERE 条件,也将使用集群

【讨论】:

  • 我忘了补充,它是一个按日期分区的表,由 entity_id 字段聚集。我最近编辑了帖子以添加表格规格。我对你的笔记有疑问,我认为你实际上需要查询中的集群字段才能工作
  • 查看 Felipe 关于集群 medium.com/google-cloud/… 的精彩文章,在他的示例中查看部分仅在分区上的位置以及集群如何节省成本,如果不清楚,我的意图是抱歉。希望本文档能解决您的问题。
  • @MarcoLotto,我发布了另一个关于类似问题的问题,您可以在此link 中找到。请注意,如果您将流式缓冲区附加到您的表,您可能需要每天运行 merge 命令以查看成本改进
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 2019-08-15
  • 2022-01-14
  • 1970-01-01
  • 2014-12-25
相关资源
最近更新 更多