クイズの説明
Step 3「分析基盤の構築」で学んだ内容の理解度を確認します。全8問、80%(7問)以上正解で合格です。
問題
Q1. Snowflakeの「コンピュートとストレージの分離」の最大のメリットはどれですか?
- A) クエリの実行速度が常に速くなる
- B) ストレージの増加に関係なくコンピュートリソースを独立してスケールでき、コスト効率が向上する
- C) データの冗長性が排除される
- D) JOINが不要になる
答えを見る
正解: B
コンピュートとストレージの分離により、データ量が増えてもクエリに必要なコンピュートリソースだけを必要な時にスケールできます。ETL用の大きなウェアハウスは夜間のみ稼働させ、BI用の小さなウェアハウスは営業時間のみ稼働させるといった、ワークロード別の最適化が可能です。
Q2. データレイクが「データスワンプ」に陥る主な原因はどれですか?
- A) ストレージ容量が不足している
- B) メタデータ管理、データカタログ、アクセス制御が不十分なまま大量のデータを投入する
- C) Parquetフォーマットを使用している
- D) クラウドストレージを使用している
答えを見る
正解: B
データスワンプは、メタデータ管理やデータカタログがないまま大量の生データを投入し、「誰が、いつ、何のために」作ったデータかわからなくなった状態です。メダリオンアーキテクチャ(Bronze/Silver/Gold)の導入、データカタログの整備、明確なオーナーシップの定義が予防策です。
Q3. Delta Lakeがデータレイクに追加する最も重要な機能はどれですか?
- A) データの圧縮
- B) ACID トランザクション保証とスキーマエンフォースメント
- C) データの暗号化
- D) SQLクエリの実行
答えを見る
正解: B
Delta Lake(およびApache Iceberg/Hudi)は、データレイク上にACIDトランザクション、スキーマエンフォースメント、Time Travel、MERGE(upsert)などのDWH的な機能を追加します。これにより「レイクハウス」パターンが実現し、データの信頼性とガバナンスが向上します。
Q4. ディメンショナルモデリングにおけるSCD Type 2の特徴はどれですか?
- A) 変更時に既存レコードを上書きする
- B) 新しいレコードを追加し、有効期間(effective_from/to)で履歴を管理する
- C) 変更前の値を別カラムに保存する
- D) 変更を記録せず、常に最新値のみ保持する
答えを見る
正解: B
SCD Type 2は変更があるたびに新しいレコードを追加し、effective_from/effective_toの期間とis_currentフラグで履歴を管理します。Type 1は上書き(履歴なし)、Type 3は変更前カラム追加です。Type 2は顧客ティアの変遷など、分析で「その時点の状態」を参照する必要がある場合に使用します。
Q5. スタースキーマでファクトテーブルに「デジェネレイトディメンション」を含める理由はどれですか?
- A) ディメンションテーブルのサイズを小さくするため
- B) 独立したディメンションテーブルを作るほどの属性がなく、ファクトに直接保持する方が効率的な識別子を格納するため
- C) ファクトテーブルのパフォーマンスを向上させるため
- D) 正規化を適用するため
答えを見る
正解: B
デジェネレイトディメンション(例: 注文番号、トランザクションID、通貨コード)は、属性が少なくディメンションテーブルを作成するオーバーヘッドに見合わないため、ファクトテーブルに直接格納します。JOINの削減にも寄与します。
Q6. ClickHouseのMergeTreeエンジンでORDER BY句が重要な理由はどれですか?
- A) データの挿入順序を保証するため
- B) ソートキーに基づくデータの物理配置により、フィルタクエリのスキャン範囲を大幅に削減できるため
- C) トランザクションの分離レベルを設定するため
- D) データの重複を排除するため
答えを見る
正解: B
ClickHouseのMergeTreeはORDER BY句で指定したカラムの順にデータを物理的にソートして格納します。WHERE句でソートキーの先頭カラムを指定すると、インデックスグラニュールのスキップにより不要なデータブロックを読み飛ばせるため、大量データに対しても秒以下の応答が実現できます。
Q7. マテリアライズドビューのリフレッシュ戦略で「イベント駆動」方式が適しているのはどれですか?
- A) 定期的に全データを再集計する場合
- B) 特定のビジネスイベント(注文完了等)発生時にのみ更新が必要な場合
- C) 常に最新データが必要なリアルタイムダッシュボードの場合
- D) 大量のアドホッククエリに応答する場合
答えを見る
正解: B
イベント駆動リフレッシュは、特定のビジネスイベント発生時にのみマテリアライズドビューを更新する方式です。不要な再計算を避けられるため効率的です。定期的な全再集計はperiodic方式、リアルタイム要件にはストリーミング集計が適しています。
Q8. Kappa ArchitectureとLambda Architectureの違いとして正しいのはどれですか?
- A) Kappa は バッチ処理のみ、Lambda はストリーム処理のみを使用する
- B) Kappa は全てをストリーム処理で統一し、Lambda はバッチ層とスピード層を併用する
- C) Kappa は Lambda より常に処理速度が速い
- D) Lambda は Kappa の後継アーキテクチャである
答えを見る
正解: B
Lambda Architectureはバッチ層(正確だが遅延あり)とスピード層(リアルタイムだが近似的)の2経路でデータを処理します。Kappa Architectureは全てをストリーム処理で統一し、バッチ層を排除することで運用の複雑性を低減します。Kafkaのリプレイ機能を活用して再処理を行います。
結果
7問以上正解の場合
合格です。 分析基盤の構築に関する知識が定着しています。
「DWH、データレイク、OLAP — 分析基盤の設計力がついたな。次はデータガバナンスとセキュリティだ。データは守らなければ武器にならない」 — 佐藤CTO
6問以下の場合
もう少し復習しましょう。
- Q1を間違えた場合 → Step 3-1「データウェアハウスアーキテクチャ」を復習
- Q2-Q3を間違えた場合 → Step 3-2「データレイクとレイクハウス」を復習
- Q4-Q5を間違えた場合 → Step 3-3「OLAP設計とディメンショナルモデリング」を復習
- Q6-Q8を間違えた場合 → Step 3-4「リアルタイム分析基盤」を復習