接續「Power BI學習心得分享一」,本篇介紹資料表關聯。
在Power BI有所謂的建立資料模型(Modeling),乍看不知何意,其實就是建立資料表之間的關聯性。因為實務上,資料表可能來自不同來源,比如訂單資料來自業務部,人事資料來自人事部,廠商資料來自採購部,各自維護更新,當需要分析時再串連一起。又如同樣是紀錄廠商資料,會計部重點在統編、銀行帳戶、匯款紀錄、發票地址等,而採購部重點在產品型號、價格、數量等,平常各自為政,當需要串連時,就要用到資料表關聯。
在串連資料時,不需要把資料壓平合併成一份大資料表,只要事先定義它們之間的關聯性,就可以同時使用多份資料表。再者,您可以建立自訂計算式,創造出新量值,並在視覺效果中使用,以利建立模型。
舉例在北風資料庫中,將客戶、訂單、訂單詳細資料、員工、產品等五張資料表同時匯入PBI,雖然它會自動識別資料表中的關聯,但不一定正確,而且不一定完整,所以我們仍須手動。
上圖中<客戶1>與<訂單詳細資料3>,自動以[識別碼]為key連結,但事實上那只是各自的流水號,完全沒關係。
而<訂單2>與<訂單詳細資料3>,以[訂單識別碼]為key連結則是對的,連線二端有1與*,即1對多的關係。代表[訂單識別碼]在<訂單2>是不重複的唯一key,但在<訂單詳細資料3>裏則是可重複的。這是因為每一筆訂單在<訂單2>中只有一筆紀錄,但同一筆訂單可能有多種產品,所以在<訂單詳細資料3>就有多筆紀錄了。
因此在建立資料表關聯前,必須先把資料結構搞清楚。上面的五個資料表中,<訂單2>與<訂單詳細資料3>屬日誌型,即每天每月不斷增加;但<客戶1>、<員工4>與<產品5>屬事件型,即當客戶、員工或產品有異動時才會變動,且一筆紀錄就是一個客戶、員工或產品,是不重複的。
建立關聯性很直覺,例如下圖,在<客戶1>[識別碼]上滑鼠按右鍵,拉線拖曳至<訂單2>[客戶識別碼]上,然後放開,建立二個資料表的關聯。完成後如下下圖所示。
不過,建立關聯也有其他方法,按下{管理關聯}按鈕,出現資料關聯列表,這時你可以新增或編輯原有的關聯。在新增畫面中,分別點選資料表與資料欄位,即可完成關聯。
正確設定資料表間的關聯性,有如將眾多資料表合併成一張大資料表,可讓您建立跨多個資料表的複雜計算,但又具有分散維護的優點。
在結束前,筆者透露一個實務技巧,當以國名為key連結二個資料表,但二者的命名又略有不同,例如南韓與大韓民國,這時你可以自建一個資料表,內含國名1、國名2及統一國名,將此資料表分別連結原二資料表,透過新資料表的喬接,便可將二個不同國家命名的資料表加以關聯,分享大家。
下次介紹主題--圖像式分析,敬請期待。
註:北風資料庫 https://drive.google.com/open?id=1uXS1yR3BAY9kU--8Uhrp-JpgSUfndpQV