1. 題目與適用場景
這題考察資料平台、資料工程和分析工程職位。重點是觀察資料本身的健康度與影響範圍,而不只是確認排程任務是否成功。候選人需要說明監控維度、基線、責任人、告警分級和修復閉環。
2. 面試官考察點
- 能否把「可觀測」拆成新鮮度、數量、結構、完整性、分布、唯一性和關係一致性。
- 能否依資料集用途、血緣和業務影響設定不同規則,而不是給所有表同一個閾值。
- 能否保存規則版本、觀測值和執行證據,區分硬失敗、警告與尚未判定。
- 能否把告警接到隔離、回填、對帳和復盤,而不是只發一則訊息。
MentorCruise 的公開資料工程面試材料直接詢問 data observability,並列出 freshness、volume、schema drift、null、duplicates、distribution 和 lineage 等訊號。Great Expectations 文件把 distribution、freshness、integrity、missingness、schema、uniqueness 和 volume 列為資料品質用例,並將 Expectation 定義為可驗證的資料斷言。
3. 回答前需要釐清的問題
- 關鍵資料集服務報表、結算、推薦還是訓練?可接受的延遲和錯誤影響是什麼?
- 資料是批次、串流還是混合?業務時間與到達時間如何定義?
- 哪些檢查失敗要阻斷發布,哪些只需標記警告?是否有可信快照可降級?
- 誰負責資料集、血緣和告警?修復後需要回填哪些分區並通知哪些消費者?
4. 30 秒回答框架
我會先依業務影響為資料集分級,再為每個關鍵資產定義新鮮度、數量、結構、完整性、分布和關係檢查。每次執行保存規則版本、批次、觀測值、血緣和負責人;結果按阻斷、警告和資訊分級路由。下游讀取品質狀態,必要時隔離壞批次或使用帶時間戳的可信快照。修復後重跑同一版本檢查,依輸入、輸出、拒絕和消費紀錄對帳,並在復盤中調整閾值。
5. 分步深入解答
第一步:定義資產與重要性
為表、主題、檔案或模型輸入建立穩定識別,記錄負責人、消費者、敏感級別和血緣。先涵蓋結算、客戶可見指標等高影響資產,再擴展到低風險資料;否則檢查成本和告警數量會失控。
第二步:選擇互補的觀測維度
新鮮度檢查最新業務時間和到達時間;數量檢查列、檔案或位元組量;結構檢查欄位、型別和相容性;完整性檢查必填值、重複和引用關係;分布檢查範圍、分位數或類別頻率。每個指標都保存樣本量、視窗、閾值和規則版本,避免把一個分數當成整體真相。
第三步:讓檢查可執行且可解釋
把宣告式斷言與自訂查詢放進程式碼審查和部署流程。關鍵規則配置嚴重度、失敗動作和負責人;低流量或季節性資產使用基線和連續視窗抑制誤報。結果寫入品質帳本,並關聯具體分區、執行、上游變更和下游影響。
第四步:連接告警、隔離與復原
阻斷會污染財務或模型的資料發布,局部缺失可先隔離並保留上一份可信快照。告警帶上資產、維度、觀測值、閾值、血緣和建議動作。上游修復後依業務時間回填,使用冪等寫入和輸入輸出對帳驗證沒有漏數或重複。
6. 高品質示範回答
我會先依業務影響為資料資產分級,並為高影響資產登記負責人、消費者和血緣。每次載入都檢查到達時間與業務時間、列數或位元組量、schema、必填欄位、重複、引用關係以及關鍵數值分布。檢查結果保存規則版本、批次、樣本量、觀測值和下游影響,嚴重度決定阻斷、警告或資訊通知。
如果結算表的完整性失敗,我會隔離該批次並阻止發布;獨立看板可以使用帶時間戳的上一份可信快照。告警包含具體失敗維度和可能的上游變更,避免只報一個總分。修復後按分區回填,重跑相同檢查,用輸入、輸出、拒絕和消費紀錄對帳,確認指標恢復後關閉事件。最後用誤報、漏報和處理時間復盤閾值與覆蓋率。
7. 常見錯誤
- 只看 DAG 是否成功,不看資料是否新鮮、完整和可用。
- 給所有資產套同一閾值,忽略消費者、季節性和樣本量。
- 沒有保存規則版本、批次和血緣,導致告警無法重現。
- 每個失敗都阻斷全平台,或每個失敗都自動重跑而污染下游。
- 修復後覆蓋歷史,不記錄回填、對帳和重複寫入保護。
8. 追問及應對
追問一:資料品質和資料可觀測性有什麼差別?
品質檢查驗證某個斷言是否成立;可觀測性還要把健康訊號、執行上下文、血緣、負責人、影響和處置動作串起來。品質是訊號之一,不是完整運行閉環。
追問二:如何減少誤報?
建立依資產和分群的歷史基線,記錄樣本量,使用連續視窗和分級嚴重度,並在影子模式觀察新規則。每次調整保留舊規則版本,復盤誤報成本後再改變閾值。
追問三:檢查失敗時一定要阻斷嗎?
依影響和血緣決定。會污染結算、客戶承諾或模型訓練的失敗應阻斷相關發布;低風險消費者可以讀取帶警示的可信快照。阻斷範圍、超時升級和解除條件都要可稽核。