Power BI 面試問題

作者 Aaron Cao · 更新於

Power BI 面試問題
Power BI 面試聚焦於 DAX 求值上下文、資料建模和重新整理架構。你需要能說明度量值與計算列的區別、解釋篩選上下文與行上下文、為星型架構給出理由、在 Import 與 DirectQuery 之間做取捨,並設定行級安全性(RLS)。

Power BI 面試聚焦於 DAX 求值上下文、資料建模和重新整理架構。你需要能說明度量值與計算列的區別、解釋篩選上下文與行上下文、為星型架構給出理由、在 Import 與 DirectQuery 之間做取捨,並設定行級安全性(RLS)。

每一輪都會出現哪些 DAX 問題?

你可以做出一份能跑起來的報表,卻依然在 DAX 問題上卡殼,因為面試考察的是求值模型本身,而不是函式清單。本節涵蓋幾乎每場 Power BI 面試都會出現的 DAX 問題,以及一個紮實的回答應包含什麼。

  • 度量值和計算列有什麼區別? 計算列在重新整理期間逐行計算並儲存在模型中,佔用記憶體。度量值在查詢時針對當前篩選上下文計算,不儲存任何內容。要說清記憶體佔用和計算時機,而不只是“一個是動態的”。
  • 解釋一下行上下文和篩選上下文。 行上下文是迭代過程中的當前行,篩選上下文是切片器、視覺物件和 DAX 施加的一組篩選。大多數令人困惑的結果都源於預期一種上下文卻得到了另一種。
  • CALCULATE 的作用是什麼? 它在修改後的篩選上下文中計算一個表示式,並把行上下文轉換為篩選上下文。面試官最想聽到的就是後半句。
  • 什麼時候需要像 SUMX 這樣的迭代函式? 當計算必須先逐行進行、再聚合時,例如單價乘以數量,而模型中沒有儲存乘積列。
  • ALL 的作用是什麼,為什麼要與 CALCULATE 搭配使用? 它會移除篩選,這正是構建佔比類度量值的方法。
  • 解釋一下 RELATEDRELATEDTABLE 的區別。 方向很關鍵:一個是跨到“一”的一側,另一個是從“多”的一側返回多行。

整場面試都適用的一個習慣:當 DAX 回答開始說不清楚時,就回到“上下文”這個概念。幾乎所有追問最終都歸結為當前是哪種上下文、又是什麼改變了它。

資料建模問題應該怎麼回答?

建模問題能把只會搭報表的人和真正能負責資料集的人區分開來。這裡期望的是維度建模的詞彙。

  • 星型架構還是雪花架構?為什麼? 星型架構,因為查詢效能更好、DAX 更簡單,維度採用反規範化設計。只有當某個維度確實很大或被多方共享時才用雪花架構。用單一大表回答,面試基本會提前結束。
  • 什麼是事實表,什麼是維度表? 事實表以指定的粒度存放可度量的事件,維度表存放你用來切片的屬性。
  • 為什麼關係的基數和交叉篩選方向很重要? 單向的一對多是預設設定,這是有原因的;雙向篩選會帶來歧義,還可能算出錯誤的總計。
  • 多對多關係該怎麼處理? 用一張橋接表,並說明之後的總計具體代表什麼含義。
  • 為什麼需要一張專門的日期表? 時間智慧函式需要一張連續且標記好的日期表;沒有它,年初至今和去年同期的度量值都會出錯。
  • 這個轉換該放在 Power Query 裡做,還是用 DAX? 能在 Power Query 裡做就在那裡做整形,因為那裡的轉換只在重新整理時執行一次,而不是每次查詢都執行。

一位為零售報表團隊面試的 BI 分析師被問到:為什麼銷售總額按產品看是對的,按地區看卻不對。面試官想要的答案是建模層面的:雙向關係造成了有歧義的篩選路徑,而不是重寫 DAX。先從模型層面去診斷,才是他們在考察的本能。

更多按崗位劃分的題庫見按角色劃分的面試問題

關於重新整理、安全和部署,他們會問什麼?

