問題集 セクション4:分析のためのデータ準備と使用
Google Cloud「Professional Data Engineer」試験のセクション4対策問題集です。 2024年改訂の試験範囲(埋め込み / Vector Search / RAG の新トピックを含む)に準拠しています。
使い方
- 1問ずつ自分で答えを決めてから
▶ 正解と解説を開いてください。 - 解説は必ず最後まで読むこと。正解の理由だけでなく「各誤答がなぜ違うか」を理解すると、本番のひっかけに強くなります。
- 目標正答率は80%(15問中12問以上)。届かない場合は関連リンクの学習資料に戻って復習しましょう。
問題数・形式
- 全15問(シナリオ形式中心)
- 単一選択(4択):12問 / 複数選択:3問(Q5・Q9・Q14)
- 難易度内訳:📘 基礎 4問 / 🔧 応用 7問 / 🎯 発展 4問
- カバー範囲:可視化(Looker / Looker Studio / BI Engine / マテリアライズドビュー / 低速クエリ最適化)、セキュリティ(行・列レベル / マスキング / DLP)、ML準備(BigQuery ML / モデル選択 / Vertex AI)、埋め込み / Vector Search / RAG、データ共有(Analytics Hub / 承認済みビュー)
Q1 📘 単一選択
あなたは小売企業のデータアナリストです。チームのために、売上データを手早く可視化する無料のダッシュボードを作りたいと考えています。全社共通の指標定義やバージョン管理されたガバナンスは今回は不要で、まずは素早くレポートを共有することが優先です。最も適したツールはどれですか。
- A. Looker(LookML でセマンティックレイヤーを定義)
- B. Looker Studio
- C. BigQuery BI Engine
- D. Vertex AI Workbench
▶ 正解と解説
正解:B
解説: Looker Studio(旧 Data Studio)は基本無料で、レポート単位で素早くダッシュボードを作成・共有できる軽量ツールです。「無料」「手早く」「全社ガバナンスは不要」という条件にすべて合致します。
- ❌ A:Looker は有償のエンタープライズBIで、LookML による全社共通の指標定義・ガバナンスが強みです。今回は不要な上にコストもかかるため過剰です。
- ❌ C:BI Engine は可視化ツールではなく、BigQuery のクエリをインメモリで高速化するアクセラレータです。単体でダッシュボードは作れません。
- ❌ D:Vertex AI Workbench はML開発用のマネージドノートブック環境で、BIダッシュボードの用途ではありません。
📖 関連:01_基礎.md の「① BIツール:Looker と Looker Studio」
Q2 📘 単一選択
あるグローバル企業では、各部門が独自にダッシュボードを作った結果、「売上」「アクティブユーザー数」などの指標が部門ごとに微妙に異なる定義で計算され、経営会議で数字が食い違う問題が発生しています。指標を一元的に定義し、全社で「信頼できる単一の真実」として共有できるBIプラットフォームはどれですか。
- A. Looker Studio
- B. Looker(LookML)
- C. Cloud DLP
- D. スケジュールドクエリ
▶ 正解と解説
正解:B
解説: Looker は LookML というセマンティックレイヤーで指標(measure/dimension)を一元的にモデル定義します。どのダッシュボードでも同じ計算ロジックが使われるため、全社で一貫した「信頼できる単一の真実」を提供でき、指標の食い違いを解消できます。
- ❌ A:Looker Studio はレポート単位で個別に接続・定義するため、まさに今回問題になっている「指標がばらつく」リスクを持ちます。
- ❌ C:Cloud DLP は機密データ(PII)の検出・分類・マスキングを行うセキュリティサービスで、指標の統一とは無関係です。
- ❌ D:スケジュールドクエリは集計テーブルを定期生成する仕組みで、可視化レイヤーの指標定義を統一するものではありません。
📖 関連:03_要点と暗記.md の「Looker vs Looker Studio」
Q3 📘 単一選択
BigQuery 上のデータを参照する Looker Studio ダッシュボードがあります。同じデータに対して多くのユーザーが繰り返し似たクエリを投げており、表示が数秒かかって遅いと不満が出ています。データモデルやクエリ自体は変えずに、透過的にサブ秒応答へ高速化したいです。最も適した手段はどれですか。
- A. BI Engine のメモリ予約を有効化する
- B. テーブルを Cloud Storage にエクスポートして CSV で配布する
- C. ロジスティック回帰モデルを作成する
- D. 承認済みビューを作成する
▶ 正解と解説
正解:A
解説: BI Engine は BigQuery 専用のインメモリ分析アクセラレータで、よく使うデータをメモリにキャッシュして反復的なBIクエリをサブ秒で返します。クエリやモデルを書き換える必要はなく透過的に効くため、「反復クエリのレイテンシ低減」という要件に最適です。
- ❌ B:CSVエクスポートは鮮度が失われ、ガバナンスも崩れるアンチパターンです。可視化の高速化策ではありません。
- ❌ C:ロジスティック回帰はML(分類)のモデルで、ダッシュボードの高速化とは無関係です。
- ❌ D:承認済みビューはアクセス制御(権限委譲)の仕組みで、高速化が目的ではありません。
📖 関連:01_基礎.md の「② BI Engine:BigQuery のインメモリ高速化」
Q4 🔧 単一選択
あるダッシュボードは、数十億行の注文テーブルに対して毎回 GROUP BY で売上を集計しています。集計ロジックは固定で、元テーブルは継続的に新しい行が追記されます。毎回のフルスキャン集計が遅くコストも高いため、再計算を避けつつ最新の集計結果を低コストで返したいです。最も適した打ち手はどれですか。
- A. BI Engine を有効化する
- B. 通常のビュー(論理ビュー)を作成する
- C. マテリアライズドビューを作成する
- D.
SELECT *のクエリをスケジュール実行する
▶ 正解と解説
正解:C
解説: マテリアライズドビューは集計・結合の結果を事前計算して保存し、ベーステーブルの変更を増分(差分)で自動反映します。「重い集計を繰り返す」「再計算を避けたい」「最新性も保ちたい」という条件にぴったりで、計算量とコストを大きく削減できます。
- ❌ A:BI Engine は「アクセスの高速化(インメモリキャッシュ)」が役割で、集計の事前計算(計算量の削減)とは目的が違います。重い集計そのものを減らす本問では、マテビューが主役です(両者は併用も可能)。
- ❌ B:通常のビューは結果を保存せず、クエリのたびに元テーブルを全計算します。最新ではあっても遅く高いままで、問題は解決しません。
- ❌ D:
SELECT *は列指向の利点を捨てスキャン量を増やすアンチパターンで、集計の事前計算にもなりません。
📖 関連:02_応用.md の「BI高速化の選択:BI Engine vs マテリアライズドビュー vs 事前集計」
Q5 🔧 複数選択(2つ選択)
「BigQuery のダッシュボードが遅い」と相談を受けました。原因切り分けと改善のために、設計判断として適切なものを2つ選んでください。
- A. クエリ実行グラフ(実行の詳細)や
INFORMATION_SCHEMA.JOBSで、どのステージがスキャンバイト/スロット時間を消費しているか特定する - B. 日付で絞れるテーブルなら日付パーティションを設定し、パーティション列でフィルタしてスキャン量を削減する
- C. パーティション列を関数で加工してから
WHEREでフィルタし、柔軟性を上げる - D. すべてのクエリで
SELECT *を使い、必要なときに列を取り出せるようにする
▶ 正解と解説
正解:A と B
解説: 低速クエリの診断はまず「どこが重いか」を実行グラフや INFORMATION_SCHEMA.JOBS(スキャンバイト数・スロット時間・実行時間)で特定するのが定石です(A)。スキャン過多が原因なら、日付パーティションを設定してパーティション列でフィルタすればスキャン範囲を絞れます(B)。
- ❌ C:パーティション列を関数で加工してフィルタすると、パーティションプルーニングが効かなくなり、かえってフルスキャンになる典型的アンチパターンです。
- ❌ D:
SELECT *は列指向ストレージの利点を捨て、不要な列までスキャンしてコストと時間を増やします。必要な列だけに絞るのが原則です。
📖 関連:02_応用.md の「低速クエリのトラブルシューティング(頻出)」
Q6 🔧 単一選択
従業員テーブルには salary(給与)という機密列があります。経理部のメンバーだけがこの列の値を閲覧でき、それ以外のアナリストはこの列にそもそもアクセスできず、クエリに含めるとエラーになるようにしたいです。最も適した仕組みはどれですか。
- A. 動的データマスキング
- B. 行レベルセキュリティ
- C. ポリシータグによる列レベルセキュリティ
- D. Cloud DLP のスキャンジョブ
▶ 正解と解説
正解:C
解説: 列レベルセキュリティは Dataplex のタクソノミーで定義したポリシータグを列に付与し、権限のないユーザーはその列にアクセスできなくします(クエリに含めるとエラー)。「機密列をそもそも触らせない」という要件に合致します。
- ❌ A:動的データマスキングは列自体は見え、値だけが
***などに置き換わります。クエリは成功し集計もできるため、「アクセス不可・エラーにする」という今回の要件とは異なります。 - ❌ B:行レベルセキュリティは「どの行を見せるか」を制御するもので、特定の列を隠す用途ではありません。
- ❌ D:Cloud DLP は機密データの検出・分類が主な役割で、アクセス制御そのものは担いません。
📖 関連:02_応用.md の「列レベルセキュリティ vs 動的マスキング の違い」
Q7 🔧 単一選択
顧客テーブルにメールアドレス列があります。BIユーザーには「この列が存在すること」と「ドメイン別の集計」はさせたいのですが、生のメールアドレスの値そのものは見せたくありません。権限のないユーザーがクエリしても列は表示され、値だけがマスクされる状態が理想です。最も適した仕組みはどれですか。
- A. 列レベルセキュリティ(ポリシータグでアクセス拒否)
- B. 動的データマスキング
- C. 承認済みビューで列を完全に除外する
- D. 行レベルセキュリティ
▶ 正解と解説
正解:B
解説: 動的データマスキングは、列は見せたまま値だけを *** やハッシュに置き換えます。クエリは成功し列も存在として見えるため、「値は隠すが集計はさせたい」という要件にぴったりです。
- ❌ A:列レベルセキュリティは権限がないと列ごとアクセス不可(エラー)になります。「列は見せて集計はさせたい」本問では強すぎます。これが列レベルセキュリティとマスキングの頻出ひっかけです。
- ❌ C:承認済みビューで列を除外すると、その列の存在自体が見えなくなり、ドメイン別集計もできません。
- ❌ D:行レベルセキュリティは行の出し分けを制御するもので、列の値をマスクする用途ではありません。
📖 関連:03_要点と暗記.md の「可視化/共有のセキュリティ」
Q8 🔧 単一選択
SaaS企業が、過去の契約・利用ログをもとに「今後解約しそうな顧客(Yes/No)」を予測したいと考えています。データはすべて BigQuery にあり、データアナリストがSQLだけで素早くモデルを作って予測したいです。データをBigQueryの外に出すことは避けたいです。最も適したアプローチはどれですか。
- A. データを Vertex AI にエクスポートし、カスタム学習ジョブで PyTorch モデルを訓練する
- B. BigQuery ML で
CREATE MODELを使い、ロジスティック回帰モデルを作成する - C. k-means クラスタリングモデルを BigQuery ML で作成する
- D. ARIMA_PLUS モデルを BigQuery ML で作成する
▶ 正解と解説
正解:B
解説: 「解約する/しない」は二値分類なのでロジスティック回帰が適切です。さらに「データはBQにある」「SQLだけで素早く」「データを外に出したくない」という条件は BigQuery ML の得意領域そのものです。CREATE MODEL でSQLだけで学習・予測が完結します。
- ❌ A:PyTorch のカスタム学習は Vertex AI の領域で、データのエクスポートが必要になり「SQLだけ・データを外に出さない」という要件に反します。SQLで済むのに Vertex AI を持ち出すのは頻出のひっかけです。
- ❌ C:k-means は教師なしクラスタリングで、正解ラベル(解約有無)がある分類問題には不適です。
- ❌ D:ARIMA_PLUS は時系列予測用で、二値分類のタスクには使いません。
📖 関連:02_応用.md の「BigQuery ML を選ぶか Vertex AI を選ぶか」
Q9 🔧 複数選択(2つ選択)
BigQuery ML を使って、用途に応じたモデルを選びます。次の組み合わせのうち、タスクとモデルの対応として適切なものを2つ選んでください。
- A. 季節性のある日次売上の3か月先を予測 → ARIMA_PLUS
- B. ラベルのない顧客データを購買傾向でグループ分け → k-means
- C. 季節性のある日次売上の将来予測 → 線形回帰(Linear regression)
- D. 顧客をグループ分け(ラベルなし) → ロジスティック回帰
▶ 正解と解説
正解:A と B
解説: 時系列の将来予測(季節性・休日効果を自動考慮)には ARIMA_PLUS が最適です(A)。正解ラベルのないグループ化は教師なしの k-means が適切です(B)。
- ❌ C:時系列の将来予測を線形回帰でやるのは典型的なひっかけです。季節性のある時系列は ARIMA_PLUS を選びます。
- ❌ D:ロジスティック回帰は教師あり(正解ラベルが必要)の分類モデルです。ラベルのないグループ化には使えず、k-means が正解です。
📖 関連:02_応用.md の「BigQuery ML モデル選択の決定木(頻出)」
Q10 🔧 単一選択
BigQuery ML でモデルを学習させた際、学習データに対しては良い精度でした。しかし ML.PREDICT の前処理を別途SQLで書き直して運用したところ、本番の予測精度が大きく劣化しました。原因は学習時と予測時の前処理がずれる training-serving skew です。最も適した恒久対策はどれですか。
- A. 予測時にも同じ前処理SQLを手作業でコピーして貼り付ける運用を徹底する
- B. モデル作成時に
TRANSFORM句へ前処理を記述し、ML.PREDICT時に自動適用させる - C. Vertex AI Feature Store にすべての生データをそのまま保存する
- D. 予測のたびにモデルを再学習する
▶ 正解と解説
正解:B
解説: TRANSFORM 句に前処理を書くと、学習時の変換ロジックがモデル内に保存され、ML.PREDICT 時に同じ変換が自動適用されます。前処理を一元化できるため、学習と推論のズレ(training-serving skew)を構造的に防げます。
- ❌ A:手作業でのコピー運用はまさに二重管理であり、ズレの原因そのものです。恒久対策になりません。
- ❌ C:Feature Store は特徴量の一貫管理・再利用に有効ですが、「生データをそのまま保存する」だけでは前処理のズレは解決しません。また本問はBQML内で完結でき、
TRANSFORM句が最も直接的です。 - ❌ D:予測のたびの再学習はコストが高く、前処理ズレの原因に対する対策にもなっていません。
📖 関連:02_応用.md の「特徴量エンジニアリングと training-serving skew」
Q11 🎯 単一選択
カスタマーサポート部門が、社内に蓄積された大量の過去問い合わせ文書をもとに、LLM で回答案を自動生成したいと考えています。汎用LLMは社内固有の最新情報を知らず、誤った回答(ハルシネーション)をします。再学習やファインチューニングのコストはかけたくありません。BigQuery 上で実現する最も適したアプローチはどれですか。
- A.
ML.GENERATE_EMBEDDINGで文書をベクトル化し、VECTOR_SEARCHで関連文書を取得してML.GENERATE_TEXTに文脈として渡す(RAG) - B. ロジスティック回帰で回答カテゴリを分類する
- C. すべての問い合わせ文書を LLM のプロンプトに毎回全文貼り付ける
- D. k-means で問い合わせをクラスタリングしてからレポートを作る
▶ 正解と解説
正解:A
解説: これは RAG(検索拡張生成)の典型シナリオです。BigQuery では ML.GENERATE_EMBEDDING で文書を埋め込みベクトル化し、質問を埋め込んで VECTOR_SEARCH で意味的に近い文書を取得、その文脈を ML.GENERATE_TEXT に渡して回答を生成します。再学習せずに社内知識を反映でき、根拠も提示できます。
- ❌ B:ロジスティック回帰は分類モデルで、文書検索+生成による回答案作成には使えません。
- ❌ C:全文をプロンプトに貼り付けるのはコンテキスト長の制約・コスト・ノイズの面で非現実的です。関連文書だけを検索して渡す RAG が適切です。
- ❌ D:k-means のクラスタリングはグループ化であり、LLM による回答案生成の手段ではありません。
📖 関連:01_基礎.md の「④ 非構造化データの埋め込み(Embeddings)と RAG 準備」
Q12 🎯 単一選択
あるECサイトで、ユーザーが入力したフリーテキストの検索クエリに対して、キーワードの完全一致ではなく「意味的に似た」商品説明文を検索したいと考えています。さらに、大量の商品ベクトルに対して低レイテンシのオンライン検索を本番サービングとして提供する必要があります。最も適したアプローチはどれですか。
- A. BigQuery の
LIKE演算子でキーワード部分一致検索を行う - B. 商品説明を埋め込みベクトル化し、Vertex AI Vector Search(旧 Matching Engine)でオンライン近傍検索を提供する
- C. マテリアライズドビューで商品名の集計テーブルを作る
- D. Cloud DLP で商品説明をスキャンして分類する
▶ 正解と解説
正解:B
解説: 「意味的に似たものを探す」には埋め込み+ベクトル(近傍)検索が必要です。さらに「低レイテンシのオンライン検索を本番サービング」という要件があるため、大規模・低レイテンシに強い Vertex AI Vector Search が最適です。BQ内で分析的に行うなら VECTOR_SEARCH ですが、オンライン本番サービングでは Vertex AI が有利です。
- ❌ A:
LIKEはキーワードの文字列一致であり、意味的な類似は捉えられません。 - ❌ C:マテリアライズドビューは集計の事前計算であり、意味的類似検索とは無関係です。
- ❌ D:Cloud DLP は機密データの検出・分類が役割で、類似検索の手段ではありません。
📖 関連:02_応用.md の「埋め込み・Vector Search・RAG の設計」
Q13 🎯 単一選択
親会社が、分析結果のデータセットを別組織である子会社と共有したいと考えています。データを複製すると同期ズレ・転送コスト・ガバナンス劣化が問題になるため、コピーせずに共有したいです。子会社は自分のプロジェクトから普通にクエリできる必要があります。最も適した仕組みはどれですか。
- A. データセットを CSV にエクスポートして子会社に渡す
- B. 承認済みビューを作成して子会社に共有する
- C. Analytics Hub でリスティングを公開し、子会社がリンクされたデータセットとして参照する
- D. 子会社のプロジェクトにテーブルをコピーするスケジュールドクエリを組む
▶ 正解と解説
正解:C
解説: Analytics Hub は組織の内外でデータをコピーせずに共有する仕組みです。提供者がリスティングを公開し、利用者(子会社)は自プロジェクトに「リンクされたデータセット」として参照できます。コピー不要で同期ズレがなく、クエリ課金は利用者側になります。組織間共有の定番解答です。
- ❌ A:CSVエクスポートはコピーであり、同期ズレ・コスト・ガバナンス劣化を招くアンチパターンです。
- ❌ B:承認済みビューは主に同一組織内での権限委譲(元テーブルを触らせず結果だけ見せる)の手段です。別組織とのコピーレス共有には Analytics Hub が適切です。
- ❌ D:スケジュールドクエリでのコピーは、まさに避けたい「複製」そのもので、同期ズレとコストが発生します。
📖 関連:02_応用.md の「共有方法の選択:コピーしないのが原則」
Q14 🎯 複数選択(2つ選択)
大手金融機関のデータプラットフォームで、注文テーブルには顧客のメール・電話などのPIIが含まれます。このデータを社内外で安全に活用するための設計として、適切なものを2つ選んでください。
- A. 共有や可視化の前に Cloud DLP(Sensitive Data Protection)でPIIを検出・分類し、保護対象を把握する
- B. アナリストには元テーブルへの直接アクセス権を与えず、承認済みビューを通じて必要な列・行・集計だけを見せる
- C. アクセス制御そのものは Cloud DLP だけに任せ、IAM や行レベルセキュリティは設定しない
- D. PII を含むテーブルを各部署のプロジェクトに丸ごとコピーして配布し、各自で管理させる
▶ 正解と解説
正解:A と B
解説: Cloud DLP はPII(氏名・クレカ番号など)の検出・分類・マスキング/トークン化を担い、保護すべき対象を可視化前・共有前に把握できます(A)。承認済みビューは元テーブルへのアクセス権を与えずに、必要な列・行・集計結果だけを共有できる定番手段です(B)。
- ❌ C:Cloud DLP は検出・分類が主役で、アクセス制御そのものは担いません。アクセス制御は IAM・ポリシータグ(列レベル)・行レベルセキュリティが担当します。この混同は頻出のひっかけです。
- ❌ D:PIIテーブルの丸ごとコピー配布は、同期ズレ・コスト・ガバナンス劣化に加え情報漏洩リスクを高める重大なアンチパターンです。コピーせずアクセスを制御するのが原則です。
📖 関連:02_応用.md の「可視化セキュリティの設計(行・列・マスキング)」「Cloud DLP は検出・分類が主」
Q15 🔧 単一選択
ある地域別の販売ダッシュボードを、全国共通のレポートとして1つだけ用意したいです。ただし、各地域のセールスマネージャーがアクセスしたときには、自分の担当地域の行だけが見えるようにしたいです。レポートを地域ごとに複製したくはありません。最も適した仕組みはどれですか。
- A. 動的データマスキング
- B. 行レベルセキュリティ(Row-level security)
- C. ポリシータグによる列レベルセキュリティ
- D. 地域ごとに別々の Looker Studio レポートを手動で作成する
▶ 正解と解説
正解:B
解説: 行レベルセキュリティは、ユーザーの属性に応じて「どの行を見せるか」を行単位のフィルタで制御します。1つの共通テーブル/レポートのまま、各セールスマネージャーに自地域の行だけを表示でき、レポートの複製も不要です。
- ❌ A:動的データマスキングは列の値を隠す仕組みで、行の出し分けはできません。
- ❌ C:列レベルセキュリティは特定の列へのアクセスを制御するもので、地域別に行を絞る用途には使えません。
- ❌ D:地域ごとにレポートを手動で複製するのは、まさに避けたい運用であり、保守コストと指標のばらつきを招きます。行レベルセキュリティで1つに統合するのが正解です。
📖 関連:02_応用.md の「可視化セキュリティの設計(行・列・マスキング)」
自己採点
| 問 | 難易度 | 主テーマ | 形式 | あなたの正誤 |
|---|---|---|---|---|
| Q1 | 📘 基礎 | Looker Studio(手軽・無料) | 単一 | |
| Q2 | 📘 基礎 | Looker / LookML(全社指標) | 単一 | |
| Q3 | 📘 基礎 | BI Engine(反復クエリ高速化) | 単一 | |
| Q4 | 🔧 応用 | マテリアライズドビュー | 単一 | |
| Q5 | 🔧 応用 | 低速クエリ最適化 | 複数 | |
| Q6 | 🔧 応用 | 列レベルセキュリティ(ポリシータグ) | 単一 | |
| Q7 | 🔧 応用 | 動的データマスキング | 単一 | |
| Q8 | 🔧 応用 | BQML(ロジスティック回帰 / Vertex不要) | 単一 | |
| Q9 | 🔧 応用 | BQML モデル選択 | 複数 | |
| Q10 | 🔧 応用 | TRANSFORM 句 / skew | 単一 | |
| Q11 | 🎯 発展 | RAG(埋め込み→検索→生成) | 単一 | |
| Q12 | 🎯 発展 | Vector Search(Vertex AI) | 単一 | |
| Q13 | 🎯 発展 | Analytics Hub(組織間・コピー不要) | 単一 | |
| Q14 | 🎯 発展 | DLP / 承認済みビュー(多層防御) | 複数 | |
| Q15 | 🔧 応用 | 行レベルセキュリティ | 単一 |
- 正答数: ____ / 15
- 正答率: ____ %(目標80%=12問以上)
振り返りメモ
- 80%未満だった場合に復習する論点:
- BI Engine(アクセス高速化)とマテリアライズドビュー(計算の事前削減)の使い分け・併用可
- 列レベルセキュリティ(アクセス不可・エラー)と動的マスキング(値だけ隠す・集計可)の違い
- SQLだけ・データ移動回避なら BQML、MLOps/カスタム/オンライン推論なら Vertex AI
- 時系列予測=ARIMA_PLUS、ラベルなしグループ化=k-means
- 組織間共有はコピー不要の Analytics Hub、社内委譲は承認済みビュー
- Cloud DLP は検出・分類が主役(アクセス制御は IAM/ポリシータグ/行レベル)
- RAG の流れ:
ML.GENERATE_EMBEDDING→CREATE VECTOR INDEX→VECTOR_SEARCH→ML.GENERATE_TEXT