Data Engineer の面接質問
各社ガイドから集めた代表的な Data Engineer の面接質問を、評価される内容ごとに分類しています。準備用の例であり、特定企業の確定した質問集ではありません。
行動面接 (18)
他のチームが依存していたデータ品質の問題に、当事者意識を持って対応した経験を教えてください。
本番環境で障害が発生したデータパイプラインを、自ら責任を持って担当した経験について教えてください。何を行い、その後何が変わりましたか?
データモデルについてステークホルダーと意見が対立した経験と、それをどのように解決したかを説明してください。
部分的な障害の後でも日次ジョブを安全に再実行できるようにするには、どうしますか?
リリース後に変更が必要になった、あなたが設計したデータモデルについて説明してください。
リリース後に変更が必要になった、あなたが設計したデータモデルについて教えてください。何を間違えましたか?
ローリングウィンドウ内で各デバイスの最初の障害イベントを特定するクエリを書き、そのテスト方法を説明してください。
リリース後に変更が必要になったデータモデルについて、その経緯と、今ならどう設計を変えるかを説明してください。
途中で失敗した後でも、夜間ジョブを安全に再実行できるようにするにはどうしますか?
リリース後に変更が必要になった、あなたが設計したデータモデルについて教えてください。
指定された期間内に各デバイスで最初に発生した障害を見つけるクエリを書き、そのテスト方法を説明してください。
特にこのチームのデータ課題に取り組みたいのはなぜですか?
リリース後に変更が必要になったデータモデルについて、また設計をやり直すなら何を変えるか教えてください。
リリース後に変更が必要になったデータモデルについて、また設計し直すなら何を変えるか教えてください。
このチームのデータ課題に取り組みたいのはなぜですか?
決済合計と取引合計が一致しないアカウントを見つけるクエリを書き、そのテスト方法を説明してください。
他チームが依存していたデータ品質問題について、あなたが責任を持って対応した経験を教えてください。
リリース後に変更が必要になったデータモデルについて、また別の設計にするなら何を変えるか教えてください。
コーディング (8)
連続する月に注文の発送が遅れた顧客を特定するクエリを書き、その検証方法を説明してください。
連続した日にアクティブだったユーザーを抽出するクエリを書き、そのテスト方法を説明してください。
支出額が前月比で増加した顧客を特定するクエリを書き、結果をどのように検証するか説明してください。
連続した日にアクティブだったメンバーを見つけるクエリを書き、そのテスト方法を説明してください。
ローリングウィンドウ内で車両ごとの最初の障害イベントを特定するクエリを書き、そのテスト方法を説明してください。
各ユニットについて、指定されたウィンドウ内で最初に不合格となった測定値を見つけるクエリを書き、そのテスト方法を説明してください。
QUALIFYは何をするものか、それを使わずに書くとしたらどうするか。
緩やかに変化するディメンションとは何か、タイプ二をどう実装するか。
システム設計 (24)
クリックストリームイベントを取り込み、数分以内にクエリ可能にするパイプラインをどのように設計しますか?
複数の地域から注文イベントを取り込み、日次レポートとほぼリアルタイムのアラートに利用できるようにするシステムを設計してください。
生のアプリイベントを日次エンゲージメント指標に変換するパイプラインを設計し、1日遅れで到着するイベントへの対処方法を説明してください。
上流のスキーマ変更後に指標が低下しました。その低下が実際のものかどうかを、どのように確認しますか?
複数地域の日次売上ファイルを1つのレポート用テーブルに読み込み、遅延した地域があっても他の地域をブロックしないパイプラインを設計してください。
下流のダッシュボードに、ソースシステムと一致しない数値が表示されています。差異がどこで生じたか、どのように特定しますか?
どのような場合にスケジュールされたバッチよりストリーミング設計を選びますか?また、その選択にはどのようなコストが伴いますか?
数千台のデバイスからテレメトリを収集し、日次レポートとアドホック分析の両方でクエリできるパイプラインを設計してください。
下流チームから、昨日の集計値が間違っていると報告されました。パイプラインのどこでエラーが発生したか、どう特定しますか?
スケジュールされたバッチ処理ではなくストリーミング設計を選ぶのはどのような場合ですか?また、複雑性の面でどのようなコストがありますか?
メンバーのアクティビティイベントから日次エンゲージメント指標を生成し、一日遅れて到着するイベントにも対応できるパイプラインを設計してください。
ダッシュボードでは低下が見られますが、ソースシステムでは低下していません。差異がどこで生じたかを、どのように特定しますか?
数百万台のデバイスから診断データを取り込み、日次レポートとプライバシーに配慮した分析のためにクエリ可能にするパイプラインを設計してください。
上流のスキーマ変更後に日次指標が低下しました。この低下が実際のものかどうかを、どのように確認しますか?
大規模な車両群からテレメトリを取り込み、日次レポートとほぼリアルタイムのアラート用にクエリ可能な状態にするパイプラインを設計してください。
工場のダッシュボードに、ソースシステムと一致しない合計値が表示されています。差異がどこで生じたのか、どのように特定しますか?
複数のソースからの決済イベントを、絶対に二重計上してはならない日次台帳へ照合・統合するパイプラインを設計してください。
ここに、あなたが見たことのないパイプラインと失敗しているジョブがあります。原因を突き止めてください。
多数の製造ラインからテストデータを収集し、日次歩留まりレポートとアドホック分析のためにクエリ可能にするパイプラインを設計してください。
日次集計の値がソースシステムと一致しません。パイプラインのどこで差異が生じたか、どのように特定しますか?
あるオンラインマーケットプレイスの注文履歴のためにテーブルを設計する。ファクトテーブルの粒度は何か。
スタースキーマを説明し、さらに意図的に非正規化するのはどんなときかを述べる。
パイプラインを冪等にするにはどうするか、そしてそれが再実行にとってなぜ重要か。
パイプラインは成功したのに、誤ったデータを生成したことをどう検知するか。
技術 (31)
サブスクリプション事業のデータモデルを順に説明し、時間の経過に伴うプラン変更をどう処理するか説明してください。
夜間ジョブで重複行が生成され始めました。原因をどう特定し、再発をどう防ぎますか?
レポート用途でバッチ処理とストリーミング処理のどちらを使うか、どう判断しますか?
大規模な分析テーブルで、何をパーティション化、クラスタ化、インデックス化するか、どう判断しますか?
二重計上を防ぎながら、バックフィルを安全に再実行できるようにするにはどうしますか?
行指向ストレージではなく列指向形式を選ぶのはどのような場合で、その選択にはどのようなコストがありますか?
プロダクト指標にバッチ処理ではなくストリーミング処理を選ぶのはどのような場合で、どのようなコストがかかりますか?
夜間バッチジョブを安全に再実行できるようにするには、どうしますか?
二重計上を起こさずに再実行できる、安全な大規模バックフィルをどう実現しますか?
プロダクト指標でバッチ処理よりストリーミング処理を選ぶのはどのような場合で、どのようなコストがかかりますか?
二重計上を起こさず安全に再実行できるバックフィルを、どのように実現しますか?
二重計上を起こさずに再実行できる、安全な大規模バックフィルをどのように実現しますか?
未知のAPIのドキュメントだけを与えられた場合、一時間で動作する取り込みジョブをどのように構築しますか?
財務レポートでバッチ処理よりストリーミング処理を選ぶのはどのような場合で、正確性の面でどのような代償がありますか?
二重計上を起こさずに再実行できる、安全な大規模バックフィルをどのように実現しますか?
監視用途では、どのような場合にバッチよりストリーミングを選びますか?また、そのコストは何ですか?
このクエリは十億行をスキャンし、二十分かかる。どう診断するか。
パーティショニングとクラスタリングの違いを説明し、それぞれがどんなときに役立つかを述べる。
あるステークホルダーが、履歴レポートに顧客の現在の地域を反映させたいと言っている。何が壊れるか。
順序が崩れて届くイベントストリームをどうモデリングするか。
正規化されたモデルより幅の広いテーブルを選ぶのはどんなときか。
上流のソースが昨日のデータをもう一度送ってきた。あなたのジョブには何が起きるか。
日次ロードを止めずに、二年分の履歴をどうバックフィルするか。
パーティションが閉じてから三日後に、遅延データが届いた。どうするか。
何を監視し、朝の三時に誰かを呼び出すのは何か。
シャッフルの原因は何か、なぜそれはコストが高いのか。
ジョブが遅く、一つのタスクだけが他よりはるかに時間がかかっている。何が起きているか。
データスキューを説明し、その対処法を二つ挙げる。
スケジュールされたバッチジョブよりストリーミングを選ぶのはどんなときか。
exactly once処理が実際に保証するものは何か、そしてそれが成り立たないのはどこか。
ウィンドウ集計において、ウォーターマークは順序が崩れたイベントをどう扱うか。