出題範囲
- Designing data processing systems
- Ingesting and processing the data
- Storing the data
- Preparing and using data for analysis
- Maintaining and automating data workloads
例題に挑戦
スキルサートのAIが生成した演習問題のサンプルです。アプリでは毎週新しい問題が追加されます。
例題1
大規模なモバイルゲームアプリにおいて、リアルタイムのユーザー行動ログを処理するパイプラインを設計しています。イベントは、ネットワーク不安定により最大で10分程度の遅延が発生する可能性があります。Dataflowを使用して、1分ごとの固定ウィンドウでイベント数を集計し、遅延して到着したデータについても正確に結果を更新したいと考えています。どのアプローチが最も適切ですか。
- Dataflowのグローバルウィンドウを使用し、10分間データが到着しなかった場合にのみサイド入力をトリガーとして集計を行う。
- Dataflowで固定ウィンドウを設定し、Watermarkの遅延許容値をゼロにして、遅延したデータはすべて破棄する。
- Cloud Storageにイベントを一度保存し、毎分実行されるCloud Functionsを使用してバッチ処理でBigQueryへロードする。
- Dataflowで固定ウィンドウを設定し、allowedLateness(許容される遅延時間)を10分に設定し、集計結果を累積的に出力するトリガーを構成する。
- Pub/Subの保持期間を10分以上に設定し、Dataflowのウィンドウ処理を使用せずにすべてのデータをメモリ内で管理する。
解答と解説を見る
正解: Dataflowで固定ウィンドウを設定し、allowedLateness(許容される遅延時間)を10分に設定し、集計結果を累積的に出力するトリガーを構成する。
正解は「Dataflowで固定ウィンドウを設定し、allowedLateness(許容される遅延時間)を10分に設定し、集計結果を累積的に出力するトリガーを構成する。」です。ストリーミング処理においてWatermark(水位標)よりも後に到着したデータ(遅延データ)を処理するには、allowedLatenessの設定が不可欠です。これにより、指定した期間内に到着した遅延データを破棄せずにウィンドウに関連付けることができます。また、トリガーを構成することで、遅延データ到着のたびに更新された集計結果を出力し、最終的な正確性を担保できます。他の選択肢のように遅延データを破棄したり、ウィンドウ処理を無視したりする方法では、リアルタイム性と正確性の両立が困難です。グローバルウィンドウは無期限のストリーム向けであり、固定時間枠の集計には不向きです。
例題2
あなたは数千台のIoTデバイスから送られてくる時系列センサーデータを保存するストレージソリューションを設計しています。要件として、毎秒10万件以上の高スループットな書き込みが必要であり、かつ特定のデバイスIDとミリ秒単位のタイムスタンプに基づいたスキャンクエリを低レイテンシで実行できる必要があります。最もコスト効率が良く、パフォーマンス要件を満たすサービスはどれですか。
- Cloud SQL (PostgreSQL)
- Cloud Bigtable
- BigQuery
- Cloud Storage
- Firestore
解答と解説を見る
正解: Cloud Bigtable
正解は「Cloud Bigtable」です。Cloud Bigtableは、毎秒数百万件の書き込みを処理できるスケーラビリティを備えた、フルマネージドのNoSQLワイドカラムデータベースです。特に、デバイスIDとタイムスタンプを組み合わせた行キーを設計することで、時系列データに対する範囲スキャンをミリ秒単位の低レイテンシで実行できます。Cloud SQLは高スループットな書き込みにおいてスケールの限界があり、Cloud Storageはランダムな読み取りや小規模な頻繁な書き込みには適しません。BigQueryは分析には優れていますが、ミリ秒単位の書き込み・読み取りレイテンシを保証するトランザクション的な用途には向きません。Firestoreは柔軟なクエリが可能ですが、これほどの大規模なスループットではBigtableの方がコスト効率と性能の面で優れています。
Professional Data Engineerの対策はアプリで
AIが毎週生成する新作問題・ランクマッチ・週次ランキング・AI診断で「続けられる」資格学習を。無料で始められます。