BigQueryにおけるクエリ管理手法の解説

記事タイトルとURLをコピーする

G-gen の菊池です。BigQuery においてクエリを保存・管理するための3つの手法(保存済みクエリ、スケジュールされたクエリ、BigQuery パイプライン)と、それぞれの特徴や確認方法について解説します。

はじめに

BigQuery では、作成した SQL クエリを再利用したり自動実行したりするために、複数の保存・管理方法が用意されています。

2026年3月現在、主に以下の手法が提供されていますが、それぞれ管理される場所や用途が異なるため、作成したはずのクエリが見当たらないといった混乱が生じることがあります。

  1. 保存済みクエリ
  2. スケジュールされたクエリ
  3. BigQuery パイプライン

当記事では、これらの違いと、それぞれのクエリが Google Cloud コンソールのどこに表示されるかを整理します。

なお BigQuery 自体の詳細な解説については、以下の記事も参照してください。

blog.g-gen.co.jp

保存済みクエリ

概要

保存済みクエリ(saved queries)は、クエリエディタで作成した SQL を Google Cloud コンソール上に保存し、自分自身での再利用やチームメンバーとの共有を可能にする機能です。

設定方法

クエリ エディタで SQL を記述後、ツールバーの [保存] > [クエリを保存] をクリックします。

クエリを保存

なお、プルダウンメニュー内にある「クエリ(従来)を保存」は旧来型の機能であり、バージョニングや他人への共有をすることができない保存方法です。現在では使用は推奨されません。

次に [クエリを保存] ダイアログで、クエリの名前を入力して、[保存] をクリックします。

クエリの名前を入力して保存

保存場所

Google Cloud のコンソールで BigQuery のページに移動します。[左ペインを開く] マークをクリックして、[エクスプローラ] タブをクリックします。

左ペインのエクスプローラタブ

プロジェクト名をクリックして開き、[クエリ] をクリックします。

保存済みクエリの表示

保存済みクエリの一覧が表示されます。

保存済みクエリの一覧

特徴・利点

保存済みクエリには、自動的なバージョニング機能が備わっています。保存を実行するたびに新しいバージョンが記録されるため、過去の履歴を遡って以前の構文を確認したり、特定の時点の状態を参照したりすることが可能です。

保存済みクエリのバージョン履歴

また、保存したクエリごとに固有のリンク(URL)を発行できる点も大きな利点です。共有相手に適切な Identity and Access Management(以下、IAM)権限を付与することで、クエリを安全かつ迅速にチームメンバーへ共有できます。

スケジュールされたクエリ

概要

スケジュールされたクエリ(scheduled queries)は、特定の SQL クエリを定期的(日次、週次、あるいはカスタムの間隔)に自動実行するための機能です。

なおスケジュールされたクエリは、バックエンドで BigQuery Data Transfer Service の仕組みを使用しているため、スケジュールを設定済みのクエリは BigQuery Data Transfer Service のジョブ一覧に表示されます。

設定方法

クエリ エディタで SQL を記述後、ツールバーの [スケジュール] をクリックします。

スケジュールをクリック

スケジュールされたクエリを設定する画面が表示されるので、名前や繰り返しの設定をして [保存] をクリックします。

スケジュールの設定

保存場所

コンソール左側のナビゲーションメニューにある [スケジュールされたクエリ] をクリックします。

スケジュールされたクエリの選択

スケジュールされたクエリの一覧が表示され、作成済みの設定一覧や実行履歴、実行ステータスを確認できます。

スケジュールされたクエリ一覧

特徴・利点

スケジュールされたクエリを利用することで、定期的なデータの集計や中間テーブルの更新といった定型処理を自動化できます。

クエリの実行結果を指定したテーブルに上書き、あるいは追記するように制御できるほか、実行完了時や失敗時にメール通知を送信する設定も可能です。

BigQuery パイプライン

概要

BigQuery パイプライン(BigQuery pipelines)は、複数のデータ処理ステップをワークフローとして統合管理する機能です。

内部的には Dataform を使用しており、データの依存関係を考慮した複雑な処理体系を Google Cloud コンソール上で直接構築できます。

設定方法

コンソール左側の [エクスプローラ] タブでプロジェクト名をクリックして開き、[パイプライン] をクリックします。

パイプライン一覧を開く

パイプラインの一覧が表示されます。[+パイプライン] をクリックして、パイプラインを新規作成します。

パイプライン一覧画面からの作成

あるいは、エディタペインのタブバーで [+] 記号の横にある 矢印マークをクリックし、[パイプライン] をクリックすることでも新規作成できます。

エディタペインからのパイプライン作成

パイプライン画面

新規作成したパイプラインの画面で、[タスクを追加] > [クエリ] をクリックします。

クエリを追加

クエリタスクが追加されるので、[クエリを編集] をクリックします。

クエリを編集

クエリタスクの編集画面が表示されるので、クエリタスク名を修正してクエリを記載したら、[クエリを保存] をクリックします。

クエリタスクの保存

保存場所

パイプラインで保存したクエリを確認するには、設定方法で開いたパイプライン一覧画面から、対象のパイプラインを選択します。

パイプライン選択

パイプラインの画面で確認したいクエリタスクをクリックすることで、クエリが表示されます。

パイプラインのクエリ確認
BigQuery パイプラインで作成されたクエリは、プロジェクト内の Dataform で管理されます。そのため、通常の [保存済みクエリ][スケジュールされたクエリ] の一覧には表示されません。

パイプラインのスケジュール実行は、 Dataform のワークフロー構成として管理されるため、[スケジュールされたクエリ] の一覧にも表示されません。

特徴・利点

BigQuery パイプラインの最大の特徴は、複数のタスク間における依存関係を視覚的に管理できる点です。先行する処理が成功した後に後続の処理を実行するといった、複雑なクエリやテーブル更新の前後関係をキャンバス上で直感的に構築できます。

パイプラインのクエリの依存関係

クエリが見つからない場合の確認フロー

作成したクエリがどの機能で作成されたかによって、確認すべき場所が異なります。以下の表を参考に、適切な場所を確認してください。

手法 コンソールの確認場所 主な用途
保存済みクエリ エクスプローラタブ > 保存済みクエリ SQL の断片や定型文の保存・共有
スケジュールされたクエリ ナビゲーションメニュー > スケジュールされたクエリ 単一クエリの定期的な自動実行
BigQuery パイプライン エクスプローラタブ > パイプライン 依存関係を持つ複雑な ETL 処理の管理

「パイプラインを使い始めたが、保存したはずのクエリが [保存済みクエリ] に表示されない」、「パイプラインでスケジュールを設定したが、 [スケジュールされたクエリ] に表示されない」という場合は、前述したコンソールの確認場所から BigQuery パイプライン の項目を確認してください。

BigQuery パイプラインは内部で Dataform を使用しており、 保存済みクエリやスケジュールされたクエリとは独立した管理体系になっています。管理される場所が異なる点に注意が必要です。

菊池 健太(記事一覧)

事業開発部クラウドサポート課。2024年7月より、G-genに入社。群馬出身のエンジニア。前職でLookerの使用経験はあるが、Google Cloudは未経験なので現在勉強中。