久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    BI筆記之

     月影曉風 2017-04-20

    本文將模擬一個數據倉庫系統,其中有用戶數據,產品數據以及訂單數據。根據這些數據結構建立多維數據集,并且以增量更新的方式對其進行處理。

    之所以強調增量的方式,是考慮到事實表中數據的增長,假設以后增長到幾十億,全量處理就變得很不現實,所以方案中著重演示以增量方式處理多維數據集的方案。

    增量處理多維數據集的關鍵是要將事實數據分為兩部分處理,一個是增量事實表,一個是歷史事實表,多維數據集第一次處理歷史事實表中的數據,以后每次周期性的處理都是處理增量表中的數據。

    本文中提及的SQLServer和Visual Studio都是2008版本,2005版本同樣也適用。

    數據假設:一張用戶表,一張產品表,一張訂單表,訂單里記錄的是誰買了什么。多維數據集統計的需求就是根據訂單統計誰買過什么。

    首先,建立數據倉庫,在數據引擎下新建BIDemo庫。

    clip_image002

    接下來建立用戶表,結構如下:

    clip_image004

    此外還有產品表:

    clip_image006

    以及歷史訂單表和建立增量訂單表,它們的結構是一樣的:

    clip_image008

    為了測試方便,我們在用戶表中加入一些測試數據:

    clip_image010

    然后在產品表中加入一些測試數據

    clip_image012

    至于事實表,手動加入測試數據就不現實了,所以這里寫了一個程序利用隨機數來灌測試數據:

    clip_image014

    這個程序的代碼可以在本文中找到。生成后的數據基本如下所示:

    clip_image016

    到此,測試的數據結構以及數據就已經準備好了,相當于有了一個小型的數據倉庫。

    接下來在Visual Studio中建立BI解決方案,方案下分為一個SSIS項目和一個SSAS項目。

    在SSAS項目下建立數據源和數據源視圖,這里需要注意的是,事實表用歷史表,而不是增量表,盡管其還沒有數據。

    首先建立數據源,連接剛才建立的數據庫,并且在數據源視圖里定義好關系,如下圖:

    clip_image018

    然后,根據此數據源視圖建立多維數據集,需要注意的是,度量選擇歷史表,維度選擇用戶和產品兩個表。

    最后,部署多維數據集。這里只部署就可以了,不需要處理,處理任務將在以后的SSIS包中處理。

    下面來看SSIS項目。在SSIS包里建立四個任務模塊,類型分別如下:

    clip_image020

    前兩個多維數據集處理模塊是用來處理多維數據集的,數據流負責把增量事實表的數據導到歷史事實表中,最后執行一個SQL任務把增量表中的數據刪除。

    兩個多維數據集模塊,前一個是專門處理維度,第二個是處理cube。這里之所以要把多維數據集維度處理單獨拿出來放在前面,是因為在筆者經驗中,對多維數據集的處理雖然是全部處理,但是新增維度的數據不會被聚合到其中,所以需要單獨拿出來放在前面處理。

    (題外話:對于這個地方筆者一直也不是很理解,按理說既然是全部處理那么怎么連維度都不處理呢,還需要單拿出來)

    以下是設置維度處理模塊,在界面中選擇維度即可。

    clip_image022

    然后是cube處理模塊,如下圖。

    clip_image024

    然后指定增量更新,并且配置增量更新的數據表,這里指定增量表。

    clip_image026

    多維數據集處理完成之后就可以把增量表的數據放到歷史表中了,以保證第二天加入的數據都是增量數據。

    需要注意的是,在實際的運行當中,一定要保證BI的處理過程時業務系統沒有發生數據,否則就會造成數據遺漏而導致不平。所以,BI的處理一般都是在凌晨。

    然后是第三步的數據流模塊,此部分的主要任務是將增量表的數據轉移到歷史表中。

    clip_image028

    最后的一個SQL任務是一個Delete或者Truncate table任務,把增量表里的數據清空。

    最終的任務流程如下圖:

    clip_image030

    執行包,全部成功之后應該如下圖所示:

    clip_image032

    執行成功后,打開歷史表,可以發現數據已經在里面了,而且增量表中的數據已經不存在了。

    查詢多維數據集,可以看到新的數據被聚合到其中。

    clip_image034

    通過以上透視表可以清晰的看到誰買了什么樣的產品。

    再次運行Rubbish往增量表里灌幾條數據,然后重新運行此SSIS包,可以發現新增的數據已經被聚合到多維數據集中了,注意處理的方式是增量的。

    本文提及的數據結構模型都很簡單,主要介紹的是多維數據集處理的流程以及方法,重點闡述增量部分的方案,以及需要注意的問題。希望有知道更好方法的兄弟一起交流探討。

     

    本文提及的相關數據庫,項目文件以及程序下載

     

    FAQ:

    1.增量數據是怎么來的?

    筆者個人認為這個需要跟業務系統配合來做,比如加入觸發器等?;蛘咄ㄟ^時間戳,到業務系統中能提取到。

    2.如果有更新和刪除怎么辦?

    通常是在本文提到的方案之上,再加一個度量值位,標識為1,代表新增。對于刪除的記錄,實際上是加入了一個同樣的記錄,并且表示為為-1。更新則是加入了兩條記錄,一條記錄為-1跟刪除差不多,一條就為1代表修改后的記錄,三個一樣的記錄靠時間戳來標記哪一個是修改后的記錄。主要就是以這個標識位作為度量進行統計。

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 午夜福利高清在线观看| 国产一二三五区不在卡| 亚洲精品日韩中文字幕| 国产综合色产在线视频欧美| 色噜噜狠狠狠综合曰曰曰| 野外做受三级视频| 日本XXXX色视频在线观看免费| 国产不卡一区二区在线| 国产成人乱色伦区| 亚洲精品一区二区美女| 亚洲色欲色欲WWW成人网| 少妇人妻偷人偷人精品| 亚洲男女内射在线播放| 亚洲精品一区二区动漫| 久久精品夜夜夜夜夜久久| 丁香五月亚洲综合在线国内自拍| 无码少妇高潮浪潮AV久久| 欧美一本大道香蕉综合视频| 55夜色66夜色国产精品视频| 国产精品亚洲二区在线播放| 国产亚洲精AA在线观看SEE| 中文字幕在线亚洲日韩6页| 肥臀浪妇太爽了快点再快点 | 国产精品一区二区久久不卡| 日本午夜精品一区二区三区电影 | 一本色道久久综合亚洲精品| 亚洲欧美综合在线天堂| 国产卡一卡二卡三免费入口| 日韩精品卡2卡3卡4卡5 | 国内精品伊人久久久久影院对白 | 麻花传媒免费网站在线观看| 国产一区二区四区不卡| 四虎永久在线精品免费一区二区| 欧美成人一卡二卡三卡四卡| 国产高清自产拍av在线| AV免费网址在线观看| 9色国产深夜内射| 国产对白老熟女正在播放| 狠狠久久亚洲欧美专区| 把女人弄爽大黄A大片片| 国内老熟妇乱子伦视频|