本章我們將給大家介紹 FineBI 推薦大家使用哪些模型結構。
建立模型模型結構繞不開「維度表」和「事實表」:
維度表:維度表是描述和儲存業務資料屬性詳細資訊的表格。維度是使用者分析問題的角度。例如,一個產品維度表可能包含產品ID、產品名稱、產品類型等欄。維度表提供了對業務資料進行分組、篩選和分析的維度屬性。
事實表:事實表是包含指標欄位的表,這些指標用來衡量事實。事實表是主題模型中的核心表,包含了與業務程式相關的指標欄位,如銷售數量、銷售金額、利潤等。維度表可以透過與事實表的建立模型關係來提供上下文資訊。每一行記錄在事實表中表示一個業務事件或事實。
在本文中:維度表用橙色標識、事實表用藍色標識。
星型結構
星型模型就像是一個星星,有一箇中心的「事實表」,週圍圍繞着多個「維度表」,就像是星星的射線。
事實表是中心的核心,而維度表提供了與事實相關的上下文資訊。每個維度表都與事實表存在一對多的關係,透過共享的鍵值進行連結,就像星星的射線連結到中心。這種結構讓我們可以靈活地按照不同的維度對資料進行切片和分析,就像可以從不同的角度觀察星星。星型模型設計簡單易懂,同時查詢效能也比較高。
雪花結構
雪花模型與星型模型類似,都包含了事實表和維度表。但在維度表的組織方式上有所不同。在雪花模型中,維度表被細分成多個規範化的表格,形成了多層級結構,就像雪花一樣展開。
比如說「區域維度表」又由「國家維、省份維、城市維」三張表提供上下文資訊。
在 FineBI 中不支援多個事實表共享多張維度表。
例如下圖,「銷售事實表」和「庫存事實表」共享了兩張維度表:「品牌維度表」和「類別維度表」。
在 FineBI 中不能如下圖直接建立聯動。那我們該如何處理呢?
方法一:將多張維度表進行左右合併,合併成一張維度表後,再與多個事實表建立模型關係。
注:若維度表沒有能作為合併依據的欄位,也可以直接進行 crossjoin 合併
方法二:將多張事實表進行左右合併,合併成一張事實表後,再與多個維度表建立模型關係。
場景一:鍵值完整
若建立模型關係的兩張事實表中,有一側的事實表中的鍵值是完整的,就可以直接建立 N:N 的模型關係。
例如下面這個例子:
一般來說,庫存裏的產品是最全的,只要入庫了就會有該產品的記錄。而銷售事實表中只有當產品售賣出去才會有該產品的記錄。
所以說「庫存事實表」裏的鍵值「產品鍵」是完整的,這個時候我們就可以直接對這兩張表建立 N:N 的模型關係。
場景二:鍵值不完整
若建立模型關係的兩張事實表中,兩側事實表的鍵值都不完整,它們的鍵值中都有對方沒有的資料。這種情況下直接建立 N:N 的模型關係可能會導致計算結果不正確。
那該怎麼做呢,我們來看下面這個例子:
「預售事實表」與「退貨事實表」以「產品鍵」建立模型關係。但它們兩張表中都有對方沒有的產品,也就是說兩張表「產品鍵」都不完整,這時候我們可以將鍵值和兩端事實表中共同的維度提取出來,進行上下連接並去除重複值,獲得一張完整的維度表。
再用這個維度表與兩側事實表建立 1:N 的模型關係。
在製作主題模型的時候若我們需要以多個欄位作為匹配依據該怎麼處理呢?
例如下面這個案例需要「部門、地區」欄位共同作為合併依據。
這個時候,我們可以給兩張表各新增一個輔助欄位「合併依據」。
新增公式列,輸入 地區+部門,如下圖所示:
建立主題模型時,用「合併依據」作為匹配欄位即可。如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