Skip to content

確認問題|Associate ⑦ CI/CD

教材 07-cicd.md の内容に基づく確認問題です(全10問)。 まず問題を解き、下の「解答・解説」で答え合わせをしてください。

問題

Q1. Databricks Asset Bundles(DAB/宣言型オートメーション バンドル)の説明として最も適切なものはどれか。

  • A. ワークスペース内に Git リポジトリを統合するビジュアル Git クライアントであり、対話的な開発に使う
  • B. ジョブやパイプラインなどの Databricks リソースを YAML(コード)で宣言的に管理する IaC 的な仕組みで、CI/CD の中核となる
  • C. Databricks REST API をラップし、ローカルターミナルからワークスペースを操作するためのコマンドラインツール
  • D. Git プロバイダーへの認証情報(PAT や OAuth)を暗号化して保存するためのセキュリティ機能

Q2. バンドルのメイン構成ファイル databricks.yml に関する説明として正しいものはどれか。

  • A. バンドルのルートに必須かつ唯一のメイン構成ファイルであり、追加の構成ファイルは include マッピングで参照する
  • B. 1 つのバンドルに複数配置でき、ターゲットごとに databricks.yml を用意する必要がある
  • C. 認証プロファイルを保存するファイルで、既定ではホームディレクトリに置かれる
  • D. ジョブの成果物(JAR や wheel)そのものをバイナリとして格納するファイルである

Q3. バンドルの targets(ターゲット)における mode の説明として正しいものはどれか。

  • A. mode: development は本番デプロイ向けで、権限・ロック動作が厳格になる
  • B. mode: production は個人開発ワークスペース向けのテスト用途である
  • C. mode: development は個人開発ワークスペース向けのテスト用途、mode: production は本番デプロイ向けで権限・ロック動作が厳格になる
  • D. mode は Git フォルダーのアクセス制御レベル(CAN READ / CAN MANAGE など)を指定するキーである

Q4. 公式が定義するバンドルのライフサイクル(6 段階)の順序として正しいものはどれか。

  • A. 作成 → 開発 → 検証(validate)→ デプロイ(deploy)→ 実行(run)→ 破棄(destroy)
  • B. 作成 → デプロイ → 検証 → 開発 → 実行 → 破棄
  • C. 検証 → 作成 → 開発 → 実行 → デプロイ → 破棄
  • D. 開発 → 検証 → 実行 → デプロイ → 作成 → 破棄

Q5. あなたはローカル環境でバンドルを使ってジョブをデプロイしようとしている。バンドル利用の前提条件として正しいものはどれか。

  • A. Databricks CLI v0.18 以前のレガシ CLI をインストールする必要がある
  • B. Databricks CLI v0.218.0 以降が必要で、リモートワークスペースでワークスペースファイルが有効(Runtime 11.2 以降は既定有効)である必要がある
  • C. バンドルは Git フォルダーの機能なので、CLI ではなくワークスペースの UI からのみデプロイできる
  • D. 前提として PAT 認証が必須であり、OAuth 認証ではデプロイできない

Q6. デプロイ済みのジョブ hello_jobdev ターゲットに対して実行するコマンドとして正しいものはどれか。

  • A. databricks bundle deploy hello_job --dev
  • B. databricks bundle run -t dev hello_job
  • C. databricks bundle validate hello_job -t dev
  • D. databricks run bundle dev/hello_job

Q7. 開発チームのメンバーから「Git フォルダーで作業していたら、ブランチを切り替えた際にワークスペース上のノートブックが消えた」と相談を受けた。この現象について教材の記述に沿った説明はどれか。

  • A. Git フォルダーではブランチ切り替えは行えないため、そのような現象は発生しない
  • B. 新しいブランチにその資産が無い場合、ブランチ切り替えでワークスペース資産が削除される可能性がある。元のブランチに戻すと新しい ID / URL で再作成される
  • C. プル(pull)を実行しない限りブランチ切り替えでは何も変化しないため、原因は別にある
  • D. リセット(reset)を実行したときだけ資産が削除されるので、ブランチ切り替えが原因ではない

Q8. Git フォルダーでのコラボレーション(共同作業)に関するベストプラクティスとして正しいものはどれか。

  • A. チーム全員が 1 つの共有 Git フォルダーで同時に Git 操作を行うのがよい
  • B. 各チームメンバーが自分専用の Git フォルダーを持ち、自分の開発ブランチで作業し、1 つの Git フォルダーで Git 操作を行うのは 1 人だけにする
  • C. Git フォルダーは 1 ユーザーしか作成できないため、共同作業には使えない
  • D. 共同作業のためには全員が同じ PAT を共有して使う必要がある

