我有一个BigQuery表,大约有34M行(几个月内会增长到~500M)。我得到了存储定价,但我真的不明白查询/分析定价的工作原理。
例如,如果我运行的查询是一个简单的选择,从大约20条记录中返回3列,则表示处理了644 MB。即使我删除了where
子句中的列或条件,它仍然显示我正在处理6xx MB的数据。
有趣的是,如果我从表中运行select count(*),它会报告处理0个字节。
BigQuery的一个用例是创建仪表板和临时报告。但是,如果针对该表每两个查询花费0.03美元,我就不会看到这是如何实用的。
我错过了什么吗?是否有减少简单数据访问处理数据量的策略?
答案 0 :(得分:2)
见the BigQuery pricing documentation。基本上,您需要支付所访问列的完整大小,因为每个BigQuery查询都会读取所提到的每个列。例如,
select foo, bar from table1 where foo=1
将向您收取访问表1中foo和bar列的整个大小的费用。
COUNT(*)读取表元数据以获取计数,因此不需要任何费用。
降低成本的一种方法是将数据拆分为多个表。您可以通过指示逗号分隔的表(如select foo from table1,table2
)在单个查询中组合表。您还可以缓存结果(BigQuery不会自行执行任何缓存)。