天天看點

SQLServer的SSIS的核心功能介紹

最近在用SQL SERVER的ssis工具導入另外一個系統的資料,一直沒有靜下來系統的總結一些其中的學習及研究收獲,恰好找到一篇感覺介紹不錯的文章,發揚一下“拿來主義”,收錄在自己的地盤上。閑言少叙,一下是正文。

1 SSIS介紹

SSIS首先是在1997年的SQL Server 7.0中引入的,當時它的名稱為資料轉換服務(DTS)。SSIS屬于ETL産品家族,ETL代表提取(Extraction)、轉換(Transformation)和加載(Loading)。

現在,越來越多的企業都有資料倉庫。ETL是将來自OLTP資料庫的資料定期加載到資料倉庫中必不可少的工具。在SQL Server的前兩個版本—— SQL Server 7.0和SQL Server 2000中,SSIS主要集中于提取和加載。通過使用SSIS,可以從任何資料源中提取資料以及将資料加載到任何資料源中。在SQL Server 2005中,對SSIS進行了重新設計和改進。SSIS提供控制流和資料流。控制流也稱為工作流或者任務流,它更像工作流,在工作流中每個元件都是一個任 務。這些任務是按預定義的順序執行的。在任務流中可能有分支。目前任務的執行結果決定沿哪條分支前進。

資料流是新的概念。資料流也稱為流水線,主要解決資料轉換的問題。資料流由一組預定義的轉換操作組成。資料流的起點通常是資料源(源表);資料流的 終點通常是資料的目的地(目标表)。可以将資料流的執行認為是一個流水線的過程,在該過程中,每一行資料都是裝配線中需要處理的零件,而每一個轉換都是裝 配線中的處理單元。

下圖顯示了SSIS設計器。可以通過啟動Business Intelligence Development Studio,然後建立一個Integration Services項目來調用SSIS設計器。在左邊有一個工具箱視窗。工具箱視窗包含預定義的控制流任務和資料流轉換。中間的視圖窗格包含4個視圖:控制 流、資料流、事件處理程式和包資料總管。控制流視圖提供了一個設計環境,在這個設計環境中可以使用工具箱中與控制流相關的項來建構控制流。資料流視圖也 提供了一個設計環境,在這個設計環境中可以使用工具箱中與資料流相關的項來建構資料流。在事件處理程式視圖中,可以定義由特定的執行事件觸發的後續響應操 作。包資料總管視圖提供了流的樹型視圖。

2 了解SSIS包

包(package)是SSIS項目中基本的部署和執行單元。SSIS任務執行的所有工作都發生在包的上下文中。SSIS包是SSIS流的容器。可 以通過以下方式來建立SSIS包:在Integration Services項目檔案夾中右擊“SSIS包”檔案夾,然後選擇“建立SSIS包”菜單項。

SSIS項目可以包含多個包。包隻包含一個控制流,而該控制流可以包含一個或者多個資料流。

除了控制流和資料流,包還包含了SSIS連接配接和包的變量。可以有不同作用域的變量,例如,作用域為整個包的全局變量或者作用域為任務序列的局部變量。

在托盤中顯示了連接配接和變量,如SSIS設計器底部所示(參見圖12-1)。連接配接可以連向關系資料庫,也可以連向Analysis Services資料庫。

3 任務流

SSIS包包含一個控制流,該控制流由一組任務組成。這些任務定義了包的工作,例如,加載資料、執行SQL語句、處理腳本或者調用其他過程。在工具箱中列出了這些任務。可以通過以下方式将任務加入包中:從工具箱中拖動該任務,然後将它釋放到包的設計器中。

在任務流中,包通常包含多個任務。多個任務是按優先權限制的順序來進行組織的。優先權限制按以下順序連接配接兩個任務:執行第一個任務的結果決定是否運作第二個任務。可以在工作流中使用優先權限制來建立條件分支。可以将多個優先權限制進行組合,然後将其作為一個限制來求值。

3.1 在SSIS中的标準任務

