微軟SQLServer官方示例項目部(bu)署-數據引擎(qing)和分析服務部(bu)分
微(wei)軟SQLServer每(mei)個(ge)版本都(dou)會(hui)帶有相應的示(shi)例(li)項目(mu),從2000時(shi)的Foodmart到(dao)2005之后的Adventure Works,里面的設(she)計方(fang)法和規范都(dou)有很多我們值得學(xue)習的地方(fang)。不僅(jin)是(shi)做普通的開發(fa)(fa),你如果做BI開發(fa)(fa)那么(me)你會(hui)發(fa)(fa)現這(zhe)更是(shi)一個(ge)不錯(cuo)的向導,而且(qie)微(wei)軟SQLServer安裝時(shi)帶的Books OnLine里面的教程就是(shi)用這(zhe)些示(shi)例(li)庫(ku)(ku)來"說事兒",所以(yi)配合這(zhe)些教程,你需要知道如何獲(huo)得并且(qie)部署(shu)這(zhe)些示(shi)例(li)庫(ku)(ku)。本文將簡單介(jie)紹(shao)微(wei)軟的官方(fang)示(shi)例(li)庫(ku)(ku)以(yi)及如何獲(huo)取(qu)和在本機部署(shu)這(zhe)些示(shi)例(li)。
可以說(shuo),如果(guo)你(ni)要(yao)踏入微(wei)軟(ruan)的(de)BI的(de)世界,那么這篇文章里介(jie)紹的(de)可能就是你(ni)第一個需要(yao)去做的(de)。
本(ben)(ben)文所使用的版本(ben)(ben)是SQLServer 2012, 前后(hou)版本(ben)(ben)的SQLServer不會有太(tai)大差異,可以(yi)多(duo)少進行一些參(can)考(kao)。
SQLServer服務簡介
這個不得不寫(xie)在前面。SQLServer下分(fen)幾(ji)大(da)服(fu)(fu)務(wu),主要有數據引(yin)擎服(fu)(fu)務(wu),集成服(fu)(fu)務(wu),分(fen)析服(fu)(fu)務(wu)和報表服(fu)(fu)務(wu),這些服(fu)(fu)務(wu),在你(ni)安裝SQLServer的時候會看到。

數據引擎服務是我們通(tong)常(chang)所(suo)說的(de)(de)表,視(shi)圖和存儲過程時提涉及到的(de)(de)服務。
集成服(fu)務是折騰(teng)數據(ju)(ju)用(yong)的,通常(chang)用(yong)在把數據(ju)(ju)從業(ye)務(wu)庫(ku)中(zhong)傳遞(di)到數據(ju)(ju)倉庫(ku)中(zhong),中(zhong)間要通過它(ta)來(lai)進行清(qing)洗和(he)轉換等(deng)很多工作。
報(bao)表服(fu)務主要是做報(bao)表用,這里不做太(tai)多解釋。
分析服務以前主要包括多維數據(ju)庫和(he)數據(ju)挖掘兩部分,但(dan)在2012版中加入(ru)了(le)獨(du)立的(de)BI語義模型的(de)表模式。
通(tong)常(chang)我們進(jin)行程序的(de)(de)開(kai)發,只安裝數據引擎服(fu)務。其它服(fu)務是(shi)沒有必(bi)要安裝的(de)(de),因為他們占硬盤空間不說,運行的(de)(de)時候(hou)沒一個服(fu)務都(dou)要占掉一些內存資(zi)源。
但這里如果你要學習微軟的分析服務的話,那么請務(wu)必勾選上"分析服務(wu)"。
值得一提的是(shi),2012版(ban)的分(fen)(fen)析(xi)服務(wu)發生了一個(ge)比較大的變化,就是(shi)分(fen)(fen)析(xi)服務(wu)多了一個(ge)類型,就是(shi)表(biao)模式。

