就像在第十天提到的,雖然 Power BI 有內建資料轉換的功能,但現在我傾向用 dbt 完成所有的資料處理,讓 Power BI 的語意模型只管理 Dimensional Model 中表格與表格間的關聯性以及指標計算邏輯就好 (DAX)。下面會先簡單示範一下在 dbt 大概做哪些資料處理,接著再簡單介紹 Power BI 的資料模型功能。
來人啊,先上圖!
上面做了一個簡單的專案介紹從資料源到資料市集大概會長怎樣,因為是個很陽春的專案,所以其實不太複雜。順序大概是:
orders
除外,因為他在資料源的更新是 immutable 的。(欄位的值只要被 insert 就不會再變動了,當然以防萬一要 snapshot 也是可以。)dim_date
沒有上游是因為我用 dbt 的套件直接生成表格。dim
的 surrogate_key populate 到 fct_orders
中。其中,Power BI 會連接的 只有 dim
跟 fct
。
在選擇好資料庫,以及輸入伺服器位置等等資訊後,就可以開始匯入資料了,如下圖所示,把需要的 dim
跟 fct
勾選起來,就可以一次匯入數張表格
匯入後, Power BI 會開始自動偵測資料模型,下面是經試驗後歸納出的他的偵測方式:
偵測後,點擊左邊工具列的資料模型:
接著,就可以看到,美麗的模型了:
其中,箭頭代表篩選器的篩選方向, 1
跟 *
代表一對多關係,可以看到只要是一對多關係,系統預設篩選都是從一篩到多(用維度表去篩選事實表。)之後會再介紹其他種類的關係,但只要會一對多就幾乎可以打遍天下無敵手了。
也可以點擊上方的管理關聯性,看到「關聯性」的細節:
最後,附上完成的 star schema
到目前這邊,陽春的 Power BI 語意模型就完成第一階段了,接下來只要加上利用 DAX去定義指標就完成了!但因為資料模型是 DAX 的基礎,下一篇會先介紹更多跟資料模型有關的內容,接下來才會介紹 DAX。