Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
Search
CUEBiC Inc.
June 24, 2025
Technology
3
340
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
データの可視化後の課題である「データの解釈」を自動で行えるAIサービスの紹介とBigQuery Remote FunctionとLooker Studioでスクラッチで開発した事例を解説します
CUEBiC Inc.
June 24, 2025
Tweet
Share
More Decks by CUEBiC Inc.
See All by CUEBiC Inc.
構造化すれば怖くない 画像検索から始める木を見て森に入る勉強法
cuebic9bic
2
370
〜可視化からアクセス制御まで〜 BigQuery×Looker Studioで コスト管理とデータソース認証制御する方法
cuebic9bic
3
330
〜基礎から発展まで〜 BigQuery×Looker Studio のクエリコスト削減方法!
cuebic9bic
3
220
Looker Studio×BigQuery×スプレッドシートで爆速プロトタイピングする方法!
cuebic9bic
2
180
Terraform Registryで公開されているTerraform Modulesが便利だった件
cuebic9bic
2
1.4k
CUEBiC 会社説明資料 デザイナー向け
cuebic9bic
0
3.4k
trocco第5回ユーザー会_troccoとAmazon Redshiftで挑んだコンテンツマーケティングの分析基盤構築
cuebic9bic
1
840
CUEBiC社のデジタルメディア事業を支えるデータ分析基盤の変遷
cuebic9bic
1
800
CUEBiC Presentation デザイナー採用イベント用
cuebic9bic
0
110
Other Decks in Technology
See All in Technology
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
380
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
290
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
2
330
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
20
6.8k
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
180
論文紹介:LLMDet (CVPR2025 Highlight)
tattaka
0
310
Lufthansa ®️ USA Contact Numbers: Complete 2025 Support Guide
lufthanahelpsupport
0
140
Beyond Kaniko: Navigating Unprivileged Container Image Creation
f30
0
130
asken AI勉強会(Android)
tadashi_sato
0
180
React開発にStorybookとCopilotを導入して、爆速でUIを編集・確認する方法
yu_kod
1
230
American airlines ®️ USA Contact Numbers: Complete 2025 Support Guide
airhelpsupport
0
360
SmartNewsにおける 1000+ノード規模 K8s基盤 でのコスト最適化 – Spot・Gravitonの大規模導入への挑戦
vsanna2
0
120
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
810
How STYLIGHT went responsive
nonsquared
100
5.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Six Lessons from altMBA
skipperchong
28
3.9k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
A Tale of Four Properties
chriscoyier
160
23k
Documentation Writing (for coders)
carmenintech
72
4.9k
Transcript
〜Looker Studioの限界を超える!〜 BigQueryのリモート関数で実現する Looker Studioのインタラクティブ化 株式会社キュービック テクノロジーエキスパートセンター Tech Lead/データエンジニア 尾﨑勇太
2025.06.24 開示範囲:公開ドキュメント 1
自己紹介 2 株式会社キュービック 役割:Tech Lead/データエンジニア 名前: 尾﨑 勇太(おざき ゆうた) 覚え方:尾崎豊(おざきゆたか)と一字違い
業務領域 「データに関わる全て」
よくあるモニタリングの課題 3 可視化はゴールではなくスタート・・・・ ・発散ベースの要件で収束しない ・玄人しか使えない ・誰が言ったか>利便性 ・浸透/定着に時間がかかる ・可視化と解釈できる人材育成は別問題 ・貢献利益が見えずらい
仕組み化で解決/軽減できないか? 4 共通項は「データの解釈」ができるかどうかという点 ・発散ベースの要件で収束しない ・玄人しか使えない ・誰が言ったか>利便性 ・浸透/定着に時間がかかる ・可視化と解釈できる人材育成は別問題 ・貢献利益が見えずらい
5 ツールを導入したい 予算をとってからこ い!! 予算を取りたい 実績が必要だ!! PoCをしたい!! 成果が出るかわからな い施策やるな!! だったらPoC
させろよ!! 予算を取れ!! データ人材なら一度は経験する流れ ※あくまで個人の主張です。所属企業とは関係がございません
6 そんな時は 隙間時間で爆速でミニマムで技術検証して もう作っちゃったんでとサジェストをし プロトタイプの導入実績を添える
7 ツールを導入したい 予算をとってからこ い!! 予算を取りたい 実績が必要だ!! すでに作った!! 効果は出ている!! すぐ内製で作るな! 代替ツールも検討!!
だったら最初から導入 させろよ!! いますぐ検証!! こうなる確率はグッと上がる
8 まずは調査から
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呼び出し ❌ ❌ ❌ ✅
LT内容 14 1.BigQueryのリモート関数を設定する 2.Looker StudioをWEB UI化する
15 BIから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 😈魔改造へのルートはここにあったのです😈 💀無計画に試行すると悲惨なことになるのでご利用は計画的に💀
18 よしあとは爆速で仕組み化す るだけだ!!
19 コンソール上にそれらしい箇所がない Google Cloud_リモート関数 https://cloud.google.com/bigquery/docs/remote-functions?hl=ja と思ったが・外部接続コネクションの設定箇所がない
20 28日後・・・・
21 背水の陣 登壇エントリーして、当日までに検証を終わらせる
22 時間がない・・・
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()
24 キタぁああああああああ
25 接続さえできるようになればこっちのもの リモート関数を作成する ・外部接続コネクション ・Cloud Run functionsのCALL リモート関数をLooker Studioから呼び出す ・カスタムクエリを設定
26 地味にハマったところ コネクション作成時にデフォルトで作成されるがサービスアカウントがいない Cloud Run functionsの起動権限を付与する必要があったが・・・
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
31 土台となる疎通確認までは成功!! 🎉🎉Looker Studio✖Remote functions(リモート関数)でWEB UI化🎉🎉 Looker Studio custom Query
32 リモート関数を呼ぶときの注意点 エラーになるとクエリの実行時間が停止しない 💀危険:いきなりLooker Studioなどから試行 🉐推奨:BigQueryのコンソール上から動作確認する
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を進めましょう
37 まなび 外部接続コネクションが作れなくて流れた時間:28日 外部接続コネクションを作れてからの検証時間:1時間 ダラダラ検証はダメ。決めてやり切る!!
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
39 ご清聴、ありがとうございました