Q9. マージ(merge)・リベース(rebase)・リセット(reset)に関する説明として正しいものはどれか。

  • A. マージは履歴を書き換えるため強制プッシュが必要で、Databricks は初心者に非推奨としている
  • B. リベースは履歴を書き換えないため、共同作業者に影響を与えない安全な操作である
  • C. UI からの Git リセットは git reset --hard + git push --force に相当し、ローカル・リモート両方のコミット済み/未コミットの変更がすべて失われる
  • D. リセットは履歴を書き換えない操作なので、実行しても既存のコミットは失われない

Q10. Databricks CLI の認証・構成プロファイルに関する説明として正しいものはどれか。

  • A. 認証は構成プロファイル(.databrickscfg)で管理し、-p / --profile で選択、未指定なら DEFAULT プロファイルが使われる。認証設定の評価順序はバンドル設定 → 環境変数 → .databrickscfg プロファイルである
  • B. 構成プロファイルはワークスペースの UI 上にのみ保存され、ローカルファイルには保存されない
  • C. --profile を指定しない場合はエラーとなり、必ずプロファイル名を明示する必要がある
  • D. 認証設定の評価順序は .databrickscfg プロファイル → 環境変数 → バンドル設定であり、プロファイルが最優先される

解答・解説

Q1. 正解: B DAB(宣言型オートメーション バンドル、旧称 Databricks Asset Bundles)は、ジョブ・パイプライン等の Databricks リソースを YAML でコード管理する IaC 的な仕組みで、CI/CD の中核です。A は Git フォルダー、C は Databricks CLI、D は Git 資格情報の暗号化機能の説明です。

Q2. 正解: Adatabricks.yml はバンドルのルートにある必須かつ唯一のメイン構成ファイルで、追加の構成ファイルは include マッピングで参照します。C は .databrickscfg(構成プロファイル保存ファイル)の説明で、混同しないよう注意します。

Q3. 正解: Cmodedevelopment または production で、開発モードは個人開発ワークスペース向けのテスト用途、本番モードは権限・ロック動作が厳格になります。A と B は説明が逆、D はアクセス制御レベルの話で誤りです。

Q4. 正解: A 公式が定義するライフサイクルは「作成(スケルトン生成)→ 開発(ローカル)→ 検証(validate)→ デプロイ(deploy)→ 実行(run)→ 破棄(destroy)」の 6 段階です。それぞれ init / validate / deploy / run / destroy などの databricks bundle サブコマンドに対応します。

Q5. 正解: B バンドルは Databricks CLI の機能で、利用には CLI v0.218.0 以降が必要です。またリモートワークスペースでワークスペースファイルが有効(Databricks Runtime 11.2 以降は既定で有効)である必要があります。認証は OAuth U2M が推奨で、PAT 必須ではありません(D は誤り)。

Q6. 正解: B デプロイ済みのジョブ/パイプラインはリソースキーを指定して databricks bundle run <key> で実行し、-t--target)でターゲットを指定します。よって databricks bundle run -t dev hello_job が正解です。deploy は配置、validate は検証のコマンドです。

Q7. 正解: B 教材によると、新しいブランチにその資産が無い場合、ブランチ切り替えでワークスペース資産が削除される可能性があります。元のブランチに戻すと新しい ID / URL で再作成され、この変更は元に戻せません。共有・ブックマークした資産がある場合は切り替え前に確認します。

Q8. 正解: B 各チームメンバーが自分専用の Git フォルダーを持ち、自分の開発ブランチで作業するのがベストプラクティスです。1 つの Git フォルダーで Git 操作を行うのは 1 人だけにします(複数人だと、誰かが全員のブランチを意図せず切り替えるなどの問題が起こるため)。

Q9. 正解: C UI からの Git リセットは git reset --hard + git push --force に相当し、ローカル・リモート両方のコミット済み/未コミットの変更がすべて失われます。マージは履歴を書き換えず強制プッシュ不要で初心者に推奨(A は誤り)、リベースは履歴を書き換えるため共同作業者に問題を起こしうる(B は誤り)操作です。

Q10. 正解: A 認証は構成プロファイル(.databrickscfg)で管理し、-p / --profile で選択、未指定なら DEFAULT プロファイルが使われます。認証設定の評価順序はバンドル設定ファイル → 環境変数 → .databrickscfg プロファイルの順で、見つかった時点で探索を停止します(D は順序が逆)。