來自課程案例學習
某跨國食品超市的信息管理系統,每天都會記錄成千上萬條各地連鎖超市的銷售數據。基於大數據的背景,該公司的管理層決定建立FoodMart數據倉庫,期望能從龐大的數據中挖掘出有商業價值的信息,來進一步幫助管理層進行決策。
設計一個銷售數據倉庫。要求:
1、至少4個維度,每個維度至少3個屬性,盡量包含維層。
2、至少1個事實表。
3、數據源能獲取(設計的維度和度量字段應該在數據源中直接或間接得到)。
* 以下使用SQL Server Integration Services (SSIS)
(一)設計數據倉庫概念模型,設計如下:
* 可以根據自己的想法設計概念模型,可以是雪花型,可以是星型
(二)數據倉庫數據源、數據視圖、維度表裝載
1.建立一個項目
2.將數據集導入sql server(本文將access數據庫先轉到sql server,再在SSIS里使用,也可以直接在SSIS里使用Access驅動)
3.建立與sql server的連接
4.依次裝載數據產品維、顧客維、日期維、連鎖店維、促銷維。
產品維中涉及兩個表product、product_class,根據生成查詢獲得了想要的數據
目標編輯器選擇新建表來存入數據倉庫。
同理裝載商品維
同理裝載促銷維
裝載客戶維
同理裝載時間維
這里需要將時間字符串進行分割,使用派生列和日期函數,分別建立年、月、日(ps:這里不需要手動建立時間維,數據倉庫提供了建立時間維的模板,這里后面會提到)
5.裝載事實表
這里需要對匯率進行轉換,將saledetail表和currency分別處理(查找、派生、排序等)后通過合並轉換的內連接,使得匯率與交易的地區相對應,再加派生列,計算所得的利潤。具體的細節如下:
1) 需要將currency的地區和日期與saledetail地區與日期做處理,才能夠相對應
2)兩邊的數據進行內連接
3)通過派生列計算利潤
4)裝載數據成功,共計251395行
6.結果如下:
在SQL數據庫里可以查看裝載好的數據倉庫
7.在Sql數據庫中設置每周六晚24時自動執行裝載新業務數據
要把所有者改為[sa],才可以運行成功
歡迎小伙伴的批評指正~