Databricks Certified Data Engineer Associate 教科書
模擬試験 セット1(45問・90分・合格目安70%)
本試験と同じ45問・90分・4択形式です。ページを開いた時点からタイマーが動いています。すべて解答したら最下部の「採点する」を押してください(時間切れで自動採点されます)。
問1. ある小売企業では、BI用のデータウェアハウスと機械学習用のデータレイクを別システムで運用しており、同じデータの二重管理と鮮度のずれに悩んでいる。データエンジニアが経営層に「レイクハウスアーキテクチャ」を提案する際の説明として最も適切なものはどれか。
問2. あるECサイトの運用担当者が、誤ったWHERE句のUPDATE文でDeltaテーブルの大量の行を書き換えてしまった。実行前の状態を確認し、テーブルを元に戻したい。対応として最も適切なものはどれか。
問3. あるメーカーの分析チームでは、アナリスト数名が日中に不定期でSQLのアドホッククエリやBIダッシュボードの参照を行う。管理負荷を抑えつつ、使っていない時間のコストも最小化したい。コンピュートの選択として最も適切なものはどれか。
問4. ある物流企業では、取引先からクラウドストレージの特定フォルダに毎日CSVファイルが数件届く。SQLベースの日次バッチでDeltaテーブルへ増分ロードしたいが、ジョブを再実行してもロード済みファイルが二重に取り込まれないようにしたい。方法として最も適切なものはどれか。
問5. あるモバイルアプリ企業がAuto Loaderでイベント JSONを継続的に取り込んでいる。アプリの更新に伴いイベントに新しいフィールドが追加されることがあり、その際もパイプラインを止めずにデータを失わず取り込みたい。設計として最も適切なものはどれか。
問6. ある広告配信企業では、クラウドストレージに1時間あたり数十万個の小さなログファイルが到着する。Auto Loaderで取り込んでいるが、新着ファイルの検出に時間がかかり、リスト操作のコストも増大している。改善策として最も適切なものはどれか。
問7. ある人材サービス企業が、利用中のSaaS型CRMの顧客データをDatabricksに日次で取り込みたい。開発チームは小規模で、APIのページネーションや増分抽出のコードを自前で保守したくない。アプローチとして最も適切なものはどれか。
問8. ある製造企業の基幹システムはオンプレミスのPostgreSQLで稼働している。夜間バッチでいくつかのテーブルをDatabricksに読み込み、Deltaテーブルとして保存したい。Spark標準の仕組みで実現する方法として最も適切なものはどれか。
問9. あるエネルギー企業が、外部プロバイダの気象情報REST APIから1時間ごとにデータを取得し、Deltaテーブルに蓄積したい。APIはJSONを返し、専用コネクタは提供されていない。実装として最も適切なものはどれか。
問10. あるゲーム会社では、クラウドストレージにプレイログのファイルが毎分継続的に到着し、累計ファイル数は数百万に達している。ニアリアルタイムで増分を取り込み続けたい。取り込み方式の選択として最も適切なものはどれか。
問11. ある保険会社が、過去システムから出力された約200個のParquetファイルを新しいDeltaテーブルへ一度だけ移行したい。担当者はSQLに慣れており、ストリーミングの常時稼働は不要である。方法として最も適切なものはどれか。
問12. あるSNS分析企業のブロンズテーブルには、イベントがJSON文字列のままraw_payload列に格納されている。この中のuser.address.cityのようなネストされたフィールドを抽出してシルバーテーブルの列にしたい。方法として最も適切なものはどれか。
問13. ブロンズテーブルの注文データをシルバーに変換する際、主キーにあたるorder_idがnullの行は分析に使えないため除外し、割引額discountのnullは「割引なし」を意味するため0で補完したい。処理として最も適切なものはどれか。
問14. 顧客マスタ(全顧客)と注文テーブルを結合し、「注文が1件もない顧客も含めた」顧客ごとの注文集計レポートを作りたい。顧客マスタを左側とした場合の結合として最も適切なものはどれか。
問15. 数十億行の売上ファクトテーブルと、数千行の店舗マスタを結合するクエリが遅い。実行計画を見ると両テーブルのシャッフルを伴う結合になっていた。改善策として最も適切なものはどれか。
問16. ECサイトの注文テーブルに、1注文に含まれる商品IDの配列を保持するitems列(ARRAY型)がある。商品ID単位の売れ筋分析のため、配列の要素ごとに1行ずつ持つテーブルに変換したい。使用する関数として最も適切なものはどれか。
問17. 顧客テーブルのfull_name列に「姓 名」がスペース区切りの1つの文字列で入っている。姓と名を別々の列に分けたい。最初に適用する処理として最も適切なものはどれか。
問18. 上流システムの再送により、注文イベントテーブルに同じorder_idの行が複数回記録されることがある。金額などの他列は同一で、order_idを基準に1行だけ残したい。処理として最も適切なものはどれか。
問19. 数百億行のアクセスログから日次のユニークユーザー数をダッシュボードに表示したい。厳密な値は不要で数%の誤差は許容できるが、COUNT(DISTINCT user_id)の実行時間とメモリ消費が問題になっている。対応として最も適切なものはどれか。
問20. あるETLジョブで、集計後のデータ量は小さいのにシャッフル後のステージで大量の極小タスクが発生し、オーバーヘッドで遅くなっている。原因はシャッフルパーティション数がデータ量に対して過大なことだった。対応として最も適切なものはどれか。
問21. ゴールド層に、日次で更新されれば十分な売上集計を用意したい。BIから頻繁に参照されるため結果は事前計算しておき、更新時はエンジンに増分計算を任せたい。作成するオブジェクトとして最も適切なものはどれか。
問22. Lakeflow Spark Declarative Pipelines(旧 Delta Live Tables)のパイプラインで、シルバーテーブルに「amount列は0以上」という品質ルールを設け、違反した行だけをテーブルに入れず、パイプライン自体は継続させたい。設定として最も適切なものはどれか。
問23. あるデータチームは「宣言的パイプラインの更新 → 完了後にSQLで集計テーブルを更新 → 最後にダッシュボードをリフレッシュ」という一連の処理を毎朝自動実行したい。Lakeflow Jobs(旧 Workflows)での実現方法として最も適切なものはどれか。
問24. あるジョブでは、タスクA(売上取り込み)とタスクB(在庫取り込み)が並列に走り、両方が成功した後にのみタスクC(統合レポート作成)を実行したい。設定として最も適切なものはどれか。
問25. 外部APIを呼び出すタスクが、先方の一時的な接続エラーで月に数回失敗する。エラーは数分後の再実行でほぼ解消する。運用担当の手を煩わせない対策として最も適切なものはどれか。
問26. 日次ジョブで、品質チェックタスクの結果(合格/不合格)に応じて「合格なら本番テーブルへ反映するタスク」「不合格なら担当者へ通知するタスク」のどちらかだけを実行したい。実現方法として最も適切なものはどれか。
問27. 30個の国別テーブルすべてに同一の変換ノートブックを適用したい。国コードをパラメータとして渡す以外、処理内容は共通である。ジョブの設計として最も適切なものはどれか。
問28. 取引先ごとにファイルが届く時刻がバラバラで、事前に予測できない。クラウドストレージの指定パスにファイルが置かれたら、できるだけ早くロードジョブを開始したい。トリガーの選択として最も適切なものはどれか。
問29. 経理部門向けの日次売上レポートは「毎朝7時までに前日分が確定していること」だけが要件で、上流データは毎日深夜2時までに確実に揃う。トリガー設計の判断として最も適切なものはどれか。
問30. あるチームはDatabricks Git Folders(旧 Repos)でGitリポジトリと連携して開発している。本番運用中のノートブックに新機能を追加する際、mainブランチのコードに影響を与えずに開発とレビューを進める手順として最も適切なものはどれか。
問31. あるチームがDeclarative Automation Bundles(旧 Databricks Asset Bundles)でジョブとパイプラインを管理している。同じ資産一式を「開発ワークスペースには開発設定で、本番ワークスペースには本番設定で」デプロイし分けたい。バンドルの構成として最も適切なものはどれか。
問32. CI/CDパイプラインで、バンドルの設定ファイルの構文誤りや参照切れを、実際のワークスペースへ資産を配置する前の段階で検出したい。CIの検証ステップで実行すべきコマンドとして最も適切なものはどれか。
問33. 検証を通過したバンドルを、CIランナーから本番ターゲット(prod)のワークスペースへ配置し、続けて特定のジョブを実行したい。Databricks CLIのコマンドの組み合わせとして最も適切なものはどれか。
問34. 「日次ジョブがここ1か月でだんだん遅くなっている気がする」という報告を受けた。まだSLA違反には至っていない。傾向を客観的に確認するための最初の行動として最も適切なものはどれか。
問35. あるジョブのステージが終わらないためSpark UIを確認すると、200個のタスクのうち199個は数秒で完了しているが、1個だけが数十分実行し続けており、そのタスクのシャッフル読み取り量だけが突出して大きい。最も可能性の高い原因はどれか。
問36. 数TBのDeltaテーブルは、クエリのフィルタ条件が時期によってregion列だったりstore_id列だったりと変化する。従来の固定的なパーティショニングでは追従が難しい。データレイアウト戦略として最も適切なものはどれか。
問37. 運用チームは、多数のUnity Catalogマネージドテーブルに対するOPTIMIZEやVACUUMの実行スケジュールを個別に管理しており、負担が大きい。メンテナンスを自動化する機能として最も適切なものはどれか。
問38. あるノートブックが「ドライバのメモリ不足(OOM)」でクラッシュを繰り返す。コードを確認すると、数億行のDataFrameに対してcollect()を呼び、全行をドライバに取得してPythonのループで処理していた。対処として最も適切なものはどれか。
問39. クラウドストレージ上の既存のDeltaデータを、Databricks以外の外部ツールからも直接読み続けながらUnity Catalogにテーブルとして登録したい。また、将来テーブル定義を削除してもストレージ上のデータファイルは残したい。テーブルの種類として最も適切なものはどれか。
問40. 分析チームのグループ`analysts`に、テーブルmain.sales.ordersをSELECTさせたい。GRANT SELECT ON TABLE main.sales.orders TO `analysts` を実行したが、メンバーは「アクセスできない」というエラーになる。原因として最も可能性が高いものはどれか。
問41. Unity Catalog上の給与テーブルmain.hr.salariesを、グループ`interns`には読み取らせないようにしたい。方法として最も適切なものはどれか。
問42. 新設する分析用スキーマanalytics配下には今後100個以上のテーブルが追加されていく。分析グループには「配下の既存・将来のテーブルすべての読み取り」を、テーブル追加のたびの作業なしで許可したい。設計として最も適切なものはどれか。
問43. 顧客テーブルのemail列について、人事グループにはそのままの値を、それ以外の利用者には「***」にマスクした値を表示したい。テーブルの複製や別ビューの乱立は避けたい。実現方法として最も適切なものはどれか。
問44. 全社のカタログには数百のテーブルに個人情報(PII)列が散在している。テーブルごとに個別のマスク関数を設定する運用が限界に達しており、「PIIとしてタグ付けされた列には共通のマスクポリシーを一括適用する」という集中管理に移行したい。利用する機能として最も適切なものはどれか。
問45. Unity Catalogのマネージドテーブルに対してDROP TABLEを実行した場合の挙動として最も適切なものはどれか。