減少基數
基數一詞用於描述資料行中值的唯一性。 基數也用於在兩個資料表之間關聯性的內容中描述關聯性方向。
識別資料行中的基數層級
先前當使用 Power Query 編輯器來分析中繼資料時,[檢視] 索引標籤上的 [資料行散發] 選項會顯示統計資料,指出資料中每個資料行中有多少相異與唯一項目。
相異值計數 - 在指定資料行中找到的不同值總數。
唯一值計數 - 在指定資料行中只出現一次的值總數。
在其範圍內有許多重複值的數據行, (唯一計數很低,) 會有低層級的基數。 相反地,在其範圍內具有大量唯一值的資料行 (唯一計數高),則具有較高的基數層級。
較低的基數會導致效能更優化,因此您可能需要減少語意模型中的高基數數據行數目。
減少關聯性基數
當匯入多個資料表時,即可使用這些資料表中的資料來進行一些分析。 這些資料表之間的關聯性,對於精確地計算結果並在報表中顯示正確資訊來說是必要的。 Power BI Desktop 可供更輕鬆地建立這些關聯性。 事實上,在大部分情況下,無須執行任何動作,自動偵測功能即會為您完成。 不過,有時可能會需要建立關聯性,或變更關聯性。 不論如何,請務必了解 Power BI Desktop 中的關聯性,以及如何加以建立與編輯。
當建立或編輯關聯性時,您也可設定其他選項。 根據預設,Power BI Desktop 會以合理猜測來自動設定其他選項,而根據資料行中的資料,每個關聯性可能會有所不同。
關聯性可有不同基數。 基數是關聯性的方向,而每個模型關聯性都必須以基數類型來定義。 Power BI 中的基數選項包括:
多對一 (
*
:1) - 此關聯性是最常見的預設類型。 這表示一個資料表中資料行可有超過一個值的執行個體,而其他相關資料表 (通常稱為查閱資料表) 則只有一個值的執行個體。一對一 (1:1) - 在此關聯性類型中,一個資料表中資料行只有一個特定值的執行個體,而另一個相關資料表只有一個特定值的執行個體。
一對多 (1:
*
) - 在此關聯性類型中,一個資料表內之資料行只有一個特定值的執行個體,而另一個相關資料表可以有超過一個值的執行個體。多對多 (:) - 使用複合模型時,您可在資料表之間建立多對多關聯性,這會消除在資料表中對唯一值的需求。 其也會消除先前的因應措施,例如只引進新的資料表來建立關聯性。
在開發期間,您會在模型中建立和編輯關聯性,因此當您在模型中建立新的關聯性時,不論您所選擇的基數為何,一律確定您用來參與關聯性的兩個數據行都會共用相同的數據類型。 如果嘗試在兩個資料行之間建立關聯性,而其中一個資料行具有文字資料類型,另一個資料行則具有整數資料類型,則模型永遠無法運作。
在下列範例中,[ProductID] 欄位在產品和銷售資料表中具有 [整數] 資料類型。 資料類型為 [整數] 其資料行效能會比資料類型為 [文字] 的資料行更好。
透過減少基數層級來改善效能
Power BI Desktop 提供不同的技術,可讓您用來協助減少載入語意模型的數據,例如摘要。 減少載入模型中資料將會改善報表的關聯性基數。 基於此原因,請務必盡可能將載入模型的資料降到最低。 這種情況特別適用於大型模型,或所預期的模型會隨著時間成長而愈來愈大。
減少模型大小最有效方法可能是使用資料來源中的摘要資料表。 在詳細資料表可能包含每筆交易的情況下,摘要資料表會包含每日、每週或每月一筆記錄。 例如,其可能是每日所有交易的平均值。
例如,來源銷售事實資料表會為每個訂單明細儲存一個資料列。 如果依日期、客戶和產品來分組,且不需要個別交易詳細資料,則可藉由彙總所有銷售計量來達成顯著的資料縮減。
請考慮藉由依月份層級的日期分組,來達到更顯著的數據縮減。 這可能會降低模型 99% 的大小;但是,即無法再以日層級或個別訂單層級進行報告。 如果決定摘要事實類型的資料,則一律會需要取捨資料的細節。 缺點是,您可能會因為詳細數據已不存在而失去鑽研數據的能力。 使用混合模型設計則可降低這種取捨。
在 Power BI Desktop 中,混合模式設計會產生複合模型。 基本上,其可供決定每個資料表的儲存模式。 因此,每個資料表都可將其儲存模式屬性設為 [匯入] 或 [DirectQuery]。
減少模型大小的一項有用技術是將較大型事實類型資料表其儲存模式屬性設為 [DirectQuery]。 此設計方法可與摘要資料的技術搭配使用。 例如,摘要銷售資料可用來達成高效的「摘要」報告。 您可建立鑽研頁面以顯示特定 (和縮小) 篩選內容的細微銷售資料,並顯示所有情境的銷售訂單。 鑽研頁面包含以 DirectQuery 資料表為基礎的視覺效果,以用於取得銷售訂單資料 (銷售訂單詳細資料)。
如需詳細資訊,請參閱匯入模型的資料減少技術。