先面列出了SSIS任務流中的一些預建構的任務及其描述資訊。

除了在以下所列出的任務之外,SSIS還提供了簡單的API,可以使用這些API來開發自己的任務。一旦注冊了任務,則在工具箱中将會出現這些任務,然後可以在任務流中像所有預建構的任務一樣使用這些任務。

大容量插入任務——将來自文本檔案的大量資料加載到SQL Server表中

資料流任務——支援在不同類型的資料源之間進行資料的複制和轉換。一個資料流任務包含一條資料流流水線

執行包任務——運作子包

執行程序任務——将程式或者批處理檔案作為包的一部分來運作

執行SQL任務——在包的執行期間運作SQL語句,然後有選擇地儲存這些查詢的結果

檔案系統任務——執行檔案系統操作

FTP任務——從遠端伺服器或者Internet的某個位置下載下傳資料檔案,并且将這些資料檔案作為包的工作流的一部分

消息隊列任務——在SSIS包之間使用消息隊列來發送和接收消息

腳本任務——使用腳本來執行在預建構的SSIS任務中不可用的函數。通過使用Script任務,可以在Microsoft Visual Studio for Applications(VSA)環境中使用Visual Basic.NET來編寫腳本

發送郵件任務——發送電子郵件消息

XML任務——合并、過濾和轉換XML文檔中的資料

3.2 容器

容器(container)是向包提供結構的SSIS對象。每個包都有一個容器,用來存儲包的流。包的容器可以包含其他類型的容器,例如序列容器、 Foreach循環容器和For循環容器,這些容器都可以在控制流工具箱中獲得。可以在這些容器中定義子流。容器豐富了控制流的運作時執行模型。例如,并 不是所有的任務都是順序執行的。在Foreach循環容器内部的子流将會基于容器中定義的疊代器而多次執行。

3.3 調試

對SSIS控制流進行調試是在SQL Server 2005中引入的新特性。當在設計器中選擇了一個任務時,隻要按下F9就可以設定斷點。通過調試,可以在執行期間檢查包的變量的值以及任務的狀态。斷點可 以基于事件來設定。例如,可以基于一個任務的以下事件來設定一個或者多個斷點:

● OnPreExecute

● OnPostExecute

● OnError

● OnWarning

● OnProgress

當SSIS的運作時遇到了一個斷點事件時,SSIS的運作時會在包的執行期間暫停。這與在Visual Studio中調試C#代碼類似。

3.4 研究一個控制流示例

下圖顯示了一個簡單的控制流示例。它以FTP任務開始,該FTP任務用于下載下傳已壓縮的資料檔案。一旦下載下傳完這些檔案,運作時就會到達Foreach 循環容器,在該容器内部有兩個任務:執行程序任務(該任務調用unzip應用程式來解壓縮資料檔案)和大容量插入任務(該任務将資料檔案的資料插入到 SQL Server中)。當解壓縮完資料檔案并且将資料檔案的資料加載到SQL Server中時,循環會停止。如果在循環期間發生了錯誤,則該控制流将執行發送郵件任務:向DBA發送電子郵件。如果正确地執行了每個任務,則該控制流 将執行SQL任務:在新的資料集上建立一些視圖。斷點是在執行SQL任務的OnPreExecute事件上設定的,以便DBA在建立視圖前可以對資料加以 驗證。

4. 資料流

控制流是出現較早的概念,因為它從SSIS的第一個版本開始就已經存在了,而資料流是在SQL Server 2005中才引入的新概念。資料流是專門處理資料操作的工作流。

資料流也稱為流水線。可以将資料流認為是裝配線,該裝配線包含了順序執行的多個操作。在資料流中的每個節點都稱為轉換。資料流通常以源轉換開始,以 目标轉換結束。在這兩個轉換之間,預定義的資料流轉換被依序應用到資料上。一些轉換是同步的,例如,查找、條件性拆分和資料轉換。這些同步的轉換可以并行 執行。