也就是說(shuo)這兩種分析(xi)服(fu)務(wu)的模(mo)式不能安裝(zhuang)(zhuang)在(zai)同一(yi)個(ge)分析(xi)服(fu)務(wu)實(shi)例(li)中,所以為了(le)學習這兩部分的內容,安裝(zhuang)(zhuang)完默認的分析(xi)服(fu)務(wu)后,可以再運行一(yi)次安裝(zhuang)(zhuang)程序,安裝(zhuang)(zhuang)另(ling)外(wai)一(yi)個(ge)分析(xi)服(fu)務(wu)實(shi)例(li),如下(xia)圖:

在這里選擇(ze)(ze)另外一個實例(li)就可以,然后到分析服務(wu)類(lei)型選擇(ze)(ze)界面選擇(ze)(ze)"表模式"即可。
示例項目的獲取
目(mu)(mu)前獲得(de)示(shi)例庫的方法是(shi)(shi)從微軟的開源網站Codeplex獲得(de)。進入(ru)Codeplex.com,首(shou)頁左面推薦項目(mu)(mu)的第三個就是(shi)(shi)SQLServer示(shi)例數據庫項目(mu)(mu)的鏈接。
順便提一下,在這個網(wang)站,第一個被(bei)推薦的項目是(shi)WBFS,這是(shi)一個跟任(ren)天堂WII游戲(xi)(xi)機相關(guan)的項目,可(ke)以(yi)(yi)把游戲(xi)(xi)鏡(jing)像(xiang)用這個軟件"燒錄"到移動硬盤,然(ran)后查到WII游戲(xi)(xi)機上(shang),通過(guo)破解軟件就可(ke)以(yi)(yi)運行下載(zai)的游戲(xi)(xi)了。第二個項目是(shi)虛擬無線(xian)(xian)路由,比如筆記本(ben)通過(guo)網(wang)線(xian)(xian)接入(ru)的網(wang)絡,可(ke)以(yi)(yi)通過(guo)筆記本(ben)的無線(xian)(xian)網(wang)卡廣(guang)播出(chu)來供(gong)其它設備使用。

進入到SQLServer示例項目主(zhu)頁,已經是大家習慣的Metro風格。

OLTP跟DW的下載鏈到的是(shi)同一個頁(ye)面,我(wo)們要用到的數(shu)據引擎示例合分(fen)析服務示例文件都在這個下載頁(ye)面里:

數據引擎示例的部署
首先下載數據(ju)庫(ku)文件。數據(ju)庫(ku)文件包(bao)括(kuo)業務數據(ju)庫(ku)和數據(ju)倉(cang)庫(ku)。實際(ji)上,他們(men)都是(shi)(shi)普通的(de)(de)數據(ju)庫(ku),只不過一個(ge)是(shi)(shi)為(wei)OLTP,一個(ge)是(shi)(shi)為(wei)OLAP設計的(de)(de),他們(men)的(de)(de)使用目的(de)(de)不同(tong),所以(yi)一個(ge)主要(yao)的(de)(de)差別就是(shi)(shi)數據(ju)結(jie)構(gou),也(ye)就是(shi)(shi)數據(ju)的(de)(de)組織方式不同(tong)。

下載(zai)圖中標注(zhu)的兩個鏈接。第(di)一個是OLTP庫,供(gong)業務系統(tong)用(yong)的,第(di)二(er)個是DW庫,也就說數據倉庫。
下載完(wan)成(cheng)后,將兩(liang)個文件放到你電(dian)腦里專門(men)存放數(shu)據(ju)庫文件的(de)項(xiang)目(這是一個好習(xi)慣)。然后,在數(shu)據(ju)引擎服務(wu)里將這兩(liang)個庫附加進來。
方(fang)法就是右鍵數據庫(ku),點"附加":

在新出現的界面(mian)中,點擊"添加(jia)",選(xuan)擇下載(zai)的數據庫文件所在的位(wei)置:

附加完成(cheng)后,可以(yi)在數據庫(ku)(ku)分(fen)支下看(kan)到已經部署好的OLTP庫(ku)(ku)和DW庫(ku)(ku)。

