3

我有一个包含大约 3400 万行的BigQuery表(它会在几个月内增长到 ~500M)。我得到了存储定价,但我并不真正了解查询/分析定价的工作原理。

例如,如果我运行一个简单选择的查询,它从大约 20 条记录中返回 3 列,它表示已处理 644 MB。即使我删除了where子句中的列或条件,它仍然显示我正在处理 6xx MB 的数据。

有趣的是,如果我从表中运行 select count(*),它会报告 0 个字节已处理。

BigQuery 的用例之一是创建仪表板和临时报告。但是,如果针对该表进行的每两个查询要花费 0.03 美元,我看不出这如何可行。

我错过了什么吗?是否有减少为简单数据访问处理的数据量的策略?

4

1 回答 1

3

请参阅BigQuery 定价文档。基本上,您需要为所访问的列的全部大小付费,因为每个 BigQuery 查询都会读取提到的每一列。例如,

select foo, bar from table1 where foo=1

将向您收取访问 table1 中 foo 和 bar 列的整个大小的费用。

COUNT(*) 读取表元数据以获取计数,因此它不需要任何成本。

降低成本的一种方法是将数据拆分为多个表。您可以通过指示逗号分隔的表(如 中)在单个查询中组合表select foo from table1,table2。您还可以缓存结果(BigQuery 不会自行进行任何缓存)。

于 2012-07-02T02:54:05.583 回答