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查詢。例如,可以輸入以下的內容查詢:

1 Select * from myAssociationModel.Content Where Node_Type = 7

也可以調用存儲過程:

1 Call mystoreproc

實際上,也可以在數據挖掘查詢任務中指定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環境中完成的數據挖掘項目的類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章