在微軟的(de)示例中(zhong),AdventureWorks2012是業務數據庫,前段(duan)的(de)業務應用操作的(de)就是這個庫,包括業務記錄(lu)的(de)增刪查改。
帶DW字(zi)樣的(de)就(jiu)(jiu)是(shi)微軟示例的(de)數(shu)(shu)(shu)據(ju)倉庫文(wen)(wen)件。通常這個(ge)庫的(de)文(wen)(wen)件主要就(jiu)(jiu)是(shi)來(lai)自前面業務數(shu)(shu)(shu)據(ju)庫,其間經過了很多(duo)數(shu)(shu)(shu)據(ju)的(de)轉換(huan)步(bu)驟,比如清洗(過濾臟數(shu)(shu)(shu)據(ju)等)和轉換(huan)(編碼統一等)。
以上兩個基礎數據庫(ku)部署(shu)好之后,就可以部署(shu)后面的(de)分析服務示例(li)項目(mu)了。
分析服務示例的部署

下載圖中(zhong)的兩(liang)個(ge)文件。第一個(ge)是(shi)傳統分(fen)析(xi)服務(wu)項(xiang)目的,第二個(ge)是(shi)BI語義(yi)模型項(xiang)目用的。
首(shou)先(xian)部署(shu)傳統分析(xi)服(fu)務項目:
解(jie)壓縮然后打開下載的AdventureWorks Multidimensional Models SQL Server 2012,會有Enterprise和Standard兩(liang)個版本選(xuan)擇,隨便選(xuan)一個就行。
使用(yong)Visual Studio 2010打開sln文件(jian),如(ru)果機(ji)器已經安裝了Visual Studio 2012,需要右(you)鍵(jian)單擊這個文件(jian)然后(hou)在打開方式(shi)中(zhong)選擇(ze)使用(yong)2010版本打開。

右鍵(jian)單擊解(jie)決方(fang)案瀏覽器的根結點,右鍵(jian)選擇屬性,在Deployment部署設置界面中(zhong)設置Server和Database屬性。
如(ru)果(guo)SQLServer是(shi)默(mo)認(ren)安(an)裝(zhuang)并且(qie)(qie)是(shi)默(mo)認(ren)實例,而且(qie)(qie)想把示例部署到(dao)本地,那(nei)么這里不(bu)需要進(jin)行修改(gai)。如(ru)果(guo)要部署到(dao)其(qi)它機器,到(dao)這里進(jin)行相(xiang)應(ying)設(she)置即可。

右鍵(jian)單擊解決方(fang)案瀏覽(lan)器(qi)的根結點,右鍵(jian)選擇(ze)部署,會看到正在向服務(wu)器(qi)發送部署腳(jiao)本并且對多維(wei)數據庫進行(xing)處理。

正在部署。

處理數據。

處理完畢。
然后,處理表模式項目(mu):
打(da)開BI語義模型項(xiang)目,工作區服務(wu)器填寫表模式分(fen)析服務(wu)實例名稱。

打開(kai)后,可以看到(dao)跟多維(wei)數據庫項目(mu)是(shi)完全不同的(de)。

右鍵單(dan)擊項目點擊部(bu)署,可(ke)以(yi)看到部(bu)署和處理(li)界面(mian)。這個跟傳統分析服務項目也有很大(da)不同。

部署中。

開始處理。

處理完成。
以上兩部分的(de)分析(xi)服(fu)務項目(mu)部署完成后(hou),可以在Management Studio中看到如下已經部署好(hao)的(de)數據庫(ku):

