HOME/🔍 BigQuery/

🔍 疑似中間テーブル作成

Article Outline

BigQuery

|| よく出るコイツ

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 {テーブル名} ({処理});

| クエリ

-- EXTRACTED中間テーブル作成(疑似的入れ物)
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が削除をやってくれる。 作っては後で消して、を手作業でしていた。(消し忘れて上司に「ゴミはゴミ箱へ!」とよく言われたもの...)

|| REFERENCE