Databricks面接ではどのような質問が出ますか?
文責 Aaron Cao · 更新

主に四つの分野が問われます:Delta Lake(トランザクションログ、ACID保証、タイムトラベル、MERGE)、メダリオンアーキテクチャ(ブロンズ、シルバー、ゴールドの各レイヤー)、Databricks上のSpark(パーティション、シャッフル、キャッシュ、クラスターのサイジング)、ガバナンス(Unity Catalog、ワークスペース、ジョブ)です。シナリオ問題では、遅い、または失敗しているパイプラインを提示され、調査方法を評価されます。
Delta Lakeでは最初に何を質問されますか?
Databricksの基盤はDelta Lake上に構築されているため、面接はDelta Lakeの質問から始まります。通常のParquetファイルと比べてDeltaテーブルが何を追加するのか説明できるようにしましょう。すべてのコミットを記録するトランザクションログにより、アトミックな書き込み、一貫した読み取り、過去のバージョン時点のテーブルを照会する機能が得られます。その後の質問の流れは予測できます。タイムトラベルの仕組み(ログの過去のスナップショットを読み取ること)、VACUUMが削除するものと、それによって遡れる範囲が制限される理由、そしてMERGEがアップサートと変更データキャプチャのパターンを実装する方法です。
- スキーマの適用と進化。スキーマに一致しない書き込みは、進化が有効でない限り拒否されます。どのような場合に許可するか説明しましょう。
- OPTIMIZEとファイル配置。小さなファイルは読み取り性能を低下させます。コンパクションで書き換え、クラスタリングやZ-orderingによって、クエリの絞り込み対象となる値を同じ場所に配置します。
- 一つのテーブルに対するストリーミングとバッチ。同じDeltaテーブルをストリーミングのシンクとバッチのソースにできます。Deltaへ書き込むStructured Streamingジョブにおいて、exactly-onceが具体的に何を意味するのか説明しましょう。
- Delta Live Tablesとパイプライン。データ品質に関する期待条件を備えた宣言型パイプラインです。行が期待条件を満たさなかった場合に何が起きるのか説明できるようにしましょう。
仕組みを答えてください。DeltaがACIDであるというのは標語にすぎません。部分的に失敗した書き込みをトランザクションログによって読み取り側から見えなくする、という説明が答えです。
メダリオンアーキテクチャとパイプライン設計はどう問われますか?
ブロンズ、シルバー、ゴールドの各レイヤーを構築した経験があり、面接官は名称以上のことを求めているのではないかと感じるでしょう。その認識は正しいため、ここでは各レイヤーの設計理由と、それを確認する質問を説明します。
- ブロンズ。生データの取り込み、追記専用、到着時のままのスキーマです。追加質問:シルバーの方がクリーンなのに、なぜ生データを保存するのでしょうか?再処理と監査のためです。
- シルバー。クレンジング、重複排除、形式統一を済ませたレコードです。追加質問:遅れて到着したり重複して到着したりするイベントストリームをどう重複排除し、ウォーターマークはどこで関係するのでしょうか?
- ゴールド。アナリストやダッシュボード向けの集計およびビジネスレベルのテーブルです。追加質問:定義の責任者は誰で、二つのゴールドテーブルで売上の値が食い違うことをどう防ぐのでしょうか?
- オーケストレーション。ジョブ、タスクの依存関係、再試行、アラートです。追加質問:再実行しても二重計上されないよう、ジョブをどう冪等にするのでしょうか?
- 取り込み。増分ファイル検出にはAuto Loaderを使用します。また、単純なディレクトリ一覧取得がなぜスケールしないのかも問われます。
面接官はコストについても質問します。スケジュール済みジョブの実行先として汎用クラスターが不適切な理由、ジョブクラスターやサーバーレスコンピュートが適する場面、オートスケーリングやスポットインスタンスが料金に与える影響です。制約を示し、仕組みを選び、コストを明示しましょう。
どのSparkチューニングとシナリオ問題に備えるべきですか?
シニア職の面接では、症状だけが提示されます。代表例として、小売企業のプラットフォーム職を受けるデータエンジニアが、注文データと顧客ディメンションを結合する夜間ジョブについて、データ量の急増後に所要時間が数分から数時間に延びたと告げられるケースがあります。優れた回答は、クラスターを大きくする前にクエリ実行計画とSpark UIを確認することから始まります。結合がブロードキャスト結合からシャッフル結合に変わっていないか、一部のキーに偏りがないか、シャッフルパーティション数が現在のデータ量に合っているか、ソーステーブルにOPTIMIZEで解消できる小さいファイルの問題がないかを確認します。面接官が評価するのは調査の順序です。
そのほかによくあるシナリオには、遅延が増え続けるストリーミングジョブにおいてトリガー間隔、状態サイズ、ウォーターマークがどう影響し合うかという問題があります。また、あるユーザーには動作するノートブックが別のユーザーには失敗するケースもあり、通常は権限の問題からUnity Catalog、ワークスペース、サービスプリンシパルの話へ進みます。アナリストからテーブルが古いと指摘されるケースは鮮度とオーケストレーションの問題であり、別チームへデータを安全に公開する依頼ではDelta Sharingとカタログレベルの権限付与が焦点になります。
本番の通話前に、追加質問も含めて声に出して練習しましょう。模擬面接モードはシナリオ問題向けに作られており、データおよびエンジニアリング分野の幅広い問題集は職種・トピック別の面接質問にあります。
AI面接アシスタントはDatabricksの質問に役立ちますか?
対話形式の面接では、限界を正しく理解すれば役立ちます。SubcueAIのmacOSおよびWindows向けネイティブデスクトップアプリは、システム音声とマイク音声を取り込み、ローカルオーバーレイに短い回答候補を表示します。そのため、ストリーミングの重複排除におけるウォーターマークの役割を質問されたとき、画面上で仕組みを確認しながら自分の言葉で説明できます。ブラウザー拡張機能は、ChromeとEdgeでブラウザータブ内の通話に対応し、会議タブの音声だけを取り込みます。ボットが通話に参加することも、会議ページに何かが挿入されることもありません。設定手順はチュートリアルページにあります。
ただし、監督付き評価、画面録画、会社管理のノートパソコン、監視下でPySparkを書くライブノートブック演習は対象外です。そしてDatabricks面接では、最難関の課題がその形式で実施されることも珍しくありません。このアシスタントが最も力を発揮するのは、アーキテクチャとトレードオフに関する質問です。提案内容が実際に構築したパイプラインを反映するよう、最初に履歴書を読み込ませてください。そのプロフィールは履歴書ビルダーに保存されます。