BigQuery × Vertex AI (Gemini) 連携完全ガイド

今後のデータ分析のトレンドは、膨大なログデータを単にLooker Studioで可視化するにとどまらない。生成AIを活用し、分析までを一気通貫させたデータパイプラインを構築することが重要となってくるだろう。

この一連の仕組みを構築するにあたり、Googleツールを採用する最大の強みは、すべての工程をGoogle製品の中で完結できる点にある。GA4、Search Console、BigQuery、Dataform、Vertex AI(Gemini)、Looker Studio、Google Sheets、Google Slidesといった各ツール間の連携は容易であり、自動更新を組み込むことでレポーティングからGeminiを活用した高度な分析までが自動化される。

本稿では、これらすべての工程を網羅するのではなく、その中核となる「BigQueryとVertex AIを接続(コネクト)する手順」に焦点を絞って解説する。

「Gemini」と「Vertex AI」の違いについて

Vertex AIはあまりまだ馴染の低い名称であるが、要はGeminiの知能(モデル)を持つプラットフォーム(基盤)がVertex AIとなる。なので、あまり細部の名称には拘らずにBigQueryとVertex AIを連携させることはBigQueryとGeminiを連携させることと同義と捉えておけばよい。

BigQuery×Vertex AI (Gemini) 連携手順

これから解説するステップは、BigQueryという「データの保管庫」と、Vertex AIという「AIの知能」を安全かつ確実に結びつけるためのロードマップとなる。

参考:Gemini モデルと AI.GENERATE_TEXT 関数を使用してテキストを生成する

ステップ1:必要なAPIの有効化

Google Cloud プロジェクトで以下のAPIを有効にする。

  • Vertex AI API
  • BigQuery Connection API

参考:Google Cloud プロジェクトで API を有効にする

ステップ2:外部接続(Connection)の作成

BigQueryが外部サービス(Vertex AI)と通信するための「専用トンネル」を作成。

  1. BigQuery コンソールの「+データを追加」ボタンをクリック。

    BigQueryにデータを追加する画面

  2. 「外部データソースへの接続」を選択。

  3. 外部データソースのタイプを選択。

  4. 表示されたパネルに、以下の接続情報を入力し、「接続を作成」をクリック。
    • 接続タイプ:「Vertex AI リモートモデル、リモート関数、BigQuery Omni」を選択。
    • 接続 ID: 任意の名前(例:gemini_connection)を入力。
    • リージョン: asia-northeast1 (東京) を推奨。

  5. 結果、コンソールに接続モデル(接続リソース)が開設。

    コンソールに接続モデルが開設された画面

ステップ3:権限(IAM)の設定

作成した「接続」には専用のサービスアカウントが紐付いているので、これにVertex AIを触る許可を与える。

  1. 作成した「接続」の詳細画面を開き、サービスアカウント ID( bqcx-xxxxxx@gcp-sa-bigquery-condel.iam.gserviceaccount.com のような形式)をコピー。
  2. 「IAM と管理」画面へ移動。
  3. 「アクセスを許可」をクリックし、コピーしたサービスアカウントを「新しいプリンシパル」として貼り付け。
  4. ロール:「Vertex AI ユーザー」を付与。

IAM権限設定画面1

IAM権限設定画面2

IAM権限設定画面3

ステップ4:リモートモデルの登録

BigQuery上で、GeminiをSQLから叩ける「モデル」として登録。作成するGeminiのモデルは以下のサイトから参照可能。

参考:最新の Gemini モデルに移行する

CREATE OR REPLACE MODEL `プロジェクトID.データセット名.モデル名`
REMOTE WITH CONNECTION `プロジェクトID.リージョン.接続ID`
OPTIONS (ENDPOINT = 'gemini-2.5-flash'); 

クエリが正常に処理されると、指定したデータセットの中にモデルが作成させる。

