【发布时间】:2018-08-30 23:56:36
【问题描述】:
这是我针对公共数据集运行的 SQL 查询:
SELECT
package,
COUNT(*) count
FROM (
SELECT
REGEXP_EXTRACT(line, '(.*)') package,
id
FROM (
SELECT
SPLIT(content, '\n') line,
id
FROM
[bigquery-public-data:github_repos.contents]
WHERE
sample_path LIKE '%.bashrc' OR sample_path LIKE '%.bash_profile')
GROUP BY
package,
id )
GROUP BY
1
ORDER BY
count DESC
LIMIT
400;
这是错误信息:
错误:超出配额:您的项目超出了免费查询的配额 扫描的字节数。有关详细信息,请参阅 https://cloud.google.com/bigquery/troubleshooting-errors
bigquery-public-data:github_repos.contents 对我的配额来说太大了。
bigquery-public-data:github_repos.sample_contents 对于我正在分析的内容来说太小了。
有没有办法指定查询可以使用多少配额?例如,如果我有 1TB 配额,有没有办法针对 github_repos.contents 运行此查询(这将消耗 2.15TB),但在消耗 1TB 后停止处理?
【问题讨论】:
-
这是不可能的 AFAIK。对于免费套餐来说,桌子太大了。
-
@GrahamPolley 在 WHERE 子句中匹配更少的文件会减少消耗的配额吗?对此数据集的任何查询会消耗 2.15TB 吗?
-
不,因为它既没有分区也没有集群。
-
@GrahamPolley 好的,所以针对此数据集的任何可能查询都是 2.15TB?
-
否,取决于您在查询中访问的列。但是因为这个表主要是由“内容”列组成的,所以任何访问它的查询都会很大。
标签: sql google-cloud-platform google-bigquery