Databricks Certified Data Engineer Associate 教科書
模擬試験 セット2(45問・90分・合格目安70%)
本試験と同じ45問・90分・4択形式です。ページを開いた時点からタイマーが動いています。すべて解答したら最下部の「採点する」を押してください(時間切れで自動採点されます)。
セット2は応用シナリオとトラブルシューティング中心です。「症状から原因を診断して対策を選ぶ」「Spark UI のメトリクスを読み解く」「パイプラインや CI/CD の正しい並び順を選ぶ」タイプの問題を多く含みます。難易度は標準〜やや難です。
問1. (応用シナリオ)あるデータチームには「アナリストが日中に対話的に使う SQL ダッシュボード」と「毎晩2時に起動する ETL バッチ」の2つのワークロードがある。現在は両方を1つの All-purpose クラスタで実行しており、アイドル時間も含めてコストが高い。コンピュート構成の見直しとして最も適切なものはどれか。
問2. (トラブルシューティング)不要になったテーブルを DROP TABLE で削除したのに、クラウドストレージ上のデータファイルがそのまま残っていることに気づいた。原因として最も適切なものはどれか。
問3. (トラブルシューティング)昨日、誤った条件の UPDATE を本番の Delta テーブルに実行してしまった。このテーブルには保持期間7日で VACUUM を毎週実行する運用がある。復旧方針として最も適切なものはどれか。
問4. (トラブルシューティング)Auto Loader で JSON ファイルを取り込むストリーミング処理が、ソースに新しい列が追加された日に UnknownFieldException で停止した。以後も列追加は時々発生する見込みである。運用として最も適切なものはどれか。
問5. (応用シナリオ)Auto Loader の入力ディレクトリには累計数千万ファイルが蓄積しており、デフォルトのディレクトリ一覧(directory listing)モードでは新規ファイルの検出に時間がかかるようになった。改善策として最も適切なものはどれか。
問6. (トラブルシューティング)Auto Loader で CSV を Delta テーブルに取り込んだところ、一部の行では数値型の列に「N/A」という文字列が入っていたことが分かった。ジョブは失敗しておらず、その値がどこへ行ったのかを確認して補正したい。最も適切な説明はどれか。
問7. (応用シナリオ)営業支援 SaaS のデータを毎日レイクハウスへ取り込むために、REST API を呼び出す自前の Python スクリプトを保守しているが、API の仕様変更のたびに壊れ、増分取得やスキーマ変更への対応も自前実装で負荷が大きい。改善策として最も適切なものはどれか。
問8. (トラブルシューティング)変更データを毎時 MERGE INTO でターゲットへ upsert しているジョブが、「同一のターゲット行に複数のソース行がマッチした」という趣旨のエラーで失敗した。対応として最も適切なものはどれか。
問9. (応用シナリオ)クラウドストレージに置かれたファイルを日次バッチの INSERT INTO で追記しているが、ジョブが途中失敗して再実行されると、同じファイルの内容が二重に登録されてしまう。取り込みを冪等にする改善として最も適切なものはどれか。
問10. (トラブルシューティング)ストリーミング取り込みジョブの挙動が不審だったため、チェックポイントディレクトリを削除して再起動したところ、過去の全ファイルが再取り込みされ、下流テーブルに大量の重複が発生した。チェックポイントの理解として正しいものはどれか。
問11. (並び順)クラウドストレージへ継続的に到着する注文データ(JSON)を分析可能な状態にするまでの取り込み・整備の流れとして、最も適切な並び順はどれか。
問12. (トラブルシューティング)日次バッチで Delta テーブルへ追記する処理が、上流の正式な仕様変更で追加された新列 discount_rate を含む DataFrame の書き込み時に、スキーマ不一致の AnalysisException で失敗した。対応として最も適切なものはどれか。
問13. (応用シナリオ)現在は BI 用テーブルへソースの生データを直接ロードし、クレンジングと集計をすべてレポートごとの巨大な SQL で行っている。レポート間でロジックが重複し、修正漏れによる数値の食い違いが多発している。メダリオンアーキテクチャに沿った改善として最も適切なものはどれか。
問14. (応用シナリオ)Lakeflow Spark Declarative Pipelines(旧 Delta Live Tables)の silver テーブルに対し、「order_id が NULL の行は取り込まない。ただし何件除外したかは品質メトリクスとして追跡したい。パイプライン全体は停止させたくない」という要件がある。expectation の設定として最も適切なものはどれか。
問15. (応用シナリオ)Lakeflow Spark Declarative Pipelines で、(a)クラウドストレージへ継続到着するイベントを追記で取り込むテーブルと、(b)silver 全体を集計した日次サマリーの2つを定義する。宣言方法の組み合わせとして最も適切なものはどれか。
問16. (応用シナリオ)本番の大規模 Delta テーブルに対する変換ロジックの変更を、本番と同等のデータで検証したい。ストレージコストを抑えつつ、本番テーブルへ一切影響を与えない方法として最も適切なものはどれか。
問17. (トラブルシューティング)CDC イベントを Lakeflow Spark Declarative Pipelines の AUTO CDC(旧 APPLY CHANGES INTO)でターゲットへ適用しているが、ネットワーク遅延でイベントが順不同に届いた日に、古い住所が最新の住所を上書きしてしまった。見直すべき設定として最も適切なものはどれか。
問18. (応用シナリオ)20億行の売上ファクトテーブルと約200行の店舗ディメンションテーブルの join が、大きなシャッフルを伴い遅い。最も効果的な改善はどれか。
問19. (応用シナリオ)bronze の注文データには items という配列列(1注文に複数商品)が含まれる。商品単位の分析のために「1商品=1行」の silver テーブルを作りたい。使うべき変換として最も適切なものはどれか。
問20. (トラブルシューティング)gold 層の materialized view が「昨日の売上を含んでいない」と報告された。調査すると、基盤となる silver テーブルは最新である。対応として最も適切なものはどれか。
問21. (トラブルシューティング)ある変換ノートブックがドライバーの OutOfMemory で失敗する。コードを確認すると、約5億行の DataFrame に collect() を実行して全行を Python のリストへ取得し、ループで加工してから書き戻していた。修正として最も適切なものはどれか。
問22. (応用シナリオ)1行ずつ文字列を整形する Python UDF を多用した変換ジョブが、同程度のデータ量の他ジョブと比べて数倍遅い。最も効果的な改善はどれか。
問23. (トラブルシューティング)Lakeflow Jobs(旧 Workflows)で運用している夜間バッチが、月初の数日だけ所要時間が通常の4倍になる。原因調査の最初の一歩として最も適切なものはどれか。
問24. (応用シナリオ)「取り込み → 変換 → データ品質チェック → BI 用テーブルの公開」の4処理を毎晩実行したい。品質チェックが失敗した場合は公開を実行せず、担当チームへ通知する必要がある。Lakeflow Jobs の構成として最も適切なものはどれか。
問25. (トラブルシューティング)夜間ジョブが、外部 API の一時的なタイムアウトが原因で月に数回失敗し、毎朝担当者が手動で再実行している。処理は再実行すれば成功し、冪等であることも確認済みである。改善として最も適切なものはどれか。
問26. (応用シナリオ)1つのジョブに5つのタスクがあり、タスクごとに個別の Job クラスタが起動するため、クラスタ起動のオーバーヘッドが累積して所要時間もコストも大きい。タスクは同じライブラリ構成で動作する。改善として最も適切なものはどれか。
問27. (応用シナリオ)取引先からのデータファイルは不定期(週に数回、時刻もばらばら)にクラウドストレージへ置かれる。現在は15分ごとの cron スケジュールでジョブを起動しており、大半の実行は「新着ファイルなし」のまま終わるが、クラスタ起動コストは毎回発生している。改善として最も適切なものはどれか。
問28. (応用シナリオ)パイプラインの最後に「一時テーブルの削除と実行結果の通知」を行うクリーンアップタスクを置いている。上流タスクが失敗した日であっても、クリーンアップだけは必ず実行したい。設定として最も適切なものはどれか。
問29. (トラブルシューティング)30タスクで構成される夜間ジョブが、28番目のタスクだけ失敗して停止した。上流27タスクの処理結果は正しいことを確認済みである。再実行の方法として最も適切なものはどれか。
問30. (トラブルシューティング)Declarative Automation Bundles(旧 DABs)で本番環境へデプロイしたところ、ジョブが開発用の小さいクラスタ設定と dev スキーマ名のまま動いていた。bundle 構成の見直しとして最も適切なものはどれか。
問31. (並び順)データパイプラインの変更を安全に本番へ届ける CI/CD の流れとして、最も適切な並び順はどれか。
問32. (トラブルシューティング)bundle でデプロイした本番ジョブが、デプロイ作業をした開発者個人のアカウント権限で実行されており、「その開発者の退職や権限変更でジョブが停止するリスクがある」とセキュリティレビューで指摘された。対応として最も適切なものはどれか。
問33. (応用シナリオ)ノートブックに埋め込まれた数百行の変換ロジックにバグが混入しがちだが、検証にはノートブック全体を実データで実行するしかなく、テストに時間がかかっている。テスト容易性の改善として最も適切なものはどれか。
問34. (トラブルシューティング)あるステージの200タスクのうち199タスクは30秒以内に完了するが、1タスクだけが10分かかっている。Spark UI のステージメトリクスでは Shuffle Read Size が Min 12MB / Median 15MB / Max 9.8GB であった。診断と対策として最も適切なものはどれか。
問35. (トラブルシューティング)よく参照される Delta テーブルへのクエリが数か月かけて徐々に遅くなった。調査すると、ストリーミング書き込みの積み重ねによりテーブルが数百万個の小さなファイルで構成されていた。対策として最も適切なものはどれか。
問36. (応用シナリオ)監査チームのクエリはほぼ常に特定の日付範囲(event_date)で絞り込むが、10TB のテーブルに対してどのクエリもほぼ全ファイルをスキャンしている。読み取り量を減らす対策として最も適切なものはどれか。
問37. (トラブルシューティング)ワークスペースの月額コストが3か月で2倍になったが、どのチームのどのジョブが増加要因なのか分からない。調査方法として最も適切なものはどれか。
問38. (トラブルシューティング)大きなテーブル同士を結合する夜間ジョブが、Executor の OutOfMemory とディスクへの大量の spill で不安定になっている。Spark UI を確認すると、1つのシャッフルパーティションあたりのデータ量が数 GB に達していた。対策として最も適切なものはどれか。
問39. (トラブルシューティング)新任アナリストに sales カタログ配下の sales.gold.orders テーブルへの SELECT を GRANT したのに、本人のクエリは権限エラー(PERMISSION_DENIED)で失敗する。Unity Catalog の権限モデルとして最初に確認すべきことはどれか。
問40. (応用シナリオ)顧客テーブルの email 列を、一般のアナリストにはマスクした値で、privacy_admins グループには実際の値で見せたい。テーブルの複製は作りたくない。最も適切な機能はどれか。
問41. (応用シナリオ)監査部門から「この顧客テーブルに過去90日間で実際にアクセスした人の一覧(誰が・いつ・どんな操作か)を提出せよ」と要求された。対応として最も適切なものはどれか。
問42. (応用シナリオ)silver 層の顧客テーブルの列定義を変更したいが、変更の前に「どの下流テーブル・ビュー・ダッシュボードが影響を受けるか」を把握したい。最も適切な方法はどれか。
問43. (応用シナリオ)全社共通の受注テーブル(Unity Catalog管理)について、各地域のメンバーには自分の地域の行だけを見せたい。地域は今後も増える予定で、地域ごとにビューを量産する運用は避けたい。最も適切な方法はどれか。
ALTER TABLE ... SET ROW FILTER でテーブル本体に適用するのが定石です。すべての参照経路(ノートブック・BI・SQL)で一貫して効き、地域が増えてもフィルタ関数側の対応だけで済みます。Bは要件で避けたいとされたビューの量産で、管理負荷と付与漏れのリスクがあります。Cの DENY は Unity Catalog では非対応(レガシーの hive_metastore のみ)であり、仮に使えても行単位の制御はできません。Dのカラムマスクは「列の値を隠す」機能で、行そのものを見えなくすることはできません。参照:7-3節問44. (トラブルシューティング)セキュリティレビューで「複数のノートブックにクラウドストレージのアクセスキーが平文で書かれている」と指摘された。Unity Catalog 環境での是正として最も適切なものはどれか。
問45. (トラブルシューティング)あるアナリストは gold スキーマの売上サマリービューを問題なく SELECT できるが、そのビューが参照している silver スキーマの元テーブルを直接 SELECT すると PERMISSION_DENIED になる。Unity Catalog の動作の説明として最も適切なものはどれか。