在 Power BI Desktop 中套用 [採用參考完整性] 設定
使用 DirectQuery 連接到資料來源時,您可以使用 [假設引用完整性 ] 選取專案,針對數據源執行更有效率的查詢。 這項功能對於基礎資料有幾項需求,而且只有在使用 DirectQuery 時才能加以存取。
設定 [假設引用完整性] 可讓數據源上的查詢使用 INNER JOIN 語句,而不是 OUTER JOIN,以改善查詢效率。
使用假設引用完整性的需求
這是進階設定,只有在使用 DirectQuery 連接到資料時才能啟用。 假設引用完整性正常運作時,需要下列需求:
- 關聯性中 [從] 資料行內的資料一律不得為 Null 或「空白」
- 針對 [從] 資料行中的每個值,[至] 資料行中會有對應的值
在此情況下,[從] 資料行可以是「一對多」關聯性中的「多」,或是「一對一」關聯性中第一個資料表的資料行。
採用參考完整性的使用範例
下列範例示範 假設引用完整性 在數據連線中使用時的行為。 此範例會連接到包含 Orders 資料表、Products 資料表和 Depots 資料表的資料來源。
下圖顯示 Orders 資料表和 Products 資料表,Orders[ProductID] 和 Products[ProductID] 之間存在參考完整性。 Orders 資料表中的 [ProductID] 資料行永遠不可為 Null ,而且每個值也都會出現在 Products 資料表中。 因此, 假設引用完整性 應設定為取得更有效率的查詢。 使用此設定並不會變更視覺效果中顯示的值。
在下圖中,請注意 Orders[DepotID] 和 Depots[DepotID] 之間不存在參考完整性,因為某些 Orders 的 DepotID 為 Null。 因此,不應設定假設引用完整性。
最後,下表中沒有 Orders[CustomerID] 和 Customers[CustID] 之間的參考完整性。 CustomerID 包含 Customers 數據表中不存在的值 CustX。 因此,不應設定假設引用完整性。
設定假設引用完整性
若要啟用此功能,請選取 [ 假設引用完整性 ],如下圖所示。
選取時,此設定會向資料驗證,以確保沒有 Null 或不相符的資料列。 不過,如果有非常大量的值,此驗證並無法保證沒有參考完整性問題。
此外,驗證發生於編輯關聯性時,因此「不會」反映資料的任何後續變更。
如果您未正確設定假設引用完整性,會發生什麼事?
如果您在資料中有引用完整性問題時設定 [假設引用完整性 ],該設定不會產生錯誤。 但會導致資料中出現明顯的不一致情況。 例如,針對這裡所述的 Depots 資料表關聯性,此設定會造成下列結果:
- 顯示訂單數量總計的視覺效果會顯示值為 40。
- 顯示 Order Qty by Depot City 總計的視覺效果顯示總值只有 30 ,因為不包含 DepotID 為 Null 的 Order ID 1。
相關內容
- 深入了解 DirectQuery。
- 取得有關 Power BI 中的關聯性的詳細資訊。
- 深入瞭解 Power BI Desktop 中的模型檢視。