POINTデータセットは、SQLを実行する前にあらかじめ作成しておく必要がある。BigQueryの CREATE MODEL 文は、既存のデータセットの中に「モデル」というオブジェクトを作成する命令なので、入れ物となるデータセットが存在しないとエラーになる。また「データセットの場所(リージョン)」と「外部接続(Connection)の場所」は、必ず一致させる必要がある。
  1. CREATE OR REPLACE MODEL …

    意味: 「新しいモデルを作成する、もし既にあれば上書き(作成し直し)する」という宣言。
    ポイント: ここで指定する名前(gemini_model)が、今後SQLでAIを呼び出す時の「宛先」となる。
    構成: `プロジェクトID.データセット名.モデル名` の順で記述。

  2. REMOTE WITH CONNECTION …
    意味: 「このモデルはBigQueryの中にあるデータではなく、外部(Vertex AI)にある脳を使い、そのための通信経路(接続)はこれを使ってください」という指定となる。
    ポイント: ここには、ステップ2で作った「接続ID」を以下の形式で入力。
     形式: `プロジェクトID.リージョン.接続名`
     今回の場合: `プロジェクトID.asia-northeast1.gemini_connection`
     注意: projects/ や /locations/ などの階層文字は除き、.(ドット)で繋ぐのがSQLのルール。
  3. OPTIONS (ENDPOINT = ‘…’)
    意味: 「Geminiのどのバージョンを使いますか?」という指定。

ステップ5:SQLでGeminiを実行

ここで実際に登録したGeminiモデルへ直接プロンプト(指示)を投げる。このクエリは、BigQueryのデータとVertex AIのGeminiを実際に結びつけ、結果を抽出するコードとなる。今回は単純な検証のためのクエリとなるが、GA4やSearch ConsoleのテーブルをGeminiに分析させることで、活用用途は無限に広がるといってもよい。

SELECT
  ml_generate_text_llm_result AS ai_response,
  ml_generate_text_status AS status
FROM
  ML.GENERATE_TEXT(
    MODEL `プロジェクトID.analytics_gemini.gemini_model`,
    (SELECT '森田ひかるについて知っていることを教えてください' AS prompt),
    STRUCT(
      0.2 AS temperature,
      TRUE AS flatten_json_output
    )
  );

FROM
  ML.GENERATE_TEXT(
    MODEL `プロジェクトID.analytics_gemini.gemini_model`,
  • ML.GENERATE_TEXT:「AI(Gemini)にテキストを作らせる」という専用の関数。
  • MODEL …:ステップ4で登録した「リモートモデル」の名前を指定
(SELECT '森田ひかるについて知っていることを教えてください' AS prompt),
  • (SELECT … AS prompt): Geminiへの指示書(プロンプト)。
POINT列名を必ず prompt という名前にする必要がある。Geminiはこの名前の列を「命令(入力)」として認識するため。
STRUCT(
      0.2 AS temperature,
      TRUE AS flatten_json_output
    )
  • temperature (0.2)
    0.0〜1.0で指定。
    0.2は「真面目・正確」寄りの設定。事実に基づいた分析をしたい場合に適している(逆に、物語を作らせたい時は0.8以上にする)。
  • flatten_json_output (TRUE)
    TRUEにすることで、AIからの複雑な返答(JSON形式)を自動的にバラして、1行目の ml_generate_text_llm_result というシンプルな列に格納される。これがないと、SQLで結果を取り出すのが非常に面倒になる。

関連記事

BigQueryからスプレッドシートのデータを連携

BigQueryでJavaScript UDFを活用

BigQueryのテーブル関数(TVF)で複雑な分析SQLを構築

おすすめ記事

最近の記事
おすすめ記事
  1. BigQuery × Vertex AI (Gemini) 連携完全ガイド

  2. 【初期設定】GA4の測定IDをGTMに設定する手順

  3. GA4 × Looker Studio テンプレートの最高峰

  1. 【GA4SQL】ランディングページの次ページ遷移・直帰率をBigQueryから取得

  2. Looker Studio「データの抽出」でクエリコスト削減

  3. 【GTM】ページ遷移(特定のページ経由)のトリガーを作成しタグを発火させる手順

PAGE TOP