一旦已經将轉換應用到資料行上,則下一個轉換可以開始處理該資料行,而無需等到上一級轉換處理完整個資料集。一些轉換是異步的,例如聚合和排序。這些轉換必須從前面的輸出中獲得所有的行,進而可以處理和産生輸出,用于後續轉換。

除了預建構的轉換清單,SSIS還提供了一些API,可以使用這些API來建構自己的資料流轉換。例如,可以建構Numeric Processing轉換來将數學計算和轉換應用到流水線資料上。

資料流總是包含于任務流中。有一個特殊的任務,其名稱為資料流任務,該任務是用于容納資料流的容器。在建構資料流之前,必須将資料流任務加入到設計器中。

4.1 轉換

任務是任務流的基本元件,而轉換是資料流的基本元件。轉換是預定義的資料操作。可以将轉換視為裝配線中的機器,用于對輸入資料進行操作。表12-2顯示了在SSIS資料流環境中流行的轉換清單。

SSIS的轉換

“聚合”轉換——執行聚集,例如average、sum和count

“字元映射表”轉換——将字元串函數應用到字元資料上

“條件性拆分”轉換——基于指定的标準來将資料行路由到不同的輸出

“複制列”轉換——将輸入列的副本添加到轉換的輸出中

“資料轉換”轉換——将列的資料類型轉換為不同的資料類型

“派生列”轉換——使用表達式來生成從現有列中派生的新列

“處理次元”轉換——處理Analysis Services的維

“模糊分組”轉換——通過以下方式來執行資料清理的任務:首先識别可能重複的資料行,然後選擇規範的資料行來用于對資料進行标準化

“模糊查找”轉換——在引用表中使用模糊比對來查找值

“查找”轉換——在引用表中使用精确比對來查找值

“合并”轉換——合并兩個已分類的資料集

“合并聯接”轉換——使用FULL、LEFT或者INNER join來連接配接兩個已分類的資料集

“多點傳播”轉換——将資料集分布到多個輸出中

“分區處理”轉換——處理Analysis Services的劃分

“透視”轉換——建立規範表的較低規範化版本

“排序”轉換——對流水線的資料進行分類

“Union All”轉換——建立多個資料集的并集

“逆透視”轉換——建立不規範表的較規範版本

4.2 檢視器

檢視器是為了調試資料流而設計的。可以在執行期間使用檢視器來檢視流水線中的流。可以将檢視器附加在轉換之間的連線上。要增加檢視器,可以在連線上 右擊,然後選擇“資料檢視器”菜單項。預設的檢視器是網格圖。也可以增加直方圖,散點圖和圓柱圖作為圖形檢視器。如果這些預定義的檢視器還不能滿足您的需 求,則您甚至可以建構自己的檢視器。

4.3 研究一個資料流示例

圖12-3顯示了一個資料流的示例。該資料流以OLE DB Source轉換開始,該轉換加載包含零售銷售事務的事實表。第二個轉換是“查找”,該轉換從客戶維表中查找客戶姓名中的名和姓。這兩列被加入到流水線的 資料中。下一個轉換是“派生列”,該轉換基于姓名中的名和姓來建立新的Full Name列。然後,資料到達“聚合”轉換,該轉換累加每個客戶的總銷售額。基于銷售額,“條件性拆分”轉換将客戶拆分為兩個目标表:一個表對應重要的客 戶,而另一個表對應普通的客戶。

5. 在SSIS環境中進行資料挖掘

SSIS提供了流的環境,在該環境中可以通過一組内置的任務和轉換來進行資料提取、加載和轉換。

正如您已經學習的,在資料挖掘項目中最消耗資源的工作是資料清理和轉換。SSIS自然可以作為資料挖掘項目很好的補充。可以使用這個強大的工具來從 不同的源中加載資料,将這些資料連接配接在一起,規範化列的值,移除無用的記錄,替換缺失值,以及将資料分成訓練資料集和測試資料集等。

SSIS不僅僅作為資料挖掘的ETL工具,SSIS實際上還在控制流和資料流環境中提供了一些内置的資料挖掘元件。特别地,在下表中列出了一些專門用于資料挖掘的任務和轉換。

