セクション4 基礎:分析のためのデータ準備と使用 📘
このファイルは 📘 基礎レベル。BI/可視化・ML準備・データ共有の「概念」と「サービスの役割」を理解することがゴールです。 設計判断やトレードオフは 02_応用.md で扱います。
4.1 可視化のためのデータ準備
整えたデータをダッシュボードやレポートで「見える化」する工程です。速く・安く・安全に見せることが目的。「BIツールへの接続」「事前計算による高速化」「アクセス制御」が三本柱です。
① BIツール:Looker と Looker Studio
GCPの可視化ツールは大きく2つ。用途と規模で使い分けます(試験頻出の対比)。
| 観点 | Looker | Looker Studio(旧 Data Studio) |
|---|---|---|
| 位置づけ | エンタープライズBIプラットフォーム | 軽量なダッシュボード/レポートツール |
| 料金 | 有償(ライセンス) | 基本無料(Studio Pro は有償) |
| データモデル | LookML で一元的にモデル定義(セマンティックレイヤー) | レポート単位で個別に接続・定義 |
| 指標の一貫性 | 全社で共通定義(信頼できる単一の真実) | レポートごとにばらつきやすい |
| ガバナンス | 強い(バージョン管理・権限・監査) | 弱め(手軽さ優先) |
| 典型用途 | 全社共通のメトリクス・組込み分析・データアプリ | アドホックな可視化・小規模レポート・共有 |
全社で指標を統一・ガバナンス重視 ──► Looker(LookMLでモデル化)
手軽に無料でダッシュボードを作る ──► Looker Studio
覚え方:Looker は「モデル化された信頼できる指標を全社で」。Looker Studio は「手軽に無料で可視化」。
② BI Engine:BigQuery のインメモリ高速化
BI Engine は BigQuery 専用のインメモリ分析アクセラレータ。よく使うデータをメモリにキャッシュし、ダッシュボードのクエリをサブ秒で返します。
- BIツール(Looker / Looker Studio / 対応サードパーティ)からの反復的なクエリを高速化
- 仕組みは透過的:クエリは普通に BigQuery に投げるだけで、対象データがメモリに乗っていれば自動的に高速化
- 課金は確保した**メモリ容量(GB単位の予約)**に対して発生
[BIツール] → クエリ → [BigQuery]
│
BI Engine が対象データを
インメモリにキャッシュ → サブ秒応答
③ マテリアライズドビュー(Materialized View)
集計・結合の結果を事前計算して保存しておくビュー。クエリのたびに再計算しないので速く・安くなります。
| 種類 | 実体 | 特徴 |
|---|---|---|
| 通常のビュー | 保存しない(クエリの別名) | 毎回もとのテーブルを全計算。最新だが遅い/高い |
| マテリアライズドビュー | 結果を保存(自動更新) | 事前計算済みで高速・低コスト。差分のみ自動更新 |
- ベーステーブルの変更を 増分(差分)で自動的に反映するため、手動更新は不要
- スマートチューニング:もとのテーブルへのクエリでも、最適なら自動的にマテリアライズドビューを使ってくれる
- 主に**集計(SUM/COUNT/GROUP BY)**を高速化する用途
④ フィールドの事前計算
レポート表示のたびに重い計算をすると遅くなります。あらかじめ計算して持っておくのが基本。
- 事前計算の手段:マテリアライズドビュー、スケジュールドクエリで集計テーブルを定期生成、Looker の LookML で計算項目(measure/dimension)を定義
- 「ダッシュボードが遅い」→ 表示のたびに巨大テーブルを集計している、が典型原因
⑤ 可視化のためのセキュリティ
「誰に・どのデータを見せるか」を制御します。BigQuery は段階的な粒度でアクセス制御できます。
| レベル | 仕組み | 例 |
|---|---|---|
| データセット/テーブル | IAM ロール | このデータセットを閲覧できるのは誰か |
| 列レベル | ポリシータグ(Dataplex のタクソノミー) | 機密列(給与・SSN)を特定の人にだけ見せる |
| 行レベル | 行レベルセキュリティ(Row-level security) | 営業担当者は自分の地域の行だけ見える |
| 値のマスキング | 動的データマスキング | 列は見えるが中身は *** やハッシュで隠す |
- Cloud DLP(Sensitive Data Protection):PII(氏名・クレカ番号など)を検出・分類・マスキング/トークン化するサービス。可視化前にPIIを発見・保護する。
- これらはもとデータを複製せずにアクセスを制御できるのが利点(詳細は 02_応用.md)。
4.2 AI・ML のためのデータ準備
データを「分析」だけでなく「予測」にも使います。GCPではSQLだけでMLできる BigQuery ML と、本格的なMLOpsの Vertex AI の2つが軸です。
① 特徴量エンジニアリング・学習・サービング
MLは「特徴量を作る → 学習する → 予測を提供(サービング)する」の流れ。それぞれの準備を BigQuery で完結できます。
| 工程 | 内容 | BigQuery での手段 |
|---|---|---|
| 特徴量エンジニアリング | 生データを予測に効く形へ加工(正規化・エンコード・集約) | SQL変換、TRANSFORM 句、ML.FEATURE_* 関数 |
| 学習(Training) | モデルを作る | CREATE MODEL 文 |
| 評価(Evaluation) | 精度を測る | ML.EVALUATE |
| サービング(Serving / 推論) | 予測する | ML.PREDICT(バッチ)、Vertex AI でオンライン推論 |
TRANSFORM句:学習時の前処理をモデル内に保存し、予測時に同じ変換を自動適用(学習/予測の前処理ズレ=training-serving skew を防ぐ)
② BigQuery ML(BQML):SQLだけで機械学習
SQLの CREATE MODEL 文だけでモデルを作成・予測できる仕組み。データをBigQueryの外に出さずに済みます。主要なモデル種別:
| モデル種別 | タスク | 典型用途 |
|---|---|---|
| 線形回帰(Linear regression) | 回帰(数値予測) | 売上・需要などの連続値予測 |
| ロジスティック回帰(Logistic regression) | 分類 | 解約予測・スパム判定(2値/多値分類) |
| k-means | クラスタリング(教師なし) | 顧客セグメンテーション |
| 行列分解(Matrix factorization) | レコメンド | 商品・コンテンツの推薦 |
| 時系列 ARIMA_PLUS | 時系列予測 | 売上・在庫の将来予測(季節性・休日対応) |
| Boosted tree(XGBoost) | 分類/回帰 | 表形式データで高精度が欲しいとき |
| Random forest | 分類/回帰 | 表形式データ・頑健な予測 |
| DNN(ディープニューラルネット) | 分類/回帰 | 非線形で複雑なパターン |
| AutoML Tables | 分類/回帰 | モデル選定を自動化したいとき |
| インポート/リモートモデル | 推論 | TensorFlow等の既存モデルや Vertex AI のモデルを呼ぶ |
数値を予測 ─────────────► 線形回帰
Yes/No・カテゴリを分類 ──► ロジスティック回帰 / Boosted tree
グループに分ける ────────► k-means
時系列の将来を予測 ──────► ARIMA_PLUS
おすすめを出す ──────────► 行列分解(Matrix factorization)
覚え方:「連続値=線形回帰」「分類=ロジスティック回帰/表形式で高精度なら Boosted tree」「教師なしのグループ化=k-means」「時系列=ARIMA_PLUS」「推薦=行列分解」。
③ BigQuery ML と Vertex AI の役割
| 観点 | BigQuery ML | Vertex AI |
|---|---|---|
| 操作 | SQL | Python/SDK・コンソール・パイプライン |
| 対象者 | データアナリスト/SQLユーザー | MLエンジニア/データサイエンティスト |
| データ移動 | 不要(BQ内で完結) | 必要に応じてエクスポート |
| 得意領域 | 表形式データの素早いモデル化 | 本格的なMLOps・カスタム学習・大規模サービング |
| MLOps | 限定的 | パイプライン・モデル管理・モニタリング・Feature Store |
SQLで手早く・BQ内で完結 ──────────► BigQuery ML
本格MLOps・カスタムモデル・運用 ──► Vertex AI
- Feature Store(Vertex AI):特徴量を一元管理・再利用し、学習と推論で一貫した特徴量を提供
- BQML で作ったモデルを Vertex AI に登録して、オンライン推論やモニタリングに繋ぐこともできる(両者は連携可能)
④ 非構造化データの埋め込み(Embeddings)と RAG 準備
2024年の改訂で追加された新トピック。テキスト・画像などの**非構造化データを「意味のベクトル」に変換(埋め込み=embedding)**し、類似検索やLLMの回答補強に使います。
- 埋め込み(Embeddings):テキスト/画像を高次元の数値ベクトルに変換した表現。意味が近いものはベクトルも近い。
- Vector Search(ベクトル検索):埋め込み同士の近傍検索。「意味が似ているものを探す」。
- RAG(Retrieval-Augmented Generation=検索拡張生成):質問に関連する社内ドキュメントを検索して取り出し、その内容をLLMに渡して回答させる手法。LLMの知識不足やハルシネーションを抑える。
RAG の準備フロー(BigQuery で完結できる):
① 非構造化データ(ドキュメント等)を BigQuery / GCS に取り込む
② ML.GENERATE_EMBEDDING で埋め込みベクトルを生成
(Vertex AI の埋め込みモデルをリモートモデルとして呼ぶ)
③ ベクトルを保存し、必要ならベクトルインデックスを作成
④ 質問を埋め込み → VECTOR_SEARCH で近いドキュメントを検索
⑤ 取り出した文脈を LLM(ML.GENERATE_TEXT)に渡して回答生成
- BigQuery では
ML.GENERATE_EMBEDDING(埋め込み生成)、VECTOR_SEARCH(近傍検索)、CREATE VECTOR INDEX(高速化)でこの流れをSQLで実現できる - 本格的な低レイテンシのベクトル検索が必要なら Vertex AI Vector Search(旧 Matching Engine)を使う
4.3 データの共有
作ったデータや分析結果を、社内の別チームや社外パートナーと安全に共有する工程です。「コピーして配る」のではなく「アクセスを許可する」のが現代的。
① 共有ルールの定義
何を・誰に・どこまで共有するかを最初に決めます。
- アクセス制御:IAMで「閲覧のみ」「特定データセットのみ」を付与
- 粒度の制御:行/列レベルセキュリティ、承認済みビューで見せる範囲を絞る
- PII保護:共有前に DLP でマスキング/トークン化
② 承認済みビュー(Authorized View)
もとのテーブルへのアクセス権を与えずに、ビューの結果だけを共有できる仕組み。
[元テーブル(機密)] ← 利用者は直接アクセス不可
│
承認済みビュー(必要な列・行・集計だけ)
│
[利用者] ← ビューだけ見える
- 「アナリストには集計結果だけ見せ、生の個人情報テーブルは触らせない」の定番解答
- 関連:承認済みデータセット、**承認済みルーティン(UDF)**でも同様の委譲ができる
③ Analytics Hub:BigQuery のデータ共有
組織の内外でデータをコピーせずに共有するための仕組み。データ提供者(Publisher)がリスティングを公開し、利用者(Subscriber)がリンクされたデータセットとして自分のプロジェクトから参照します。
[提供者] データ交換(Exchange)に
リスティングを公開(元データはコピーされない)
│ サブスクライブ
▼
[利用者] 自プロジェクトに「リンクされたデータセット」が出現
→ 自分のクエリから普通に参照(課金は利用者側のクエリに)
- データはコピーされない:提供者のデータをその場で参照する(重複・同期ズレ・転送コストを回避)
- 社内のドメイン間共有、社外パートナーへの提供、公開データセットの配布に使える
- アクセスは IAM で管理。提供時に承認済みビュー等で見せる範囲を絞れる
④ レポート・可視化の共有
- Looker Studio:レポートのURL共有・埋め込み・スケジュール配信
- Looker:ダッシュボードの共有、他アプリへの組込み分析(embedded analytics)、配信
- 共有時ももとのデータのアクセス制御(行/列レベル)が効くように設計する
📌 このセクションの基礎まとめ
- 可視化は Looker(全社モデル)/ Looker Studio(手軽) + BI Engine(インメモリ高速化)/ マテリアライズドビュー(事前計算)
- セキュリティは**列(ポリシータグ)・行(行レベル)・値(マスキング)・PII(DLP)**の多層
- ML準備は BigQuery ML(SQLで完結)vs Vertex AI(本格MLOps)。モデル種別を用途で選ぶ
- 埋め込み・Vector Search・RAG は2024改訂の新トピック(
ML.GENERATE_EMBEDDING→VECTOR_SEARCH) - 共有はコピーしない:承認済みビュー(社内委譲)と Analytics Hub(組織間)
次は 02_応用.md で設計判断とトレードオフを学びます。