您位於此處:
Tableau 語意中的共用維度
透過相同的維度表格連接多個實情表格,來分析與比較資料。以乾淨且可靠的方式建立複雜且與業務相關的分析,避免重複關係,並消除語意模型中的週期。
在大多數的資料集中,不同的業務網域會個別追蹤自己的事件:銷售追蹤交易、行銷追蹤行銷活動、庫存追蹤庫存等。每個業務流程都會以一個 實情表格表示,其中包含與該網域相關的核心度量和交易資料。
為了使此資料有意義,每個實情表都會連線至一或多個維度表格,例如「產品」、「日期」、「行銷活動」、「客戶」或「供應商」。維度描述實情,並允許使用者將其分組、篩選或彙總 (例如,依日期、依產品種類、依客戶區段)。
通常,不同的實情表格會共用相同的維度。例如,行銷和銷售皆與「產品」和「日期」相關。
當實情表與共用維度相關聯時,您的組織可以讓資料保持一致並一起分析值,讓您能夠:
- 比較行銷活動成本與銷售收入 (依產品)
- 依供應商或客戶細分庫存層級和銷售績效
- 分析客戶支援活動以及購買與退貨行為。
此類查詢會跨越不同的實情表格,而共用維度會提供連結點,讓您能夠將這些事實整合在一起並並並排探索。
為了在語意模型中支援此功能,我們導入了 共用表格的概念。當維度表標記為共用時,系統會知道其可用來安全連接多個實情表格。這可啟用乾淨且不循環的多實情分析,並確保語意模型可以正確解譯和執行跨網域的查詢。
相關與非相關表格
共用表格中的其他重要概念是相關與非相關表格之間的差異。
兩個表格由定義的關係直接連結時,會被視為相關。相關表格之間的查詢會如預期運作:系統會使用定義的路徑將其聯結。
如果兩個表格完全無關 (表示兩個表格沒有直接或共用的連線),則系統無法決定如何合併資料,且查詢會失敗。
在某些情況下,表格只會透過共用維度連線。如果您從兩個實情表查詢欄位,但未包含共用表格中的欄位,且欄位未彙總,則系統會執行交叉聯結。這表示某個實情表格中的每一列皆會與另一個實情表格中的每一列相結合,因為沒有共用的索引鍵可讓這些資料列保持一致。
例如,如果「銷售」與「行銷」皆連結至共用的「產品」表格,且您查詢 [銷售][銷售數量]與 [行銷][支出]而不包含 [產品].[產品名稱],則系統只會將所有「銷售」列與所有「行銷」列結合在一起。
若要避免此情況,查詢必須包含共用表格中的欄位,例如「產品」或「日期」,該欄位會作為聯結索引鍵,並提供共用軸以分組和彙總兩個實情的值。
共用維度可讓您分析表格中的資料,但只有在查詢中正確使用時,才能從表格中進行區隔。
實情樹狀結構
實情樹狀結構是一組屬於相同業務區域且彼此連接的表格。它通常包含一或多個實情表格以及維度表格。
此結構不只是建模概念,系統會在您執行查詢時自動建立。實情樹狀結構是語意層內部組織表格的方式,以正確評估共用維度。
在上述範例圖中,「行銷」是連接至共用表格「產品」與「日期」的實情表格。這是其事實樹狀目錄。「銷售」是另一個實情表格,連接至相同的共用維度,形成個別的實情樹。此結構可讓系統瞭解每個樹狀結構如何獨立運作,同時透過共用維度啟用交叉樹狀分析。
實情樹狀結構必須保持不循環。週期導致不明確:如果系統可以透過多個路徑來到同一個表格,則可能不知道要遵循哪個路徑,或如何正確套用篩選條件和彙總。因此,不允許建立導入循環的新關係,例如將「行銷」直接連線至「子種類」(已可透過「產品」存取)。
共用維度如何影響查詢
共用維度不僅有助於建構語意模型,也控制查詢在執行階段的行為方式,以確保準確的結果和一致的邏輯。
假設您正在分析「行銷支出」與「銷售數量」之間的關係。這兩個度量來自不同的實情表格:行銷和銷售。它們本身無法有意義地對齊,因為沒有可作為分組依據的共用內容。如果您僅將兩個欄位拖曳至查詢中,而不使用共用參照,則系統無法比對資料列,且可能會傳回誤導的結果,甚至失敗。
不過,當您帶入兩個共用維度 (例如「產品」與「日期」) 時,情況就會改變。當這些項目就緒時,您可以詢問:「針對每個產品和每個月,我們的行銷支出為何,以及銷售的單位數量為何?」
由於「銷售」和「行銷」皆與「產品」和「日期」(共用表格) 連線,因此系統現在可以正確地將兩個度量 (依產品、依月份) 對齊,並傳回有意義的彙總結果:
| 產品 | 月份 | 行銷支出 | 銷售數量 |
|---|---|---|---|
| 腳踏車 | 2024 年 1 月 | 5000 | 12 |
| 腳踏車 | 2024 年 2 月 | 空 | 8 |
| 汽車 | 2024 年 1 月 | 10,320 | 22 |
| 汽車 | 2024 年 2 月 | 5000 | 10 通 |
篩選行為
系統會以避免變更非相關表格資料的方式套用篩選條件。
- 當您對實情特定欄位 (例如「行銷類型」) 套用篩選條件時,它只會篩選該實情表,而非任何其他實情或共用維度。
- 當您對共用維度 (例如「產品名稱」或「日期」) 套用篩選條件時,會套用至與其連線的所有實情表格。
此行為可防止篩選條件移除不相關的記錄。例如,如果您在「 行銷類型 」篩選條件中選取「 線上 」,則只會更新「行銷支出 -- 銷售數量」保持不受影響。
實情樹狀結構必須保持不循環。週期導致不明確:如果系統可以透過多個路徑來到同一個表格,則可能不知道要遵循哪個路徑,或如何正確套用篩選條件和彙總。因此,不允許建立導入循環的新關係,例如將「行銷」直接連線至「子種類」(已可透過「產品」存取)。
已計算欄位與實情樹狀目錄限制
計算的欄位必須遵循實情樹狀目錄的邊界。如果您建立列層級計算欄位,例如:
IF [支援].[優先順序] <= 1 THAN "High" ELSE "Low"
-- 只要該欄位保持在相同的實情樹狀結構內,該欄位就有效 (在此個案中為支援)。您可以使用它來分析模式,或根據如「客戶」或「產品」等維度篩選支援相關活動 (如果這些維度共用),一切都會如預期運作。
不過,如果您嘗試建立跨多個實情表格的計算欄位,例如:
[庫存].[數量] + [銷售].[銷售數量]
-- 平台將產生錯誤。系統會嘗試結合兩個不同實情樹中的列層級資料,且系統無法解析該運算式的一般詳細資料層級。每個實情樹狀結構都有自己的獨立細微性和篩選內容。
若要達成有效的跨實情計算,您必須獨立彙總每個實情,然後在檢視層級結合這些彙總:
SUM([庫存].[數量]) + SUM([銷售].[銷售數量])
此運算式是允許的,因為兩個度量都會在合併前進行彙總,且彙總會縮小範圍至產品層級或檢視中的任何維度。
共用維度與實情樹狀目錄的限制
- 實情表格必須保持彼此中斷連線。無法直接加入。這些項目之間的任何連線必須只透過共用的維度表格來發生。
- 列層級計算欄位 (無論是維度或度量) 必須完全包含在單一實情樹狀結構內。
- 您無法將共用表格連接至另一個共用表格,然後連接至實情表格。換句話說,在任何實情表格及其維度之間的連線路徑中只能有一個共用表格存在。例如,如果「產品」是連線至「日期」(另一個共用表格) 的共用表格,然後兩者都連線至「銷售」,則不支援此結構。
- 當您從相同查詢中的多個實情樹狀結構篩選欄位時,必須使用 AND 條件 (而非 OR) 來結合這些篩選條件。
- 建立新的共用表格
使用共用表格可透過共同維度連結多個實情表格,以跨不同表格比較記錄。這可讓資料模型保持乾淨且不含歧義,並確保篩選條件在不同資料集之間正確運作。
