模擬問題集 › GCP-PDE › 練習問題 11

GCP-PDE 練習問題 11|分析のためのデータの準備と利用

Professional Data Engineer・無料公開(全 200 問中 15 問を無料公開中)

問題
あなたの小売企業は、BigQuery の分析費用を懸念しています。同社では、店舗 ID とリアルタイムの売上高について同じ集計を必要とするクエリを複数実行しています。分析費用を最小限に抑え、より速く結果を返す最適なソリューションを実装する必要があります。どうすればよいですか?

選択肢と解説

  • 1
    繰り返し使われる集計を含む新しいテーブルを CSV ファイルから作成し、他のクエリがそれを参照して処理を高速化できるようにする。
  • ✓
    繰り返しの計算を最小限に抑えるために、マテリアライズド ビューを作成する。
  • 3
    主キーと外部キーによる結合の高速化を使用して、ライブデータに対するクエリの結合を高速化する。
  • 4
    パーティショニングを活用して、読み取るバイト数を最小限に抑える。

解説

【正解】B

【0からの解説】
①前提知識:BigQuery のマテリアライズド ビューは、集計などのクエリ結果をあらかじめ計算して保存しておく「事前計算済みのビュー」です。ベーステーブルが更新されると BigQuery がバックグラウンドで自動的に増分更新します。また、前回の更新以降にベーステーブルへ追加された変更(差分)があっても、保存済みの結果と差分を組み合わせて常に最新の結果を返します。さらに「スマート チューニング」により、ベーステーブルに対して書かれたクエリでも、マテリアライズド ビューで答えられる部分は自動的にビューを使うよう書き換えられます。事前計算済みの小さな結果を読むため、スキャン量(オンデマンド料金の課金対象)とスロット消費が減り、応答も速くなります。
②要件の整理:(1) 複数のクエリが「店舗 ID ごとのリアルタイムの売上高」という同じ集計を繰り返している、(2) 分析費用の最小化、(3) より速い結果、(4) 「リアルタイム」なので最新データを反映し続ける必要がある。
③正解の理由:同じ集計をマテリアライズド ビューにしておけば、毎回生データを全件スキャンして集計し直す必要がなくなり、費用と時間の両方を削減できます。自動更新と差分の組み合わせにより最新性も保たれるため、リアルタイムの売上高という要件にも合致します。繰り返し計算される集計の最適化として最も適した機能です。

【誤りの選択肢】
A:CSV ファイルから作った集計テーブルはその時点のスナップショットにすぎず、売上が変わるたびに手作業や独自のジョブで作り直す必要があります。リアルタイムの売上高を反映できず、更新の運用負荷もかかります。
C:BigQuery の主キー・外部キー制約(強制はされない制約)は、クエリ オプティマイザが不要な結合を省略したり結合順序を最適化したりするための情報として使われます。結合の効率化には役立ちますが、同じ集計を毎回計算し直すこと自体は避けられず、繰り返し計算による費用を抑える根本的な対策にはなりません。
D:パーティショニングは日付などで分割したテーブルの一部だけを読むことで読み取りバイト数を減らす有効な手法ですが、同じ集計の繰り返し計算はなくなりません。リアルタイムの集計では最新のパーティションを毎回集計し直すことになり、事前計算した結果を再利用できるマテリアライズド ビューほどの削減効果は得られません。

【参考】
マテリアライズド(実体化)ビューの概要
マテリアライズド ビューを使用する
主キーと外部キーを使用する
← 練習問題 10練習問題 12 →
GCP-PDE の模擬問題集は全 200 問

本番形式の練習テスト 4 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

GCP-PDE の模試を受ける料金プランを見る

GCP-PDE の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15