数据仓库与数据挖掘 4(上)
SqlServer 2012 創建數據倉庫
開始實戰!很簡單的。沒有代碼,沒有代碼,沒有代碼!
對OnRet數據庫應用SSIS,創建ETL包,設計開發對應的數據倉庫
hive版本請看:點擊這里
實驗環境
OS:win7
SqlServer2012
SQL Server Data Tools(SSDT) (SqlServer附帶)
SSIS(SSDT的項目,是Microsoft SQL Server Integration Services的簡稱,是生成高性能數據集成解決方案(包括數據倉庫的提取、轉換和加載 (ETL) 包)的平臺)。
數據來源
OnRet數據庫:https://pan.baidu.com/s/1VFCbn9Dip3cRD4tHCBD-_Q
提取碼:whn7
下載后,打開sqlserver2012(我的版本)對象資源管理器SSMS
OnRet 數據庫為一個在線商城項目的數據庫。表格為
【請忽略我的標記為1的表格】
這樣就完成了數據庫的導入了,教學較為簡單,只用這一個數據庫作為數據倉庫的來源。
設計、創建數據倉庫DW
選定一個感興趣的主題,設計多維模型。例如:以商品的銷售額和銷售量為主題設計的星型模型。
需要五個維表:Dates(時間),Locates(地點),Products(產品),Education(教育程度),Age(年齡)
一個事實表:sales(銷售)
在SqlServer中創建數據庫SDW存放數據倉庫。(這種方法較為簡單)
創建以上幾個表格
創建Integration Services項目
打開SSDT
SQL Server Data Tools(SSDT) 曾叫做Business Intelligence Development Studio(BIDS),是開發人員所需要的開發環境。它為SSIS,SSAS,SSRS的商業智能項目提供了可視的設計界面。從SQL Server 2014版本開始,該環境不再包含在SQL Server的安裝包內,需要另行安裝。
此外SSIS簡易教程請看:點擊這里
或者查找官網:https://docs.microsoft.com/en-us/sql/integration-services/sql-server-integration-services?view=sql-server-ver15
并添加OLEDB連接管理器連接OnRet和SDW數據庫
最好使用sa賬號,避免出錯。
同樣的,對于輸出數據庫也添加連接
ETL過程就是從OnRet數據庫中抽取數據,轉換,統一后存儲到SDW中。
開始ETL
時間維表
點擊SSIS右鍵創建SSIS包,設置數據流任務,添加OLEDB源,設置為OnRet數據庫中的表。抽取Date數據,將表設置為Sales,并在列中添加日期。
第一步,創建數據流任務
第二步,設計數據流任務,雙擊數據流任務,轉到數據流設計頁面:增加數據源(把對應數據源的控件拖過來),雙擊進入編輯頁面
訂單中的日期即為對應的時間,需要將其抽取出來,劃分層次。
第三步 派生列
因為只有一個列(屬性),我們希望時間是多層次的,所以添加派生列,并如圖配置。
雙擊組件進入編輯,添加對應的維成員。
第五步、 添加排序,去除時間維表的重復行
為了時間的唯一性,添加排序,去除重復行(多個訂單可能是同一天的)
同樣的方法,把排序組件拖過來,雙擊編輯
第六步 輸出到目標倉庫維表中
添加OLEDB目標(拖過來),設置輸出表為SDW的Dates表,并設置映射,部署之后就能得到結果。
映射中一一對應。
輸入是數據來源,目標列是SDW中Dates維表的屬性列,他們設置的數據類型必須一致。
第七步 點擊部署,即可。
地理維表
和上述過程基本一樣。
需要確定地理維度的來源:選取OnRet數據庫的Area表。
第一步 創建SSIS包,設置數據流任務,添加OLEDB源。
雙擊數據流任務進入數據流設計頁面,新增數據源(還是原來的設置)
添加OLEDB源后,選取OnRet數據庫的Area表,勾選除編號外所有可用外部列。
因為這里已經包含了地區維層次,不必增加新成員,所以不需要派生。
添加OLEDB目標,設置輸出表為SDW的Locates表,并設置映射,部署之后就能得到結果。
部署即可。
其他的維表和事實表操作請看下一個數據倉庫與數據挖掘 4(下)。
參考
https://docs.microsoft.com/en-us/sql/integration-services/sql-server-integration-services?view=sql-server-ver15
https://baike.baidu.com/item/SSIS/5351898?fr=aladdin
總結
以上是生活随笔為你收集整理的数据仓库与数据挖掘 4(上)的全部內容,希望文章能夠幫你解決所遇到的問題。