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

GCP-PDE 練習問題 6|データの取り込みと処理

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

問題
あなたは、コンテンツのレコメンデーションをパーソナライズするために、ユーザーのクリックストリーム データを分析しています。データは継続的に到着し、セッション化(時間枠内でユーザーごとにクリックをグループ化すること)やユーザー アクティビティの集計などの変換を含めて、低レイテンシで処理する必要があります。毎秒数百万件のイベントを処理でき、遅れて到着するデータに対しても耐性のある、スケーラブルなソリューションを特定する必要があります。どうすればよいですか?

選択肢と解説

  • 1
    取り込みと保存に Firebase Realtime Database を使用し、処理と分析に Cloud Run functions を使用する。
  • 2
    取り込みと変換に Cloud Data Fusion を使用し、保存と分析に Cloud SQL を使用する。
  • ✓
    取り込みに Pub/Sub、処理に Apache Beam を使用した Dataflow、保存と分析に BigQuery を使用する。
  • 4
    取り込みに Cloud Storage、バッチ処理に Apache Spark を使用した Dataproc、保存と分析に BigQuery を使用する。

解説

【正解】C

【0からの解説】
①前提知識
・Pub/Sub:フルマネージドなメッセージング サービスです。送信側(パブリッシャー)と受信側(サブスクライバー)を疎結合にし、毎秒数百万メッセージ規模まで自動でスケールします。
・Dataflow:Apache Beam で書いたパイプラインを実行するフルマネージドなサービスです。ストリーミング処理では、ウィンドウ処理(固定・スライディング・セッション ウィンドウ)、ウォーターマーク(イベント時刻の観点で「どこまでデータが揃ったか」の推定)、トリガー、許容遅延(allowed lateness)といった仕組みで、遅れて到着したデータを正しい時間枠に反映できます。ワーカーは自動でスケールします。
・BigQuery:サーバーレスなデータ ウェアハウスです。ストリーミング書き込みしたデータを取り込み直後から SQL で分析できます。

②問題文の要件の整理
・データは継続的に到着し、低レイテンシで処理する(=ストリーミング処理)
・セッション化(ユーザーごとのクリックを時間枠でまとめる)と集計
・毎秒数百万件のイベントに対応できるスケーラビリティ
・遅延データへの耐性

③正解の理由
Pub/Sub → Dataflow → BigQuery は、Google Cloud におけるストリーミング分析の標準的な構成です。セッション化は Apache Beam の「セッション ウィンドウ」(ユーザーごとに、一定時間クリックが途切れるまでを 1 セッションとする)でそのまま実装でき、ウォーターマークと許容遅延・トリガーにより遅延データも正しいセッションや集計に反映されます。Pub/Sub と Dataflow はいずれも自動スケールするため毎秒数百万件にも対応でき、結果を BigQuery に書き込めばすぐに分析に使えます。

【誤りの選択肢】
A:Firebase Realtime Database は、モバイル / ウェブ アプリのクライアント間でデータをリアルタイムに同期するための JSON データベースで、大量イベントの取り込み基盤や分析用ストレージではありません(1 データベースあたりの同時接続数や書き込み数に上限があります)。Cloud Run functions(旧 Cloud Functions)はイベント単位のステートレスな処理で、ウィンドウやウォーターマーク、状態管理の仕組みがないため、セッション化や遅延データの扱いを自前で実装する必要があります。
B:Cloud Data Fusion は GUI でパイプラインを構築するマネージドなデータ統合サービスで、実行基盤は Dataproc(現 Managed Service for Apache Spark)のクラスタです。主にバッチ ETL 向けで、毎秒数百万件を低レイテンシで処理し遅延データを扱う用途では Dataflow に劣ります。また Cloud SQL はトランザクション処理(OLTP)向けのリレーショナル データベースで、毎秒数百万件の書き込みや大規模な分析にはスケールしません。
D:Cloud Storage にファイルを溜めてから Dataproc(現 Managed Service for Apache Spark)でバッチ処理する構成は、処理がファイル到着後の定期実行になるため「継続的に到着するデータを低レイテンシで処理する」要件を満たしません。クラスタ管理の運用負荷もあります。

【参考】
Pub/Sub とは
ストリーミング パイプライン | Cloud Dataflow
Dataflow の概要
← 練習問題 5練習問題 7 →
GCP-PDE の模擬問題集は全 200 問

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

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

GCP-PDE の無料公開問題

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