G-genの山田です。BigQueryの保存済みクエリ機能を使うと、クエリエディタで記述した SQL を保存して他のユーザーと共有することができます。SQL をプロジェクトにアップロードしようとした際に [プロジェクトにアップロードする] > [SQL クエリ] のメニューがグレーアウトして選択できない事象が起きました。この事象の原因と対処法を解説します。

事象
BigQuery のコンソール画面でクエリエディタを開き、SQL クエリをプロジェクトにアップロードしようとしたところ、以下の図のように [プロジェクトにアップロードする] > [SQL クエリ] のメニューがグレーアウトし、選択できない状態でした。

原因
原因は、BigQuery の保存済みクエリの仕様変更にあります。
従来の保存済みクエリは、Dataform を基盤とした新しい保存済みクエリへ移行される予定です。これは、2025年2月と6月に Google Cloud から「Transition from classic saved queries to new saved queries」という件名のメールで案内されています。この新しい保存済みクエリを利用するには、対象プロジェクトで Dataform API を有効化し、ユーザーに適切な IAM 権限を付与する必要があります。
今回の事象は、この Dataform API が有効になっていなかったために発生しました。
2025年6月現在、2025年3月に予定されていた移行は延期されており、サポート終了時期は公開されていません。2025年末までに新たな情報が更新される予定です。
対処法
概要
新しい保存済みクエリを使用するには以下の条件を満たしている必要があります。
- Dataform API の有効化
- IAM ロールが正しく設定されていること
Dataform API の有効化
SQL クエリをアップロードしたいプロジェクトで Dataform API が有効になっていることを確認します。Google Cloud コンソールで [API とサービス] > [ライブラリ] へ移動し、「Dataform API」を検索して有効化してください。
IAM ロールが正しく設定されていること
新しい保存済みクエリの閲覧や編集には、適切な IAM ロールが必要です。クエリは Dataform のリソースとして保存されるため、Dataform 関連の権限が付与されているか確認してください。
BigQuery の新しい保存済みクエリを操作するには、操作者アカウントがプロジェクトに対して以下の IAM ロールを持っている必要があります。
| 操作内容 | 必要なIAMロール(いずれか一つ) |
|---|---|
| クエリの作成 | roles/bigquery.jobUser)roles/dataform.codeCreator) |
| クエリの編集 | roles/bigquery.jobUser)roles/dataform.codeEditor) |
| クエリの表示 | roles/bigquery.jobUser)roles/dataform.codeViewer) |
- 参考 : 保存済みクエリを作成する - 必要な権限
クエリの移行
従来の保存済みクエリは、以下の公式ドキュメントを参考に、新しい保存済みクエリに移行することができます。2025年6月現在では、従来の保存済みクエリの廃止時期は未定ですが、早めの移行が推奨されます。
山田 剛史 (記事一覧)
クラウドソリューション部 クラウドサポート課
2025年6月にG-genに入社。IT基盤領域やグループウェアが得意。Google Workspace や Google Cloud を日々勉強中。