用于資料挖掘的任務和轉換

資料挖掘查詢任務——基于資料挖掘模型來運作預測查詢

Analysis Services處理任務——處理需要分析的對象,例如立方體、維、劃分和資料挖掘模型

Analysis Services執行DDL任務——運作資料定義語言(Data Definition Language,DDL)代碼,這些代碼可以建立、修改、删除和處理需要分析的對象

資料挖掘查詢轉換——執行資料挖掘預測查詢

資料挖掘模型定型轉換——使用流水線資料作為輸入來處理資料挖掘模型

字詞提取轉換——處理文本列來提取關鍵術語(單個詞或者較短的名詞短語)。提取的術語可以用來作為字詞查找轉換的字典

字詞查找轉換——從輸入的文本列中基于字典來搜尋和提取關鍵術語。字詞查找的結果可以用作文本挖掘的訓練資料

5.1 資料挖掘任務

5.1.1 資料挖掘查詢任務

資料挖掘查詢任務用于執行資料挖掘的查詢,主要是執行SSIS控制流中的預測查詢。

下圖顯示了對話框的“挖掘模型”頁籤,該對話框用于編輯資料挖掘查詢任務的屬性。在該頁籤中,首先将連接配接指定到活躍的Analysis Services資料庫。然後必須指定查詢所基于的挖掘結構和挖掘模型。

下圖顯示了資料挖掘查詢任務的“查詢”頁籤。在該頁籤中,必須輸入資料挖掘查詢語句。可以直接在文本框中編寫查詢語句,也可以單擊“生成新查 詢”按鈕來調用預測查詢生成器。預測查詢生成器提供了圖形化的環境,在該環境中可以建構DMX查詢。在第3章中已經學習了如何使用該工具。

DMX查詢可以包含一些參數。這些參數可以映射到SSIS變量。例如,您可能希望編寫一個查詢來傳回一些客戶,這些客戶擁有黃金會員卡的機率超過給定的值。該給定的值可以通過SSIS變量Probability來設定。

“結果集”頁籤提供了一個選項,該選項可用于将查詢傳回的結果映射到一個SSIS變量,比如一個集合變量。

下圖顯示了資料挖掘查詢任務的“輸出”頁籤。在這個頁籤中,可以指定連接配接的目标資料庫,在該目标資料庫中将儲存查詢結果。它可以是與源資料相同的資料庫,也可以是不同的資料庫。您還需要對結果表進行命名。

注意:

DMX查詢可以産生嵌套的結果,例如,如果在Select子句中使用PredictHistogram函數,則資料挖掘查詢任務将自動平坦化嵌套行集,然後在一個表中插入查詢結果。

5.1.2 Analysis Services處理任務

Analysis Services處理任務用于處理Analysis Services資料庫中的主要對象。這些對象可以是維、立方體、挖掘結構和挖掘模型。

下圖顯示了該任務的編輯器。可以使用“添加”按鈕來選擇對象,也可以在“處理選項”列中指定處理的選項和設定。

在預測查詢生成器中執行DMX查詢

除了DMX預測查詢,還可以在預測查詢生成器中執行其他類型的DMX查詢。例如,可以輸入以下的内容查詢:

view sourceprint?

<code>1</code>

<code>Select * from myAssociationModel.Content Where Node_Type = 7</code>

也可以調用存儲過程:

<code>Call mystoreproc</code>

實際上,也可以在資料挖掘查詢任務中指定DMX的Creation語句和Insert Into語句。可以使用該任務來建立和處理挖掘模型。

5.1.3 Analysis Services執行DDL任務

DDL(資料定義語言)可以采用XML格式來描述。在Analysis Services 2005中,所有的對象(挖掘模型、挖掘列、維、立方體和角色等等)都是使用DDL來定義的(在第14章中将學習DDL的基本概念)。

除了對象的定義,DDL還包含了一組指令。這些指令使建立、更新、處理和删除對象變得容易。

