這節我們主要講講我的游戲交易數據分析項目的ETL(數據抽取、加載、轉換)具體是怎么做的。
先來講下源系統吧,因為我們的交易主站的服務器不是架在公司的,因此不能直接從源系統直接抽取數據了。事實上我們已經存在一個簡單的數據分析系統了,只不過這個是以前人家做的,沒有采用sqlserver2005的BI平臺來做,而是直接寫winform程序來弄的。原來的數據抽取是主站那邊提供導出的excel文件過來,然后到我們這邊,導入到我們的分析庫中去。
好了,為了簡便,事實上我只是在做一個demo,為以后項目做準備,所以我們抽取數據直接是從上面說的已經存在分析庫中抽的,因為數據結構比較相近,所以ETL過程還是比較簡單的。
先看看游戲維度表吧:
首先,我們來新建一個Integration Services項目。
接著,新建一個ImportDimGamePackage.dtsx的SSIS包。
拖放一個數據流任務到控制流面板上(如圖)
雙擊數據流任務,來到數據流面板
接著我們拖動OLEDB源到數據流面板上,并且雙擊編輯它,新建一個連接和選擇要抽取數據的源數據表。
然后我們拖動一個OLEDB目標到數據流面板上,把OLEDB源和OLEDB目標連接起來,并且雙擊編輯,新建一個連接和選擇我們要存放數據的目標表
然后建立源表與目標表之間的映射。
所有的都弄好了,運行,OK,成功了。
接著部門維度和物品維度都跟這個差不多。時間維度是我新建的,暫時我用winform寫了一個日期維度生成器。
下面就講交易數據事實表,這個比維度稍微復雜一點點。因為源系統和目標系統數據結構很類似,所以我的ETL都是非常簡單的,在實際項目中,能夠有這么好的運氣是不可能的,呵呵。
首先新建一個ImportFactGameTradeDataPackage.dtsx的SSIS包。
其他簡單的步驟跟上面一樣,我就講講不一樣的地方。因為我在數據庫設計的時候,各個維度都用了代理鍵,也就是說在我們的數據倉庫里面的維度和事實表的外鍵關聯都是通過代理鍵的,源系統中的鍵我們只不過用一個字段記錄了下來。所以我們數據抽取過來的時候,要對源系統中的映射關系進行改變。
這里的關鍵就是我們在編輯數據流的時候,使用了一個叫做“查找”的組件。編輯好的數據流如圖:
接下來我們詳細講下查找列是怎么用的,拿查找GameKey來講把。
1。雙擊查找GameKey組件,在引用表面板上面選擇好我們要查找的表,在這里就是我們數據倉庫表中的游戲維度表。
2。在列面板里面建立要查找的字段跟源系統事實表的字段的映射。
3。把查找到的列作為新列添加,并取一個唯一的別名(在后面與OLEDB目標的時候建立映射的時候,會用到這里查找到的列)。
接著其他的幾個維度代理鍵的查找都類似,OLEDB目標的字段映射跟維度表的導入類似。
好了,今天主要介紹了簡單的Sqlserver2005 Integration Services的使用,今天涉及了到里面幾個概念,數據流任務,OLEDB源,OLEDB目標,查找等。
下一節,我準備寫一下使用Sqlserver2005 Analysis Services建立OLAP數據庫的過程。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
