
今後のデータ分析のトレンドは、膨大なログデータを単に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)と通信するための「専用トンネル」を作成。
- BigQuery コンソールの「+データを追加」ボタンをクリック。

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

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

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

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

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



ステップ4:リモートモデルの登録
BigQuery上で、GeminiをSQLから叩ける「モデル」として登録。作成するGeminiのモデルは以下のサイトから参照可能。
CREATE OR REPLACE MODEL `プロジェクトID.データセット名.モデル名`
REMOTE WITH CONNECTION `プロジェクトID.リージョン.接続ID`
OPTIONS (ENDPOINT = 'gemini-2.5-flash'); クエリが正常に処理されると、指定したデータセットの中にモデルが作成させる。
- CREATE OR REPLACE MODEL …
意味: 「新しいモデルを作成する、もし既にあれば上書き(作成し直し)する」という宣言。
ポイント: ここで指定する名前(gemini_model)が、今後SQLでAIを呼び出す時の「宛先」となる。
構成: `プロジェクトID.データセット名.モデル名` の順で記述。 - REMOTE WITH CONNECTION …
意味: 「このモデルはBigQueryの中にあるデータではなく、外部(Vertex AI)にある脳を使い、そのための通信経路(接続)はこれを使ってください」という指定となる。
ポイント: ここには、ステップ2で作った「接続ID」を以下の形式で入力。
形式: `プロジェクトID.リージョン.接続名`
今回の場合: `プロジェクトID.asia-northeast1.gemini_connection`
注意: projects/ や /locations/ などの階層文字は除き、.(ドット)で繋ぐのがSQLのルール。 - 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への指示書(プロンプト)。
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で結果を取り出すのが非常に面倒になる。

『Googleアナリティクス4 完全入門』 書籍販売中!