當使用圖形化的工具(例如挖掘模型編輯器)來建立挖掘模型時,這些工具會産生發送給伺服器的DDL腳本。

如果不使用資料挖掘編輯器來建立/更新這些對象,則可以複制或者編寫這些DDL腳本,然後通過執行DDL任務來執行它們。

下圖顯示了執行DDL任務的編輯器。首先,必須指定與Analysis Services的連接配接。然後單擊SourceDirect屬性,該屬性調用用來顯示DDL指令的文本框。在圖12-8中的DDL用于在 Adventure Works DW資料庫中建立挖掘結構DM Customers。

5.1.4 一個使用資料挖掘的控制流示例

下圖顯示了使用資料挖掘查詢任務的控制流示例。控制流首先通過FTP任務下載下傳新客戶的資料集,然後使用大容量插入任務将資料加載到SQL Server資料庫中。如果在資料加載期間發生了錯誤,則它會向DBA發送電子郵件。如果資料加載成功,則它會執行資料挖掘查詢任務,該任務用于查找那些 對特殊的促銷産品可能感興趣的客戶。預測的結果會儲存在表中。在預測之後,它會給可能感興趣的客戶發送電子郵件。

5.2 資料挖掘轉換

5.2.1 資料挖掘模型定型轉換

資料挖掘模型定型轉換(簡稱DM定型轉換)用于在資料流環境中處理挖掘結構及其相關的挖掘模型。

Analysis Services處理任務也可以處理挖掘模型,但是必須在任務中指定輸入表。在執行期間,AS伺服器從存儲了訓練資料的源表中提取資料。然而,在資料流環 境中,DM定型轉換在執行期間将資料從流水線推到Analysis Services。AS伺服器以推的模式獲得訓練資料。在将流水線資料發送給AS伺服器之前,DM定型轉換以XML行集的格式對該資料進行封裝。

下圖顯示了DM定型轉換的屬性對話框的“連接配接”頁籤。在該頁籤中,可以指定到AS Server資料庫的連接配接,然後選擇您希望使用流水線資料來處理的挖掘結構。

也可以使用“建立”按鈕來建立新的挖掘結構。單擊該按鈕後會啟動資料挖掘向導。在該向導中,對模型建立過程的處理方式與在資料挖掘編輯器環境中的處 理方式相同。然而,還存在一些不同的地方。首先,列是來自流水線,而不是來自關系表。某些特性(例如,自動檢測内容類型和相關建議)不可用。這是因為這些 特性需要對輸入資料進行掃描和采樣,而在流水線環境中這些操作是不可行的。

下圖顯示了DM定型轉換的“列”頁籤,在該頁籤上可以指定流水線的列和挖掘結構的列之間的映射。在預設情況下,該工具會基于列名自動進行映射。

提示:

雖然DM定型轉換支援模型建立,但是對模型進行編輯(比如改變模型的參數)卻相當困難。一種解決方案是在相同的解決方案中擁有兩個BI項目:SSIS項目和AS項目。在這種情況下,可以在AS項目中使用挖掘模型編輯器,進而獲得對于挖掘模型的完整編輯功能。

5.2.2 資料挖掘查詢轉換

顧名思義,資料挖掘查詢轉換(簡稱DM查詢轉換)是用于執行資料挖掘查詢的轉換。在第2章中,已學習了不同類型的DMX查詢,包括預測、内容、模型建立和模型訓練。在這些查詢中,預測查詢是最常見的。

要執行預測查詢,需要訓練過的挖掘模型和輸入資料集。在流水線環境中,輸入資料集是從流水線推來的。DM查詢轉換将來自流水線的輸入資料封裝為 XML行集,然後通過XML/A協定将它們發送給AS伺服器。AS伺服器執行查詢,然後将XML結果傳回給該轉換。然後,該轉換解析該結果,再将解析後的 結果推給流水線,以便下一個轉換進行處理。當輸入資料比較大時,該過程會以塊的方式來處理:每次将一組行發送給AS伺服器來進行預測。