這些問題多出現在 BI 開發工程師和分析工程師的面試中,也正是那些只在 Power BI Desktop 裡搭建過報表的候選人會沒話可說的地方。

  • Import、DirectQuery 還是 Composite? Import 查詢最快,但受限於記憶體和重新整理視窗。DirectQuery 能保持資料最新,但會把負載推給資料來源,且存在 DAX 限制。Composite 則是兩者混合。要說出取捨,以及決定選哪個的那一個關鍵條件。
  • 本地資料閘道器是做什麼用的? 用於把雲服務連線到企業網路背後的資料來源,支援定時重新整理和 DirectQuery。
  • 增量重新整理是怎麼工作的? 按日期範圍分割槽,讓只有最近的分割槽需要重新載入,並按該功能要求的範圍參數進行配置。
  • 你會怎麼實現行級安全性? 用帶有 DAX 篩選表示式的角色作用在維度表上,並用當前登入使用者函式在對映表中查詢該使用者,實現動態安全性。
  • 工作區、應用、資料集、報表之間是什麼關係? 這是基礎的服務層面常識,也是一個只在 Desktop 裡做過事的人很容易答錯的簡單問題。
  • 你會怎麼最佳化一份很慢的報表? 減少每頁的視覺物件數量,優先用度量值而不是計算列,降低關係列上的基數,並用效能分析器排查。

如果你的經驗完全限於 Desktop,就直說,並說明你還需要學什麼。面試官能接受被明確說出的短板;他們不能接受被編出來的部署經驗,因為下一個追問就會拆穿它。

Power BI 面試該怎麼練習?

Power BI 的回答一開口就會以一種特定的方式露餡:候選人明明知道區別在哪裡,卻說得繞來繞去,因為他從來只是靠點滑鼠來“演示”這個區別,而不是靠說出來。讀題庫能帶來的只是“眼熟”,而這種眼熟一旦遇到陌生人當面發問、還在等你回答,就會瞬間崩塌。

從上面的問題裡挑出你最不想被問到的五個,不看螢幕,在九十秒內大聲說出每一個的答案。如果你連 CALCULATE 是做什麼的都得畫圖才能說清楚,那你在面試現場也說不清楚。相比重讀筆記,用會追問的 AI 面試官反覆練習這些問題更接近真實對話,這正是 模擬面試 模式的設計初衷。

SubcueAI 創始人 Aaron Cao 把這個練習模式的重心放在了“反覆開口說”上,而不是內容本身的呈現,因為題目清單從不稀缺,稀缺的是開口說的次數。在真實面試中,桌面客戶端和瀏覽器擴充套件的側邊欄可以在面試官講話時同步呈現結構,這對你本就熟悉的內容幫助最大。設定步驟見使用教程頁面。

常見問題

Power BI 面試會包含上機實操測試嗎?

通常會。常見形式是給一份資料集和一個簡短任務:搭建一個模型、寫兩三個度量值、做出一個視覺物件。也有些團隊會改為審查你已經做好的報表,追問你為什麼做出每一個建模選擇。

Power BI 崗位需要多少 SQL 知識?

至少要能讀寫連線、聚合和視窗函式,因為很多整形工作發生在上游。分析工程師和 BI 開發工程師崗位要求更高,還會涉及查詢效能,以及檢視或儲存過程如何為資料集提供資料。

Power BI 面試中最常被問到的單個問題是什麼?

度量值與計算列的區別。它出現在各個級別的面試中,因為答案能顯示出你是否真正理解儲存方式、計算時機和求值上下文,還是只知道其中一個會隨切片器更新。

面試前需要學 DAX Studio 或 Tabular Editor 嗎?

分析師崗位不是必須的,但對開發工程師崗位來說,提到這兩個工具能體現深度。比起是否真的用過,更重要的是能說清你會用它們做什麼,比如檢視查詢計劃或批次編輯度量值。

AI 助手能在真實的 Power BI 面試中提供幫助嗎?

它能在面試官說話的同時呈現出結構,這在你本就熟悉相關內容時最有用。它無法替代反覆練習,而且螢幕共享、錄製會話、有監考的測評以及公司託管電腦都不在其適用範圍內。

相關問題

← 更多關於 依職位與主題分類的面試問題