使用關聯性與基數

已完成

不同於其他資料庫管理系統,Power BI 具有關聯性「方向」的概念。 在多個資料表之間篩選資料時,這個方向性扮演重要的角色。 當您載入資料時,Power BI 會透過比對資料行名稱,自動尋找存在於資料內的關聯性。 您也可以使用 [管理關聯性] 手動編輯這些選項。

例如,您已從 Sales 資料庫擷取許多數據表,下圖是語意模型的範例。 Power BI 已自動偵測數個關聯性,但是您無法辨別其意義。 您想要確保關聯性能正確反映存在於您資料中的那些關係。

範例語意模型的螢幕快照

關聯性

以下是您可以在 Power BI 中找到的不同關聯性類型。

多對一 (*:1) 或一對多 (1: *) 關聯性

  • 描述一個關聯性,其中在一個資料行中,您有值的多個例項,這些例項只與另一個資料行中唯一對應的例項相關。

  • 描述事實與維度資料表之間的方向。

  • 是最常見的方向類型,而且是當您自動建立關聯性時的 Power BI 預設值。

CountryName 與 Territory 資料表之間有一對多關聯性的範例,其中您可以有許多與一個唯一國家/地區相關聯的領域。

多對一關聯性的螢幕擷取畫面。

一對一 (1:1) 關聯性:

  • 描述一個關聯性,其中只有一個值的例項在兩個資料表之間是共通的。

  • 在兩個資料表中都需要唯一的值。

  • 不建議使用,因為此關聯性會儲存重複的資訊,並建議模型的設計不正確。 合併資料表是較好的做法。

如果您在兩個不同的資料表中有產品與產品識別碼,這就是一對一關聯性的範例。 建立一對一關聯性是多餘的,您應該合併這兩個資料表。

一對一關聯性的螢幕擷取畫面。

多對多 (.) 關聯性:

  • 描述兩個資料表之間有許多共通值的關聯性。

  • 關聯性中的任一資料表不需要唯一值。

  • 不建議使用;缺乏唯一值會造成不明確的情況,而您的使用者可能不知道值的哪個資料行參考什麼。

例如,下圖顯示 Sales 與 Order 資料表之 OrderDate 資料行上的多對多關聯性,因為多個銷售可以有多個相關聯的訂單。 因為兩個資料表可以有相同的訂單日期,所以引進了不明確性。

多對多關聯性的螢幕擷取畫面。

交叉篩選方向

可以在關聯性的一端或兩端篩選資料。

使用單一交叉篩選方向

  • 關聯性中只有一個資料表可以用來篩選資料。 例如,資料表 1 可由資料表 2 篩選,但資料表 2 無法由資料表 1 篩選。

    提示

    遵循資料表之間關聯性的箭號方向,以了解篩選將會流動的方向。 您通常會想要這些箭號指向您的事實資料表。

  • 針對一對多或多對一關聯性,交叉篩選方向將會來自「一」端,這表示篩選作業將會在內含許多值的資料表中進行。

使用雙交叉篩選方向雙向交叉篩選

  • 關聯性中只有一個資料表可以用來篩選資料。 例如,您可以透過事實資料表來篩選維度資料表,而且可以透過維度資料表來篩選事實資料表。

  • 使用雙向交叉篩選搭配多對多關聯性時,效能可能會降低。

關於雙向交叉篩選的注意事項:除非您完全了解啟用雙向交叉篩選關聯性的所有可能後果,否則不應該予以啟用。 予以啟用可能會導致不明確、過度取樣、非預期的結果,以及可能的效能降低。

基數與交叉篩選方向

針對一對一關聯性,唯一可用的選項是雙向交叉篩選。 資料可以在此關聯性的任一端進行篩選,並產生一個相異且明確的值。 例如,您可以篩選一個產品識別碼,並傳回單一產品,而且您可以篩選產品並傳回單一產品識別碼。

針對多對多關聯性,您可以選擇使用雙向交叉篩選,以單一方向或雙向進行篩選。 與雙向交叉篩選關聯的不明確性在多對多關聯性中會放大,因為不同資料表之間會有多個路徑存在。 如果您建立量值、計算或篩選,可能會發生非預期的結果,其中資料會進行篩選,而根據 Power BI 引擎在套用篩選時所選擇的關聯性而定,最終結果可能會不同。 雙向關聯性也會有這種情況,因此使用時應該格外小心。

基於此原因,多對多關聯性和/或雙向關聯性會很複雜。 除非您確定資料在彙總時的外觀,否則搭配多個篩選方向使用這些類型的開放端點關聯性可能會透過資料引入多個路徑。

建立多對多關聯性

假設您想要建立可檢查客戶與帳戶預算的視覺效果。 您可以在相同的帳戶上擁有多個客戶,並擁有多個具有相同客戶的帳戶,因此您知道您需要建立多對多關聯性。

多對多關聯性的螢幕擷取畫面。

若要建立此關聯性,請移至 [>管理關聯性][新增]。 在產生的視窗中,在 CustomerTable 與 AccountTable 中的 Customer ID 資料行之間建立關聯性。 關聯性設定為 [多對多],而且篩選類型為 [雙向]。 您會立即收到警告,表示只有在這兩個資料行都不會有唯一的值時,才應該使用這種類型的關聯性,因為您可能會收到非預期的值。 因為您想要進行雙向篩選,所以請選擇 [雙向交叉篩選]。

選取 [確定]。 您現在已成功建立多對多關聯性。

[管理關聯性] 中多對多關聯性的螢幕擷取畫面。

如需詳細資訊,請參閱 Power BI 中的多對多關聯性