下圖顯示了該轉換的“挖掘模型”頁籤,在該頁籤上将連接配接指定到活躍的AS伺服器的資料庫,還必須選擇挖掘結構和它的模型之一。

在該轉換的“查詢”頁籤上可以輸入DMX查詢。可以手動編寫查詢,也可以單擊“生成新查詢”按鈕來啟動預測查詢生成器。預測的輸入表是流水線的輸 入,表示為@InputRowset。DMX查詢結果可以包含嵌套的結果,例如,在Select語句中使用PredictionHistogram函數。 在這種情況下,将會自動平坦化嵌套行集。

在SQL Server 2005中,SSIS資料流本身不支援嵌套行集。這一點會給資料挖掘的訓練和預測增加技術上的挑戰,因為它可能需要嵌套的輸入,然後産生嵌套的輸出。為了 解決這個問題,DM查詢轉換在有嵌套行集時會自動平坦化結果。然而,對于嵌套的輸入,問題更大。當模型或者查詢需要嵌套的輸入時,推薦使用DM定型任務和 DM查詢任務。

5.2.3 資料流示例

下圖顯示了用于模型訓練的資料流示例。它以OLE DB資料源轉換開始,該轉換選擇FoodMart Customer表。下一個轉換是派生列轉換,該轉換建立了新的列Age,該列是從Birthdate列中派生的。一旦将新的列加入到流水線中,就會将數 據發送給DM定型轉換,該轉換并行地處理挖掘結構及其相關的挖掘模型。

下圖顯示了使用DM查詢轉換的資料流。流水線以OLE DB源轉換開始,該轉換加載NewCustomer表。下一個轉換是派生列,該轉換添加從Birthdate列中派生的Age列。第三個轉換是DM查詢, 該轉換使用已訓練的決策樹模型來為每個新的客戶預測最有可能擁有的會員卡。預測的結果會發送給條件性拆分轉換,該轉換基于會員卡的類型将資料分成3個流水 線分支。左邊的分支隻包含金卡會員,中間的分支隻包含銀卡會員,而右邊的分支包含銅卡會員和普通會員。每個分支都會通向OLE DB目标轉換,在該轉換中分别存儲了VIP客戶、重要的客戶以及普通的客戶。

該示例也說明了資料挖掘技術可以作為進階的ETL過程來應用。它使得資料拆分不僅可以基于已有的屬性,還可以基于預測的屬性。

5.2.4 字詞提取轉換

字詞提取轉換用于建構特定領域中的關鍵術語的術語表。這通常是文本挖掘項目的第一步。在輸入流水線緩沖器中的列之一包含了某種類型(比如ntext 或者nvarchar)的文本資料。該轉換的目的是分析這一列,然後基于這一列的内容來建構關鍵術語的字典。轉換的輸出是一個隻含一列的表。提取關鍵術語 不是想象中那麼容易;存在許多複雜的技術,例如,單詞詞幹處理和相關的文法分析。該轉換提取名詞和名詞短語,比如data mining。

字詞提取轉換的使用者界面非常簡單。在第一個頁籤中,必須指定文本列。也可以對關鍵術語的輸出列及其相關的分數進行命名,如下圖所示。分數基于 TFIDF,TFIDF代表詞頻(Term Frequency)和倒文檔詞頻(Inverse Document Frequency)。TFIDF是統計學中的一種技術,用于評估單詞對文檔的重要性。該重要性根據單詞在文檔中出現的次數而成比例地增加,但是會受單詞 在收集的所有文檔中出現的頻率影響而發生偏移。

5.2.5 移除資料流中的孤立點

可以應用資料挖掘技術來移除資料流中的孤立點(outlier)。正如在第7章中所解釋的,Microsoft聚類算法提供了預測函數 PredictCaseLikelihood,該函數傳回某個事例适合于某個給定模型的似然估計。似然估計分數非常低的事例屬于異常。可以使用DM查詢轉 換來執行針對流水線資料的預測查詢,然後基于查詢的結果來過濾異常。以下查詢基于似然估計分數來識别來自資料集的前50個孤立點。

