Snowflake 面試會問哪些問題?
作者 Aaron Cao · 更新於

預期會有架構問題(儲存與運算分離、虛擬倉庫、雲端服務層)、儲存問題(微分割區、叢集鍵、分割區剪枝)、資料生命週期問題(Time Travel、零複製克隆、Snowpipe、串流與任務),以及倉庫規模過大或查詢掃描過多資料的成本或效能情境題。評分重點是推理,而非背誦。
Snowflake 面試一開始會問哪些架構問題?
Snowflake 面試會先從架構談起,因為之後的每個問題都以此為基礎。你要能用自己的話描述三個層次:儲存層將資料以壓縮的欄式微分割區存放在雲端物件儲存空間;運算層由虛擬倉庫組成,每個倉庫都是執行查詢的獨立叢集;雲端服務層則負責驗證、中繼資料、查詢剖析與最佳化,以及交易。第一個追問通常是為何儲存與運算分離很重要;答案是兩者能獨立運作:多個團隊可使用各自的倉庫查詢相同資料,不必爭用相同的處理器,而且只有倉庫運行時才需支付運算費用。
- 虛擬倉庫。規模、自動暫停與自動恢復,以及用於處理並行作業的多叢集倉庫。追問:較大的倉庫能加速什麼,又不能加速什麼?
- 結果與中繼資料快取。重複執行的相同查詢可直接使用結果快取;請說明哪些情況會使快取失效。
- 版本與帳戶。角色、使用者,以及用於存取控制的角色階層;要能說明為何將權限授予角色而非使用者更具擴充性。
- 半結構化資料。
VARIANT型別、JSON 的儲存與查詢方式,以及何時應將其展開成欄位。
回答時要說明機制及一項後果。說運算資源能獨立擴充只是一句口號;進一步解釋較大的倉庫有助於大量掃描,卻無法改善受延遲限制的小型查詢,才是面試官期望的程度。
該準備哪些儲存與效能問題?
你每天都使用 Snowflake,卻擔心問題會深入到日常所寫 SQL 的底層。確實會如此,因此以下依照通常的提問順序介紹儲存模型,並列出每一項常見的追問。
- 微分割區。資料儲存在不可變的區塊中,並附有各欄位值域的中繼資料。追問:最佳化工具如何利用這些中繼資料略過分割區,而分割區剪枝又取決於什麼?
- 叢集。自然叢集源自載入順序;叢集鍵會重新組織大型資料表,讓針對這些欄位的篩選能有效進行分割區剪枝。追問:為何叢集是一項成本,而不是免費的好處?又該如何判斷資料表是否需要它?
- 查詢設定檔。查詢緩慢時應查看的位置:已掃描分割區與總分割區的比例、資料是否溢寫至本機或遠端儲存空間,以及是否出現資料量爆增的聯結。
- 具體化檢視與搜尋最佳化。兩者各自能加速什麼,以及各自增加的維護成本。
- Time Travel 與 Fail-safe。在保留期間內,查詢或還原變更前的資料;請說明保留期間是一項設定,也會產生成本,並解釋 Fail-safe 的用途。
- 零複製克隆。克隆會與原始物件共用底層微分割區,直到任一方發生變更;因此,克隆大型資料表速度很快,而且一開始不會產生費用。
談到每項功能時,都要說明其成本。任職於需要支付 Snowflake 帳單之公司的面試官,比起功能名稱,更重視你是否具備這種思考習慣。
資料管線與成本情境題會怎麼問?
資深職位的多輪面試會提出一種情境。代表性例子是:一名面試保險公司分析平台職位的資料工程師,被告知每月 Snowflake 帳單翻倍,但資料量幾乎沒有成長。優秀的回答會依序調查:哪些倉庫消耗最多點數、自動暫停是否已設定為讓閒置倉庫停止計費、排程工作是否在規模過大的倉庫上執行、重複載入的儀表板是否未使用結果快取,以及是否有少數查詢因篩選未作為資料叢集依據的欄位,而掃描整個資料表。面試官評估的是調查順序,而不是某個單一修正方法。
其他常見情境包括:使用 Snowpipe 持續擷取資料,或透過排程執行 COPY 載入,以及兩者各自提供的延遲;使用串流與任務擷取變更,以及如何讓任務具備等冪性;有人誤將資料表截斷後,如何使用 Time Travel 還原;合作夥伴要求在不複製資料的情況下取得讀取權限,此時便要運用安全資料共享;以及成長中組織的角色設計。請先說明限制條件,再選擇機制,並指出其成本。
面試前要大聲演練這些情境及追問;模擬面試模式會提出情境題並追問,而其他資料與工程題庫則彙整於依職位與主題分類的面試題。
AI 面試助手能協助回答 Snowflake 問題嗎?
在對話式面試中可以,但必須誠實看待其限制。SubcueAI 的原生 macOS 與 Windows 桌面應用程式會擷取系統音訊和你的麥克風,並在本機浮動視窗中顯示簡短的回答建議。因此,當面試官詢問叢集鍵以何種代價換取分割區剪枝時,相關機制會顯示在螢幕上,讓你用自己的話加以說明。瀏覽器擴充功能支援 Chrome 與 Edge 瀏覽器分頁中的通話,但只會擷取會議分頁的音訊。不會有機器人加入通話,也不會向會議頁面注入任何內容;設定方式請參閱教學頁面。
限制包括:受監考的 SQL 評量、螢幕錄影、公司管理的筆記型電腦,或在他人監看下撰寫查詢的即時練習,皆不在適用範圍內。SubcueAI 創辦人 Aaron Cao 將產品描述為喚起你既有知識的提示,而非知識的替代品;因此,它會依據你的履歷與你自己的措辭運作。相關界線整理於可偵測性主題群組。