Google BigQuery定价

时间:2013-09-16 17:48:45

标签: google-bigquery

我是新加坡管理大学的博士生。目前,我正在卡内基梅隆大学开展研究项目,该项目需要Github Archive(http://www.githubarchive.org/)的历史事件。我注意到Google Bigquery有Github Archive数据。所以我运行一个程序来使用Google Bigquery服务抓取数据。

我刚刚发现控制台上的Google bigquery节目的价格没有实时更新...当我开始运行该程序几个小时,费用只有4美元加,所以我认为价格是合理的,我一直在运行该程序。 1~2天后,我在2013年9月13日再次检查价格,价格变为1388 $ ...因此我立即停止使用Google bigquery服务。刚才我再次检查价格,结果我需要支付4179美元......

我没有意识到我需要支付这笔巨额资金来执行查询并从Google bigquery获取数据。

该项目仅用于研究,不用于商业目的。我想知道是否可以免收费用。我真的需要[Google Bigquery团队]的帮助。

非常感谢&最好的祝福, 莉莎

1 个答案:

答案 0 :(得分:18)

一年后更新:

请注意这种情况以来的一些重大进展:

  • 查询价格下降了85%。
  • GithubArchive现在正在发布日常和年度表 - 因此在开发查询时总是在较小的数据集上测试它们。

BigQuery定价基于查询的数据量。它的一个亮点是它可以轻松扩展,在几秒钟内从扫描几千兆字节到太字节。

线性定价是一个特征:我所知道的大多数(或所有?)其他数据库需要指数级更昂贵的资源,或者只是无法处理这些数据量 - 至少在合理的时间范围内。 / p>

也就是说,线性扩展意味着超过1兆字节的查询比超过1千兆字节的查询要贵1000倍。 BigQuery用户需要了解这一点并做出相应的计划。出于这些目的,BigQuery提供了“干运行”标志,允许人们在运行查询之前准确查看将要查询的数据量 - 并进行相应调整。

在这种情况下,WeiGong正在查询一个105 GB的表。十SELECT * LIMIT 10次查询将很快达到数TB的数据,依此类推。

有一些方法可以使这些相同的查询消耗更少的数据:

  • 而不是查询SELECT * LIMIT 10,而只调用您要查找的列。 BigQuery根据您要查询的列收费,因此使用不必要的列会增加不必要的成本。

例如,SELECT * ...查询105 GB,而SELECT repository_url, repository_name, payload_ref_type, payload_pull_request_deletions FROM [githubarchive:github.timeline]仅查询8.72 GB,使此查询的费用降低10倍以上。

  • 在寻找下载整个表时,使用tabledata.list而不是“SELECT *”。它是免费的。

  • Github存档表包含所有时间的数据。如果您只想查看一个月的数据,请对其进行分区。

例如,使用查询提取所有1月数据会留下仅91.7 MB的新表。查询这张桌子比大桌子便宜一千倍!

SELECT *
FROM [githubarchive:github.timeline]
WHERE created_at BETWEEN '2014-01-01' and '2014-01-02'
-> save this into a new table 'timeline_201401'

结合这些方法,您可以从4000美元的账单到4美元的账单,获得相同数量的快速且富有洞察力的结果。

(我正在与Github档案馆的所有者合作,让他们存储月度数据,而不是一张单片表,以使这更容易)