SELECT Top 50 t.CustomerKey, PredictCaseLikelihood() From MyClusterModel

PREDICTION JOIN @InputRowset AS t ON

Order by PredictCaseLikelyhood() Desc

第二個頁籤(參見下圖)給出了一個選項,該選項用于指定包含的術語和不包含的術語。您可能已經擁有必須包括的預定義的術語清單,以及不希望提取的術語清單。在這個頁籤中可以指定這兩個術語清單。

字詞提取轉換也提供用于術語的選項;例如,可以指明術語必須是單個詞或者名詞短語。對于名詞短語,也可以提及最大長度。

5.2.5 字詞查找轉換

字詞查找轉換用于(基于字典)從輸入文本列中搜尋關鍵術語。字典通常通過字詞提取轉換産生。因為字典就是表,是以當有必要時可以編寫SQL查詢來修改清單(通過增加或者删除術語)。

字詞查找轉換的編輯器相當簡單。第一個頁籤用于指定引用表(字典),如下圖所示。

第二個頁籤用于指定列的映射,例如,将輸入文本列映射到字典(參見下圖)。也可以直接指定一些輸入列,例如,文檔ID。

字詞查找轉換産生兩個新列作為輸出:字詞和詞頻。可以将該轉換的輸出認為是包含大量行的事實表(包含文檔ID、關鍵術語和相關的詞頻)。

在許多情況下,字詞查找轉換産生的術語比需要用于文本挖掘的術語要多。也可能存在一些無用的術語。在将資料輸入到挖掘模型之前,強烈推薦對查找轉換的輸出表進行浏覽,然後移除那些認為無用的術語。

5.2.6 文本挖掘項目示例

在我們周圍,非結構化的資料比結構化的資料要多得多,比如Internet,它包含數十億個非結構化的超文本标記語言(Hypertext Markup Language,HTML)文檔。分析文本文檔變得越來越重要。兩個流行的用于文本挖掘的資料挖掘任務是分類和細分。流行的文本挖掘領域之一是客戶支援 領域。在分類的示例中,有許多來自Web和電子郵件的客戶回報,我們希望為每個回報指派優先權。在細分的示例中,我們希望将相似的回報分組到一起,然後将 它們轉發給正确的部門。

通過SQL Server 2005,可以使用SSIS和資料挖掘來實作文本挖掘項目。在一個典型的流中,第一步是使用字詞提取來為商業領域建立字典。第二步是使用字詞查找來從文本 列中搜尋關鍵術語,進而将非結構化的資料轉換為結構化的輸出。第三步是應用資料挖掘技術(例如貝葉斯、神經網絡、聚類和決策樹)在字詞查找的輸出上構模組化 型。通常,字詞查找的輸出用作挖掘模型中的嵌套表。

下圖顯示了使用關聯算法的文本挖掘模型的示例。它分析了軟體開發項目的bug描述資料庫,并且确認了關鍵術語之間的關系。

6 小結

在本章中,學習了與另一個重要的SQL Server元件SQL Server內建服務(SSIS)相關的基本概念。我們介紹了控制流和資料流。還讨論了一些重要的任務和轉換。SSIS是用于資料清理和轉換(該步驟對于任何資料挖掘項目來說都是很耗時的)的重要工具。

本章中間部分的内容集中介紹了SSIS環境中特定于資料挖掘的特性。我們論述了每個與資料挖掘相關的任務和轉換。最後,我們給出了基于SQL Server 2005的兩個與文本挖掘相關的轉換和一個典型的文本挖掘項目示例。

資料挖掘和SSIS能夠從彼此中獲得好處。SSIS為資料挖掘提供資料處理的環境,而資料挖掘技術可以用作資料轉換過程的一部分。它使得SSIS更聰明,進而使得SSIS領先于其他經典ETL産品。

到現在為止,您應該清楚地了解了SSIS與資料挖掘之間的關系,以及可以在SSIS環境中完成的資料挖掘項目的類型。

繼續閱讀