Tableau 資料模型
您在 Tableau 中建立的每個資料來源都有一個資料模型。可以將資料模型視為一個圖表,它會向 Tableau 指出應如何在已連線的資料庫表中查詢資料。
您在「資料來源」頁面中新增到畫布的表會建立資料模型的結構。資料模型可能很簡單,例如單一表。或者,也有可能包含多個表而較為複雜,每個表分別使用關係、聯結和聯集的不同組合。
資料模型分成兩層:
- 您最初在「資料來源」頁面畫布中看到的預設檢視,是資料來源的邏輯層。您可以使用關係(或關聯線)將邏輯層中的資料合併起來。請將這一層視為「資料來源」頁面中的「關係」畫布。有關詳情,請參閱使用關係進行多資料表資料分析(連結在新視窗開啟)。
- 下一層是實體層。可以使用聯結(連結在新視窗開啟)和聯集將實體層的表之間的資料合併起來。每個邏輯資料表都至少包含此層中的一個實體資料表。請將實體層視為「資料來源」頁面中的「聯結/聯集」畫布。按兩下邏輯資料表即可檢視或新增聯結和聯集。
邏輯層 | 實體層 | |
---|---|---|
關聯線 = 關係 | 文氏圖表 = 聯結 | |
具有多個相關表之資料來源的上層檢視。這是邏輯層。邏輯資料表可使用關係(關聯線)進行合併。不會使用聯結類型。它們就像實體表的容器。 | 按兩下邏輯資料表加以開啟,並查看其實體資料表實體資料表可使用聯結或聯集進行合併。在此範例中,Book 邏輯資料表由三個聯結的實體資料表 (Book、Award、Info) 組成。 |
邏輯層 | 實體層 | |
---|---|---|
「資料來源」頁面中的「關係」畫布 | 「資料來源」頁面中的「聯結/聯集」畫布 | |
您在此處拖動的表稱為邏輯資料表 | 您在此處拖動的表稱為實體資料表 | |
邏輯資料表可以與其他邏輯資料表建立關聯 | 實體資料表可以與其他實體資料表建立聯結或聯集 | |
邏輯資料表類似於實體資料表的容器 | 按兩下邏輯資料表即可查看其實體資料表 | |
詳細程度取決於邏輯資料表的列層級 | 詳細程度取決於合併實體資料表的列層級 | |
邏輯資料表會保有差異性(標準化),不會合併到資料來源中 | 實體資料表會合併到定義邏輯資料表的一個二維資料表中 |
資料模型層
您在資料來源中看到的上層檢視就是資料模型的邏輯層。您也可以將其視為「關係」畫布,因為您在此是使用關係而非聯結來合併表。
合併來自多個表的資料時,拖曳至邏輯層畫布上的每個表,都必須與另一個表有關係。不需要為關係指定聯結類型;Tableau 會在分析期間依據工作表中的分析欄位和內容自動選取適當的聯結類型。
資料模型的實體層是指您可以使用聯結和聯集進行資料合併之處。您在此畫布中只能使用樞紐。您可以將其視為「聯結/聯集」畫布。在先前版本的 Tableau 中,實體層是資料模型中唯一的層。每個邏輯表都可以含有一或多個實體表。
重要資訊:您仍可在 Tableau 中建立使用聯結和聯集的單一表資料來源。Tableau 中的單一表分析行為並未變更。您的工作簿在升級之後,運作方式將會與 2020.2 之前相同。
瞭解詳情:有關使用關係合併資料的相關資訊,另請參閱以下主題和部落格文章:
- 關係與聯結的不同之處
- 使用關係進行多資料表資料分析
- 與您的資料建立關聯
- 關係,第 1 部分:在 Tableau 中導入新的資料建模(連結在新視窗開啟)
- 關係,第 2 部分:提示和技巧(連結在新視窗開啟)
- 關係,第 3 部分:在多個關聯資料表中提問(連結在新視窗開啟)
另請參閱「動作分析」(連結在新視窗開啟)中有關關係的影片播客,例如 Tableau 為何發明關係?(連結在新視窗開啟)按一下內容庫(連結在新視窗開啟)中的「影片播客」以查看更多資訊。
瞭解資料模型
在 Tableau 的早期版本(2020.2 之前)中,資料模型僅具有實體層。在 Tableau 2020.2 和更高版本中,資料模型有邏輯(語意)層和實體層。此提供更多選項,讓您可使用架構來合併資料,以符合您的分析。
在舊版的 Tableau(2020.2 之前)中,資料來源中的資料模型是由單一實體層組成,可以在其中指定聯結與聯集。新增到實體層(透過聯結或聯集)的表會建立單一扁平表(非標準化)以進行分析。
先前的版本 | 2020.2 及更高版本 | |
---|---|---|
在 Tableau 2020.2 及之後的版本中,資料來源中的資料模型包含實體層上方的新語意層(又稱為邏輯層),您可以在其中新增多個表並相互建立關聯。邏輯層的表不會合併到資料來源中,而會保有差異性(標準化),並保有其原生的詳細程度。
邏輯資料表的作用類似於合併實體資料表的容器。邏輯表可以包含單一實體表。或者,它可以包含透過聯結或聯集合併在一起的多個實體表。
建置新模型
當您將一或多個表新增至邏輯層時,您實質上將會為資料來源建置資料模型。資料來源可以由單一邏輯資料表組成,您也可以將多個表拖曳至畫布以建立更複雜的模型。
- 拖曳至畫布的第一個表將成為資料來源中的資料模型的根表。
- 拖出根表後,即可按任意順序拖出其他表。您必須考量哪些表應相互關聯,以及您為每個關係定義的相符欄位配對。
- 如果您要建立星型架構,建議您先將事實資料表拖出,然後再建立維度表與該表的關聯。
- 刪除畫布中的表後,也將自動刪除其相關的下級。如果刪除根表,則模型中所有其他的表也將移除。
- 每個關係都必須至少由一個相符的欄位對組成。新增多個欄位對可建立複合關係。相符的對必須具有相同的資料類型。變更「資料來源」頁面中的資料類型,並不會變更此需求。Tableau 仍將使用基礎資料庫中的資料類型進行查詢。
- 關係可以基於計算欄位。
- 定義關係時,可以透過使用運算子指定應如何比較關係中使用的欄位。
如需關係的詳細資訊,請參閱建立和定義關係和與您的資料建立關聯。
多表模型
- 要建立多表模型,請將表拖曳至「資料來源」頁面畫布的邏輯層上。
您拖曳至「資料來源」頁面畫布的邏輯層上的表必須相互關聯。當您將其他表拖曳至邏輯層畫布時,Tableau 會根據現有的索引鍵約束和相符欄位自動嘗試建立關係,以定義關係。若 Tableau 無法確定相符欄位,就必須由您選取。
如果未偵測到約束,則會建立多對多關係,且參考完整性會設定為「部分記錄相符」。這些預設設定是安全的選項,並且可為您的資料來源提供最大的彈性。預設設定支援完整外部聯結,並可藉由在分析期間形成聯結之前彙總表資料,來優化查詢。每個表中的所有欄和列資料將可用於分析。
您可以按兩下任何邏輯資料表,藉以在該表內新增更多資料。這會開啟「資料來源」頁面畫布的實體層。若您需要使用聯結或聯集,您可以將要建立聯結或聯集的表拖曳至實體層畫布中。實體資料表會合併到其邏輯資料表中。
若要合併多個表,請依照建立和定義關係中的步驟操作。
單一表模型
- 要建立單一表模型,請將表拖曳至「資料來源」頁面的邏輯層畫布中。然後,您可以在「資料」窗格中使用該表中的欄位進行分析。
包含其他表的單一表模型
您可以按兩下單一邏輯資料表,藉以在該表內新增更多資料。這會開啟「資料來源」頁面畫布的實體層。若您需要使用聯結或聯集,您可以將要建立聯結或聯集的表拖曳至實體層畫布中。實體資料表會合併到其邏輯資料表中。
此範例顯示資料來源的「關係」畫布(邏輯層)中的 Book 表。按兩下 Book 邏輯資料表,會開啟「聯結/聯集」畫布(實體層)。
在此範例中,聯結會將 Award 和 Info 這兩個表與 Book 表合併。在此情況下,Book 與 Award 之間的聯結將是一對多的聯結,而詳細程度取決於 Award。這將會複製 Book 和 Info 的度量值。為了避免重複,您可以將 Award 和 Info 與 Book 建立關聯,而不是將前二者聯結至 Book 邏輯資料表中。
支援的資料模型架構
Tableau(版本 2020.2 及之後的版本)推出的資料建模功能旨在簡化常見多表資料方案(包括星型與雪花型資料模型)的分析。Tableau 資料來源支援以下類型的模型。
單一表
對包含維度和度量混合的單一邏輯資料表進行分析的運作方式,與 Tableau 2020.2 預發行版本的運作方式相同。您可以使用聯結、聯集、自訂 SQL 等機制的組合來建置邏輯資料表。
星型和雪花型
在企業資料倉儲中,常會在星型或雪花型架構中結構化資料,其中,度量包含在中央事實資料表中,而維度則單獨存放在獨立的維度表中。此資料組織支援許多常見的分析流程,包括彙總和向下切入。
這些模型可以直接使用 Tableau 2020.2 以及之後版本中提供之資料建模功能中的關係來表示。
請先將事實資料表拖曳至模型中,然後建立維度表與事實資料表(在星型架構中)的關聯,或建立與其他維度表(在雪花型架構中)的關聯。
通常,在建模良好的星型或雪花型架構中,事實資料表和維度表之間的關係會是多對一。如果此資訊已在您的資料倉儲中編碼,Tableau 會自動使用該編碼來設定關係的效能選項。如果沒有,您可以自行設定此資訊。有關詳情,請參閱使用效能選項最佳化關係查詢。
在妥善建模的星型或雪花型架構中,事實資料表中的每一列在每個維度表中都有一個相符項目。如果此情況為真,並且侷限於資料倉儲完整性限制,Tableau 將自動使用此資訊,在「效能選項」中設定參考完整性設定。如果某些事實資料表列在維度表(有時稱為「延遲到達維度」或「提早到達事實」)中沒有相符列,則 Tableau 會預設為在計算度量時保留所有列,但在顯示維度標頭時可能會捨棄值。有關詳情,請參閱使用效能選項最佳化關係查詢。
在多個表中具有度量的星型和雪花型
在某些星型或雪花型架構中,您分析的所有度量會包含在事實資料表中。但是,通常其他感興趣的度量可能與分析中的維度表相關。即使維度表不包含度量,分析中也常需計數或彙總維度值。在這類情況下,事實資料表和維度表之間的差異較不明顯。若想清楚檢視您的資料模型,建議您先將最精細的表新增至資料來源畫布,然後再將所有其他表關聯至第一個表。
如果要將這些表聯結到單一邏輯表中,則會複製維度表中的度量,造成彙總失真,除非您採取預防措施,否則無法使用 LOD 計算或 COUNT DISTINCT 來刪除重複的值。但是,如果改為在這些表之間建立關係,Tableau 會先彙總度量,然後再執行聯結,以避免不必要的重複問題。這樣做可讓您不必仔細追蹤度量的詳細層級。
多事實分析
在版本 2024.2 及之後版本中,Tableau 的資料建模功能可透過使用多重要素關係支援多事實分析。有關如何建立多重要素關係資料模型的深入資訊,請參閱:
多事實關係模型(具有多個基底資料表的資料模型)在當模型中還存在共用資料表時,允許模型中存在非關聯資料表。在分析過程中,共用資料表中的欄位根據其共有的共用維度(例如發生在同一地點或同一時間)將原本非關聯資料表「拼接」在一起。這樣可以保留關係的所有好處,包括保留每個資料表的粒度或原生詳細資料層級。
與單一基底資料表資料模型類似,Tableau 根據視覺效果的結構來確定在幕後使用的最佳聯結類型。但在多事實關係模型中,聯結選項已擴展為包括外部聯結和交叉聯結,以處理不同層級的關聯性。有關詳情,請參閱關於多事實關係資料模型(連結在新視窗開啟)。
附註:從版本 2020.2 到 2024.1,僅當事實資料表(包含度量)與單一維度資料表關聯時才可以將事實資料表(包含度量)新增至星型和雪花模型。
例如,您可以將兩個或更多事實資料表放在一起,以分析共用維度,例如 Customer 360 之類的分析。這些事實資料表的詳細程度可以與維度表不同,或彼此不相同。這些資料表也可具有與維度表之間的多對多關係。在這類情況下,Tableau 可確保值在彙總之前不會進行複製。
如果您沒有與事實資料表相關的共用維度表,您可以偶爾使用自訂 SQL 或使用其他維度表的聯結或聯集,來動態建置一個維度表。
兩個事實資料表可以在通用的維度上直接互相關聯。當其中一個事實資料表包含常用維度的超集合時,這種類型的分析效果最好。
有多種情境可能表明您應該使用多個基底資料表而不是單一基底資料表資料來源來建置多事實關係模型:
- 循環關係。不支援循環關係。如果嘗試建立含循環的資料來源,請使用多重要素關係並將下游資料表設為另一個基底資料表。
- 符合尺寸與上下文或關係。如果您有一系列與同一組關係子句(比如日期和位置)關聯的資料表,則應將這些維度拉出並製作為共用資料表。
- 這特別有用,因為多個關係子句必須全部為 true(邏輯上為 AND)才能使資料表與這些記錄關聯。
- 相反,若想分析的記錄中每次有一筆記錄可能為 true(關聯式 OR),則可以透過設定具有共用維度資料表的資料模型來提供這種彈性。
- 等效混合。如果要使用混合,但想要使用等效混合,即沒有主資料來源與從屬資料來源,請組建一個資料模型,在其中將混合中的資料來源與其在共用資料表中的連結欄位組合起來。
資料模型中的關係需求
- 建立表關聯時,定義關係的欄位必須具有相同的資料類型。變更「資料來源」頁面中的資料類型,並不會變更此需求。Tableau 仍將使用基礎資料庫中的資料類型進行查詢。
- 您無法根據地理欄位來定義關係。
- 資料模型中不支援循環關係。
- 您無法定義發行資料來源之間的關係。
導致使用相關表的效益受限的因素
- 表中的混雜資料(亦即,表在建立之初未考量模型結構的妥善性,且混雜了多個表中的度量和維度)可能致使多資料表分析更為複雜。
- 使用資料來源篩選條件時,Tableau 在資料中執行聯結挑選的能力將會受限。「聯結挑選」一詞是指 Tableau 藉由移除不必要的聯結來簡化查詢的機制。
- 表中包含許多在各關係間不相符的值。
- 將多重要素資料表與多個維度資料表相互關聯(嘗試使用共用或一致的維度建模)。可在版本 2024.2 及之後版本中使用多重要素關係處理這些情況。