はじめに
BigQueryを仕事で最近いじっていまして、ちょっとハマったのでそれについてのTipsです。
前提
BigQuery上で実行したクエリは、宛先テーブルというものが指定でき、クエリの結果を指定したテーブルに保存することができます。
以下のような「クエリの設定」というところから指定が可能です。
問題
あるときBigQueryのウェブコンソールでクエリを実行していたのですが、以下のようにクエリの設定を表示しても宛先テーブルの項目がなくなってしまいました。
原因
こちらのドキュメントに書いてありました。
DDL または DML クエリを使用している場合:
Cloud Console で、[処理を行うロケーション] または [リージョン] を選択します。処理を行うロケーションは、宛先テーブルを作成する DDL または DML クエリに必要です。
従来の BigQuery ウェブ UI では、[Destination table] を空白のままにします。
試しに使っていた変数宣言の時に使用するdeclare
文などのDDL(データ定義言語)を使用していたことが原因でした。まだサポート外ということなのでしょうか。
DMLの解説はこちら
https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language?hl=ja
DDLの解説はこちら
https://cloud.google.com/bigquery/docs/reference/standard-sql/data-definition-language?hl=ja
結論
BigQueryのウェブUIでDDL(データ定義言語)やDML(データ操作言語)を使用すると、宛先テーブルが指定できなくなるので、テーブル指定が必要な場合は使用しないようにするしかなさそう
まだデータ分析周りは素人なので、誤りなどあれば指摘いただければ幸いです。最後までご覧いただきありがとうございました。