Article Outline
疑似中間テーブル作成 - too many subqueries or query is too complex 回避
TOC
Collection Outline
[BIGQUERY] 分析入門
[BIGQUERY] SQL
■ 句(節)
■ 演算子
■ BigQuery特有
■ 関数
- approx_count_distinct() - 集計近似
- coalesce()
- countif()
- extract()
- greatest()
- ifnull()
- last_day()
- lead() / lag()
- left() / right()
- lower()
- nullif()
- parse_date()
- row_number() - 番号付
- safe_cast()
- split()
- st_distance()
- nth_value()
- first_value() / last_value()
- percentile_()
データ型
■ エラー
- error
- Resources exceeded during query execution: Not enough resources for query planning - too many subqueries or query is too complex
[BIGQUERY] ADVANCE
[BIGQUERY] ML
[BIGQUERY] DS
■ DS100ノック
■
[BIGQUERY] GA
|| Resources exceeded during query execution: Not enough resources for query planning - too many subqueries or query is too complex
Resources exceeded during query execution: Not enough resources for query planning - too many subqueries or query is too complex
よく出るこいつ。
WITH句を多用していたり、ビューの多段が10個近くになってくるとこのエラーがよく発生することが多いです*2。
参考にしたすごい人も言っている。
|| 疑似的中間テーブル作成
| テンポラリーテーブル作成
CREATE TEMP TABLE {テーブル名} ({処理});
| クエリ
-- 中間テーブル(疑似的入れ物)
create temp table EXTRACTED (
COMMIT string
, TREE string
);
-- 中間テーブルに入れ込むデータ
insert into EXTRACTED
select COMMIT, TREE from `bigquery-public-data.github_repos.sample_commits` limit 10;
-- 中間テーブルにアクセス
select * from EXTRACTED;
| うれしいこと
- サブクエリ多様で、処理落ちすることを回避できる。(エラー回避)
- エラー回避で、都度中間テーブルとして保存していたデータを作成しなくて済む。(データプランク化回避)
- 一時テーブルであるため、BigQueryが削除をやってくれる。 作っては後で消して、を手作業でしていた。(消し忘れて上司に「ゴミはゴミ箱へ!」とよく言われたもの...)