題干與適用場景
這道題考察資料生命週期與可驗證性,不是執行一條 DELETE。你要追蹤主體識別如何進入原始層、表檔、衍生結果、快取、特徵、匯出和備份,並定義何時可以對外宣稱完成。
面試官真正想聽什麼
- 建立資料目錄與血緣,覆蓋副本、衍生值、日誌、快照、快取和備份。
- 刪除請求可重試、可暫停,且不會被攝取或重播重新寫回。
- 邏輯不可見、實體擦除、快照過期和備份到期的邊界清楚。
- 刪除期間如何隔離查詢與訓練,保護其他租戶。
推薦回答結構
先定義主體鍵、請求狀態和完成口徑,再列出資料域與血緣。為請求分配穩定 erasure_id,凍結攝取和重播對該主體的寫入,依資料域刪除或重算,最後獨立驗證並執行保留策略清理。
深入拆解:從請求到證明
先定義範圍與識別
把帳號、裝置、訂單或外部識別映射到不可變主體鍵,列出原始物件、Iceberg 行、聚合、特徵、索引、匯出、快取、日誌和備份。無法定位的暗資料要列入風險清單。
讓刪除與攝取互斥
刪除服務登記 erasure_id 和主體狀態。攝取、重播與衍生作業寫入前檢查刪除標記;事件匯流排可用墓碑或分割區屏障阻止舊事件回灌。用版本或租約避免舊快照覆蓋刪除。
區分邏輯與實體清理
Iceberg equality delete 或 position delete 可讓讀取忽略目標行,但舊資料檔、快照和孤兒檔仍可能存在。依保留窗口壓實、過期快照和清理孤兒檔;原始物件按清單刪除。備份則記錄到期刪除與受控存取。
衍生資料不能只刪輸入
可追溯聚合按主體重算;無法反查主體的彙總要提供帶主體維度的中間狀態或重建分割區。特徵、快取和匯出由 owner 清理,刪除期間暫停發佈並從淨化輸入重建。
用證據定義完成
每個資料域記錄掃描範圍、匹配行數、刪除版本、實體清理任務、失敗項和驗證時間。獨立讀取路徑確認查詢、匯出和重播都找不到目標主體。證據缺失只能是部分完成。
可直接套用的回答示例
「我先讓隱私負責人確認主體鍵、保留例外和期限。刪除服務建立可冪等的 erasure_id,凍結該主體的攝取與重播。原始物件按清單刪除,Iceberg 先寫 equality delete,再於保留窗口後壓實和過期快照;聚合與特徵按主體重算,快取與匯出由 owner 清理。35 天備份只允許受控恢復,恢復流程讀取墓碑並在上線前驗證。各步保存版本、計數與失敗項,所有域零匹配且失敗項為空才標記完成。」
常見失分點與修正
- 只刪主表 → 列出原始、衍生、快取、匯出、日誌和備份。
- 把 delete 檔當實體擦除 → 說明快照、舊檔、壓實和孤兒檔清理。
- 忽略並發寫入 → 設計刪除屏障、墓碑、版本檢查和重播門禁。
- 用單一成功布林值結案 → 保存逐域範圍、計數、版本和獨立驗證。
評分標準與自檢清單
高分回答包含穩定主體識別、完整血緣、冪等狀態機、寫入與重播屏障、邏輯與實體刪除邊界、衍生重算、備份策略、失敗恢復、逐域證據和零匹配驗證。
追問與延伸
如果 Iceberg 很大,不能立即重寫檔案怎麼辦?
先寫行級刪除讓查詢立即排除目標,再依刪除密度與保留期限安排壓實。期間限制快照和匯出,並把實體清理時間保留在狀態中。
刪除與新事件同時到達怎麼辦?
以主體屏障或單調版本讓攝取在刪除完成前拒絕或隔離新事件。舊事件重播必須檢查墓碑。
衍生指標無法按使用者反查怎麼辦?
標記為無法證明的資料域,暫停發布並選擇保留主體維度的中間狀態、按分割區重建或經批准的替代方案。
如何避免稽核本身洩漏個資?
只保存不可逆主體引用、請求 ID、範圍和計數,不寫姓名、信箱或事件內容;稽核存取需要獨立授權。