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
20260323_データ分析基盤でGeminiを使う話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
yuichi
March 23, 2026
Technology
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20260323_データ分析基盤でGeminiを使う話
https://aiau.connpass.com/event/386555/
yuichi
March 23, 2026
More Decks by yuichi
See All by yuichi
20250219_一人データエンジニアだからこそ感じるアウトプットの重要性
1210yuichi0
0
730
20240621_フルリモート環境ざっくばらんにご紹介
1210yuichi0
0
1.2k
Other Decks in Technology
See All in Technology
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
2
730
Amazon EVS で VCF 9.0 / 9.1 のサポート開始まとめ
mtoyoda
0
310
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
0
120
大量データに対しても、生成AIを用いてリーズナブルにデータ加工をしたい!Databricksのai_queryについて調べてみた
kamoshika
1
210
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
140
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
340
AICoEでAIネイティブ組織への進化
yukiogawa
0
190
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
450
シンガポールで登壇してきます
yama3133
0
240
発表と総括 / Presentations and Summary
ks91
PRO
0
140
Network Firewallやっていき!
news_it_enj
0
160
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
150
Featured
See All Featured
Side Projects
sachag
455
43k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Code Reviewing Like a Champion
maltzj
528
40k
Site-Speed That Sticks
csswizardry
13
1.3k
Become a Pro
speakerdeck
PRO
31
6k
Marketing to machines
jonoalderson
1
5.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
880
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Transcript
データ分析基盤で Gemini を使う話 Yuichi 1210yuichi0 1210yuichi0 #GoogleAIMeetupOsaka
BigQuery の AI.GENERATE 関数とは 関数ファミリーとユースケース システムに組み込む際の設計ポイント 使ってみた感想 この10 分でわかること 2
/ 16
システムに溜まった大量のテキストデータ、どう扱っていますか? カスタマーレビューのネガポジを全件チェックしたい 人手でのラベリングはもう限界 ▶︎ 「全レコードをGemini で評価できたら?」 分析対象の抽出 評価・属性の付与 システムDB ⽣成AI
こんなニーズ、ありませんか? 3 / 16
BigQuery からVertex AI 経由でGemini を呼び出せる関数 BigQuery テーブル AI.GENERATE 関数 Vertex
AI Gemini 評価結果 型付き 1. SQL だけで完結 BigQuery の中で処理実行が完結する 2. 全件一括処理 テーブルの全レコードをGemini が1 行ずつ評価 3. 型付き出力 output_schema でSTRUCT 型として受け取れるので後続処理がシンプル AI.GENERATE 関数 とは 4 / 16
SQL だけで完結できる with base as ( select text_column, ai.generate( 'レビューから感情スコアと評価理由を分析して'
|| text_column, output_schema => 'score INT64, reason STRING' ) as ai_res from reviews ) select text_column, ai_res.score, ai_res.reason from base こんな結果が得られる レビュー文 score reason 「デザインが非常に洗練されていて… 初期設定に少し時間がかかったのが残念で す。 」 80 デザインは高評価だが、セットアップの難易度がマイナス 要因 「注文してから届くまでが遅すぎます… 二度と利用しません。 」 15 配送遅延・梱包の不満、リピート意向も低い 「コスパ最高です!この価格でこの機能性は文句なし。 」 95 価格・機能・操作性すべてにポジティブな評価 実際にやってみた 5 / 16
テキスト ⾮構造化 AI.GENERATE 関数 評価テーブル score 列など BI ダッシュボード ▶︎
ネガティブレビューの急増をすぐ検知できる ネガティブレビュー⽐率(⽉次推移) 1 ⽉ 2 ⽉ 3 ⽉ 4 ⽉ 5 ⽉ 6 ⽉ 50 45 40 35 30 25 20 15 10 5 0 ネガティブ率 (%) 4 月に急増 → アラートで即検知・対応できる AI ラベリング前は「なんとなく悪い気がする」で終わっていたものが、数値で追えるようになる ラベリング後のデータをBI ダッシュボードに繋げると 6 / 16
旧(ML.GENERATE_TEXT 関数) 出力は固定のJSON 文字列 型が不確定 → パース処理が必要 新(AI.GENERATE 関数) ai.generate(
prompt, output_schema => 'sentiment STRING, score INT64' ) → 指定した型のSTRUCT で返ってくる 対応型:STRING 、INT64 、FLOAT64 、BOOL 、ARRAY 、STRUCT 型付きで返ってくるから後処理が楽 7 / 16
SQL の中で、使用モデルを指定可能 select ai.generate( ~, endpoint => 'gemini-2.5-flash', 状況に応じたモデル選択 モデル
コスト 速度 おすすめ用途 gemini-2.5-pro 高 遅い 複雑な推論が必要な場合 gemini-2.5-flash 低 速い 通常の分類・ラベリング 分類・ラベリング用途なら flash で十分 モデルのライフサイクルは注視 用途に応じてGemini モデルを指定可能 8 / 16
汎用 関数 用途 AI.GENERATE 要約・翻訳・抽出・分類。output_schema で型指定 AI.GENERATE_TEXT テーブル→ テーブル。Claude 等も利用可
AI.GENERATE_TABLE 複数項目の構造化抽出 AI.GENERATE_BOOL/INT/DOUBLE 型を絞ったシンプル版 マネージド(軽量) 関数 用途 AI.IF WHERE / JOIN に直書き AI.SCORE スコアリング(内部最適化あり) AI.CLASSIFY ラベルリストを渡すだけ エンベディング 関数 用途 AI.EMBED テキスト/ 画像→ ベクトル AI.SIMILARITY 類似度スコア AI.SEARCH セマンティック検索 目的別に使い分けるAI 関数 9 / 16
with customer_reviews as ( select 101 as review_id, 'デザインが洗練されていて最高です!ただ、バッテリーの持ちがもう少し良ければ完璧でした。' as
review_text union all select 102, '期待外れ。動作が重すぎて使い物になりません。返品を検討しています。' union all select 103, '普通の製品です。可もなく不可もなくといったところ。' ) select review_id, ai.generate( concat('このレビューの感情を分析してください: ', review_text), output_schema => 'sentiment STRING, confidence_score FLOAT64, key_points ARRAY<STRING>', endpoint => 'gemini-2.5-flash' ).* from customer_reviews 非構造化テキストが型付きの構造化データに変わる。 sentiment 列でそのままBI のフィルタ・集計に使える id sentiment confidence_score key_points 101 mixed 0.95 [" 洗練されたデザイン", " バッテリーの持ち"] 102 negative 0.95 [" 期待外れ", " 動作が重すぎる", " 返品を検討"] 103 neutral 0.95 [" 普通の製品", " 可もなく不可もなく"] ユースケース①:レビュー感情分析 10 / 16
with user_comments as ( select 1 as comment_id, 'この記事、非常に参考になりました!ありがとうございます。' as
comment_text union all select 2, '【限定】スマホで月収100万円!?今すぐこちらのURLをクリック! http://example.com' union all select 3, 'この作者はアホなのか?レベルが低すぎて話にならない。' ) select comment_id, ai.generate( concat('このコメントがスパム・誹謗中傷・不適切な内容かどうか判定してください: ', comment_text), output_schema => 'is_anomalous BOOL, reason STRING, severity INT64', endpoint => 'gemini-2.5-flash' ).* from user_comments reason で判定根拠も取得。 severity でモデレーション優先度をBI 上に可視化できる id is_anomalous reason severity 1 false 肯定的なフィードバック。問題なし 0 2 true 高収入を謳いURL クリックを促す典型的なスパム 5 3 true 誹謗中傷・侮辱・攻撃的な言葉を含む 5 ユースケース②:異常コメント抽出 11 / 16
評価対象データのみ プロンプト管理テーブル ソーステーブル AI.GENERATE 関数 AI 評価ディメンションテー ブル ファクトテーブル BI
ダッシュボード 責務の切り出し プロンプト管理テーブル: プロンプトをSQL にハードコードせず、マスタとして管理 AI 評価ディメンションテーブル: AI の出力結果を格納するテーブルを独立 メリット: 後続のBI で「新しい評価項目を追加したい」という要望が出た際も、システム全体を作り直す ことなく、プロンプトや評価テーブルの拡張のみで柔軟に対応可能 データパイプラインに組み込む 12 / 16
AI.GENERATE 関数はトークン課金 — 全件再実行すると費用が跳ね上がる 既に評価済みのレコードはスキップ、新規分だけ実行する増分設計が必須 増分更新やBigQuery のWHERE 句で実現できる 実装の考え方 評価テーブルに結果が存在するレコードは処理対象から除外
定期バッチで1 日1 回実行するだけでコストを最小化 コスト最適化と増分更新 13 / 16
よかった SQL だけで完結。Python スクリプト不要 output_schema で型付き出力が想像以上に便利 flash でも分類精度は十分実用的 パイプラインに組み込んで定期実行できる 気をつけポイント
プロンプトが甘いと出力がブレる → 3 点セット(指示・フォーマット・判断基準)が必要 コストのトラッキングがわかりにくい 増分更新を最初から設計しておかないと後で痛い目を見る 生成AI が判定できないケースも許容する 実際に触れてみて 14 / 16
「AI.GENERATE 関数、使ってみませんか?」 SQL で全レコードをGemini で評価できる時代に 15 / 16
Thank you Yuichi 1210yuichi0 1210yuichi0