Share
Embed
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
データの可視化後の課題である「データの解釈」を自動で行えるAIサービスの紹介とBigQuery Remote FunctionとLooker Studioでスクラッチで開発した事例を解説します
CUEBiC Inc.
June 24, 2025
Transcript
39 slides
-
5 ツールを導入したい 予算をとってからこ い!! 予算を取りたい 実績が必要だ!! PoCをしたい!! 成果が出るかわからな い施策やるな!! だったらPoC
させろよ!! 予算を取れ!! データ人材なら一度は経験する流れ ※あくまで個人の主張です。所属企業とは関係がございません -
7 ツールを導入したい 予算をとってからこ い!! 予算を取りたい 実績が必要だ!! すでに作った!! 効果は出ている!! すぐ内製で作るな! 代替ツールも検討!!
だったら最初から導入 させろよ!! いますぐ検証!! こうなる確率はグッと上がる -
9 Gemini in BigQueryのデータキャンバス機能 ▷自然言語を使用してデータの検索、結合、クエリ、可視化を行うことができる機能 BigQuery Studio上でのみ実行可能 Google Cloud 「BigQuery
データ キャンバスで分析する」 https://cloud.google.com/bigquery/docs/data-canvas?hl=ja 検索 クエリ 可視化 選択したテーブルに SQL クエリを生成する メタデータから該当テーブルを検索 可視化またはプロンプトで可視化結果の編集 結合 テーブルに検索結果を追加 BigQuery周辺でインサイト抽出できるサービスは? -
10 BigQuery単体でもVertex AIのGeminiモデルを呼び出せる モデルの作成 CREATE OR REPLACE MODEL `your_project.dataset.gemini_model` OPTIONS
( MODEL_TYPE = 'TEXT_GENERATION', MODEL_PATH = 'projects/your_project/locations/us-central1/publishers/google/models/gemini-1.0-pro', REMOTE_MODEL = TRUE ); SELECT * FROM ML.GENERATE_TEXT( MODEL `your_project.dataset.gemini_model`, STRUCT('売上の上位 20位は?' AS prompt) ); ML.GENERATE_TEXT経由でモデルを呼び出し Google Cloud 「Gemini モデルと ML.GENERATE_TEXT 関数を使用してテキストを生成する」 https://cloud.google.com/bigquery/docs/generate-text-tutorial-gemini?hl=ja BigQuery周辺でインサイト抽出できるサービスは? -
11 Gemini in Lookerを使用することで、GeminiがSQLを自動生成し、 LookerのExploreを叩き、自然言語で要約・説明・指示生成が可能 https://cloud.google.com/gemini/docs/looker/overview?hl=ja Tableau AIを活用したTableau Pulseを使うことでサジェストに対 してデータのインサイト抽出が可能
https://www.salesforce.com/analytics/tableau/pulse/ Looker Studio Proに契約することで、Gemini in Lookerを使用可能 BI✖AI的なのはすでにあり、課金すれば実現もできそう BIツールでインタラクティブにインサイト抽出できるサービスは? -
12 まとめると Tableau Pulse Gemini in Looker Gemini in BigQuery
ML_GENERATE_TEXT 主な機能 KPI変化の検知/通知 Tableau上で自然言語で探索 Looker上で自然言語で探索 BQ UI上でSQL自動生成・要約 GeminiをSQLから直接呼び出し 使える場所 Tableau Cloud/Desktop Looker(旧Looker)UI BigQueryコンソール上限定 BigQuery SQL(Anywhere) モデル Einstein GPT(Salesforce) Gemini (Vertex AI 統合) Gemini (UI統合) Gemini (Vertex AI Preview) UIで自然言語入力 🔺(自由入力不可) ✅ ✅ ❌ 自然言語 → SQL生成 ❌ ✅ ✅ ✅ 自然言語 → 要約・説明 🔺(自由入力不可) ✅ ✅ ✅ Looker Studio 等から呼べる? ❌ 🔺(Proのみ可) ❌ ✅ Remote Functionで叩ける? ❌ ❌ ❌ ✅ API呼び出し ❌ ❌ ❌ ✅ -
13 良い所取りしたい Tableau Pulse Gemini in Looker Gemini in BigQuery
ML_GENERATE_TEXT 主な機能 KPI変化の検知/通知 Tableau上で自然言語で探索 Looker上で自然言語で探索 BQ UI上でSQL自動生成・要約 GeminiをSQLから直接呼び出し 使える場所 Tableau Cloud/Desktop Looker(旧Looker)UI BigQueryコンソール上限定 BigQuery SQL(Anywhere) モデル Einstein GPT(Salesforce) Gemini (Vertex AI 統合) Gemini (UI統合) Gemini (Vertex AI Preview) UIで自然言語入力 🔺(自由入力不可) ✅ ✅ ❌ 自然言語 → SQL生成 ❌ ✅ ✅ ✅ 自然言語 → 要約・説明 🔺(自由入力不可) ✅ ✅ ✅ Looker Studio 等から呼べる? ❌ 🔺(Proのみ可) ❌ ✅ Remote Functionで叩ける? ❌ ❌ ❌ ✅ API呼び出し ❌ ❌ ❌ ✅ -
16 Cloud functions BigQuery Remote function Looker Studio custom Query
Tableau Data Source UPDATE Cloud functions Tableau custom SQL Data Source UPDATE BigQuery Remote function RESPONSE RESPONSE 「技術的に」こういうことができるはずだ・・・ -
BigQueryのリモート関数とは? 17 BigQueryから外部関数(クラウド関数など)を呼び出せる仕組み 端的にいうと:SQLからCloud Run functionsなどを呼び出すことが可能 もっというと:SQLでAPIの戻り値を擬似的に受け取ることが可能 制約:利用には外部接続コネクションの事前設定が必要 Cloud functions
BigQuery Remote function 😈魔改造へのルートはここにあったのです😈 💀無計画に試行すると悲惨なことになるのでご利用は計画的に💀 -
23 しょうがないので力技を使います 解決策:Google ColaboratoryからBigQuery Connection APIで作成 # BigQuery Connection API
のサービスクライアントを作成 service = build('bigqueryconnection', 'v1', credentials=credentials) # 接続の親パスと接続名(※マスク済み) project_id = "your-project-id" location = "asia-northeast1" connection_id = "your-connection-id" parent = f"projects/{project_id}/locations/{location}" # 接続の本体(今回は cloudResource タイプ) body = { "friendlyName": "BQ Remote Function Connection", "cloudResource": {} } # 外部接続の作成 response = service.projects().locations().connections().create( parent=parent, connectionId=connection_id, body=body ).execute() -
27 しょうがないのでこちらもColab経由で付与 解決策:Google ColaboratoryからCliコマンドを実行 # サービスアカウントで gcloud CLI を初期化 import
os os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = bq_json_file # gcloud の初期化 !gcloud auth activate-service-account --key-file="$GOOGLE_APPLICATION_CREDENTIALS" # Cloud Run サービスへの IAM 権限付与(※マスク済み) !gcloud run services add-iam-policy-binding your-service-name \ --member="serviceAccount:[email protected]" \ --role="roles/run.invoker" \ --region=asia-northeast1 \ --project=your-project-id -
28 そこからはサクサク進み BigQuery Remote functions(リモート関数)✖Cloud Run functions CREATE OR REPLACE
FUNCTION `project_id.dataset.remote_function_test`(input STRING) RETURNS STRING REMOTE WITH CONNECTION `project_id.asia-northeast1.bq_remote_functions` OPTIONS (endpoint = 'https://asia-northeast1-project_id.cloudfunction s.net/test', max_batching_rows = 0); plies}) 外部接続関数 Cloud Run functionsエンドポイント Cloud functions BigQuery Remote function Looker Studio custom Query Data Source UPDATE RESPONSE -
29 そこからはサクサク進み import functions_framework from flask import jsonify @functions_framework.http def
hello_http(request): request_json = request.get_json(silent=True) calls = request_json.get("calls", []) replies = [] for row in calls: name = row[0] if row else "World" replies.append(f"Hello {name}!") return jsonify({"replies": replies}) Cloud functions -
30 そこからはサクサク進み Looker Studio✖Remote functions(リモート関数) Remote functions(リモート関数) Cloud functions BigQuery
Remote function Looker Studio custom Query Data Source UPDATE RESPONSE Looker Studio custom Query -
33 リモート関数を呼ぶときの注意点 1レコード単位で評価される 💀危険:数千レコード以上をSELECT/UPDATEするような処理内容 🉐推奨:更新対象を絞るか、テーブル関数(TVF)内で配列でCALLする SELECT id, remote_func(col) AS result
FROM my_table SELECT x.id, x.result FROM UNNEST( remote_func_batch( ARRAY( SELECT AS STRUCT id, col FROM my_table ) ) ) AS x -
34 展望など EX.Gemini in BigQueryのデータキャンバスの拡張 ▷コンソール以外からの参照を可能に EX.メタデータ変更時のモデルの性能比較 ▷スクラッチの場合との性能の差分を見ながら個別最適が可能に Looker Studio
custom Query Data Source UPDATE ポテンシャル -
35 こんな妄想も・・・ BIツール同士で5・7・5の掛け合いとか大喜利させたりとか Tableau Looker Studio custom Query Data Source
UPDATE Tableau custom SQL Data Source UPDATE -
36 まとめ BigQuery周辺でインサイト抽出できるサービスは? ▷データキャンバスやML.GENERATE_TEXTなどが存在する BIツールでインタラクティブにインサイト抽出できるサービスは? ▷Gemini in LookerやTableau Pulseなどが存在する スクラッチでBIツールでインタラクティブなUIを実現したい場合は?
▷BigQueryのリモート関数を使用する 🉐SQLでリモート関数をCALLすることでCloud Run functionsや 生成AIモデルによるBigQueryのデータリソースの解析が可能に リモート関数を使用する際に注意することは? ▷権限、エラー、実行回数に気を付ける ⚠用法・容量を守ってPoCを進めましょう -
38 参考文献/出典 Classmethod 「知らないと危ないかも? BigQuery リモート関数の意外な落とし穴」 https://dev.classmethod.jp/articles/gcp-bigquery-remote-functions-caution/ 株式会社カホエンタープライズ 「よくわかる GoogleCloud
#3:BigQuery Remote Functionsを使って分かち書きと感情分析する」 https://note.com/kaho_enterprise/n/ned5d68f78aae 伊藤忠テクノソリューションズ( CTC) 「Looker Studio、BigQuery、Vertex AI を利用した生成 AIチャットボット搭載ダッシュボード」 https://www.ctc-g.co.jp/solutions/google/blog/8.html