至此,分析服務的(de)(de)示(shi)例(li)就(jiu)部署完成了。SQLServer所帶(dai)的(de)(de)教程(cheng)步(bu)驟結果都是這個(ge)示(shi)例(li)的(de)(de)子集,在碰(peng)到(dao)迷惑的(de)(de)時候可以來(lai)參(can)考(kao)一(yi)(yi)下。另外在工作中如果碰(peng)到(dao)了一(yi)(yi)些迷惑,也可以回來(lai)參(can)考(kao)一(yi)(yi)下看看官方示(shi)例(li)是如何設(she)計的(de)(de)。
部署時可能遇到的錯誤
在(zai)本機部(bu)署分(fen)(fen)析服(fu)務(wu)項目,包括傳(chuan)統的(de)(de)(de)和表模(mo)式的(de)(de)(de)項目,可(ke)(ke)能會報(bao)一(yi)個錯(cuo)誤,大意(yi)是(shi)說連接(jie)(jie)數(shu)據(ju)源(yuan)(yuan)出錯(cuo),用(yong)戶(hu)登錄(lu)失敗。而(er)在(zai)Visual Studio下明(ming)明(ming)是(shi)可(ke)(ke)以(yi)(yi)讀取數(shu)據(ju)的(de)(de)(de)。這(zhe)(zhe)種原因大多數(shu)是(shi)由于,在(zai)Visual Studio中(zhong),進程用(yong)的(de)(de)(de)是(shi)你登錄(lu)系統的(de)(de)(de)身份(fen),而(er)這(zhe)(zhe)個身份(fen)通常(chang)是(shi)數(shu)據(ju)庫的(de)(de)(de)管理(li)員,所以(yi)(yi)可(ke)(ke)以(yi)(yi)連接(jie)(jie)到(dao)數(shu)據(ju)源(yuan)(yuan)。但部(bu)署到(dao)分(fen)(fen)析服(fu)務(wu)之(zhi)后,分(fen)(fen)析服(fu)務(wu)的(de)(de)(de)運行(xing)身份(fen)默認(ren)是(shi)另外一(yi)個用(yong)戶(hu),而(er)這(zhe)(zhe)個用(yong)戶(hu)默認(ren)沒有讀取數(shu)據(ju)源(yuan)(yuan)的(de)(de)(de)權(quan)限,所以(yi)(yi)就出現了(le)這(zhe)(zhe)個錯(cuo)誤。那么最簡單(dan)的(de)(de)(de)一(yi)個解(jie)決方法就是(shi)修改數(shu)據(ju)源(yuan)(yuan)連接(jie)(jie)屬性中(zhong)的(de)(de)(de)設(she)置:
在傳統(tong)分析服務(wu)項目中(zhong),雙擊數據源(yuan)文件。

選(xuan)擇模擬信息選(xuan)項卡,在(zai)圖中位置輸入(ru)你登錄電(dian)(dian)腦的賬號(hao)和(he)密碼(ma)(前(qian)提(ti)是(shi)這(zhe)是(shi)你的個人電(dian)(dian)腦并且是(shi)用管理員身(shen)份登錄的)。
當然在實(shi)際操作中,生產環境(jing)下是(shi)由AD環境(jing)的,所以可以根據實(shi)際的IT環境(jing)來對(dui)這里進行設置。
在表模(mo)(mo)式項(xiang)目中,修改模(mo)(mo)擬信息(xi)的方(fang)法是點擊"模(mo)(mo)型"然后(hou)選擇"存在的連(lian)接":

在彈出的(de)界(jie)面中點擊"編輯"。

再在編輯界(jie)面(mian)中點(dian)擊"模(mo)擬信(xin)息"。

跟上(shang)一個一樣,輸入登(deng)錄機器(qi)的用(yong)戶(hu)名和密碼。

總結
如果你(ni)要學習(xi)微軟SQLServer的(de)分析服務,那么(me)官方(fang)(fang)的(de)示例(li)和(he)(he)教程絕對是個很好(hao)的(de)學習(xi)和(he)(he)參考的(de)資料。這篇文章(zhang)通(tong)過文字(zi)加圖片的(de)方(fang)(fang)式向你(ni)介紹如何獲取并(bing)且部署(shu)微軟的(de)相關示例(li),希望對大(da)家學習(xi)分析服務的(de)過程有所(suo)幫助。
---------------------------------------------------------------
aspnetx的BI筆(bi)記系(xi)列索引:
使用SQL Server Analysis Services數據挖掘的關聯規則實現商品推薦功能
---------------------------------------------------------------
來自博客園的宋衛東
