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