(完整版)SSIS學(xué)習(xí)(2):數(shù)據(jù)流任務(wù)(上)_第1頁
(完整版)SSIS學(xué)習(xí)(2):數(shù)據(jù)流任務(wù)(上)_第2頁
(完整版)SSIS學(xué)習(xí)(2):數(shù)據(jù)流任務(wù)(上)_第3頁
(完整版)SSIS學(xué)習(xí)(2):數(shù)據(jù)流任務(wù)(上)_第4頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SSIS學(xué)習(xí)( 2 ):數(shù)據(jù)流任務(wù)(上)數(shù)據(jù)流任務(wù)是SSIS中的一個核心任務(wù),估計大多數(shù)ETL 包中,都離不開數(shù)據(jù)流任務(wù)。所以我們也從數(shù)據(jù)流任務(wù)學(xué)起。數(shù)據(jù)流任務(wù)包括三種不同類型的數(shù)據(jù)流組件:源、轉(zhuǎn)換、目標(biāo)。其中:源:它是指一組數(shù)據(jù)存儲體,包括關(guān)系數(shù)據(jù)庫的表、視圖;文件(平面文件、Excel文件、Xml文件等);系統(tǒng)內(nèi)存中的數(shù)據(jù)集等。轉(zhuǎn)換:這是數(shù)據(jù)流任務(wù)的核心組件,如果說數(shù)據(jù)流任務(wù)是ETL 的核心,那么數(shù)據(jù)流任務(wù)中的轉(zhuǎn)換,則是ETL 核心中的核心了。它包含非常豐富的數(shù)據(jù)轉(zhuǎn)換組件,比如數(shù)據(jù)更新、聚合、合并、分發(fā)、排序、查找等??梢哉fSQL 語句中有的功能,它都基本上運用起來了。目標(biāo):與 “源 ”相

2、對應(yīng),也是一組數(shù)據(jù)存儲體。包含表、視圖;文件;多維數(shù)據(jù)集、內(nèi)存記錄集等。除以上三類組件外,還有一種組件,那就是”流 (Flow)“,它形象地顯示了數(shù)據(jù)從”源 “,經(jīng)過”轉(zhuǎn)換 “,最后到達 ”目的 “地的一組路徑。我們可以利用”流 “,來查看數(shù)據(jù),添加備注說明等。下面一幅圖,就充分展示了源、轉(zhuǎn)換、目的、流的關(guān)系。下面我們以將IIS Log導(dǎo)入數(shù)據(jù)庫為例,來介紹如何進行數(shù)據(jù)流任務(wù)開發(fā)。在開發(fā)之前,我們先來看看IISlog的結(jié)構(gòu),如圖:它基本上記錄了網(wǎng)頁瀏覽的所有信息,如日期、時間、客戶IP 、服務(wù)器IP 、頁面地址、頁面參數(shù)等很多信息,我們再根據(jù)這些信息,在關(guān)系型數(shù)據(jù)庫中,建立一張對應(yīng)表,來記錄這

3、些信息。代碼萬事俱備, 下面我們就可以開始ETL 的開發(fā)之旅了,打開 Visual Studio 2008工具, 文件->新建 ->項目 ,選擇 “Integration Services項目 ”,ETL的開發(fā)界面就躍入眼簾,這是從事 .Net開發(fā)的朋友們非常熟悉的界面。打開左邊“工具箱 ”,將 “數(shù)據(jù)流任務(wù)”拖到主窗口“控制流面板 ”,如圖所示:然后雙擊 “控制流 ”面板上的 “數(shù)據(jù)流任務(wù) ”,進入 “數(shù)據(jù)流 ”面板,這兩部分 UI 沒有什么差異,只是所實現(xiàn)的功能不同罷了。真正的數(shù)據(jù)流任務(wù)開發(fā),從現(xiàn)在才算開始。打開左邊 “工具箱 ”,可以看到有三大部分: 數(shù)據(jù)流源、 數(shù)據(jù)流轉(zhuǎn)換、

4、 數(shù)據(jù)流目標(biāo)。 我們從 “數(shù)據(jù)流源 ”中,將 “平面文件源 ”拖到主窗口下,雙擊打開 “平面文件源 ”編輯器,點擊 “新建 ”,打開平面文件連接管理編輯器,如圖:輸入連接名稱,選擇 IisLog 文件,選擇行分隔符、列分隔符,就可以從預(yù)覽窗口看到數(shù)據(jù)的真面目了。這里有一點要注意,不同的平面文件, 其行分隔符、 列分隔符都是不一樣的,如果選不正確,將達不到你想要的效果, 所有的數(shù)據(jù)都可能擠到一列中去了。 一般行分隔比較簡單, 基本上都是以回車換行( CR LF )來分隔; 列分隔符卻不一樣了, 它既可以以任意文本字符來分隔,比如逗號(,)、分號(;)、冒號(:) tab 符、豎線 (|) ,以及

5、常用的文字字符、數(shù)字字符,也可以定義每一列的固定寬度來分隔。這就需要視文件源不一樣,分別對待了。在平面文件連接管理器中,選擇“高級 ”,還可以定義每一列的列名、數(shù)據(jù)類型、字符長度等信息。 等一切定義完成,點擊確定,返回到平面文件編輯器界面,前面建立的連接將自動返回到“平面文件連接管理器 ”的下拉列表框中,下面就要以選擇需要輸出的列了,如圖:然后再選擇 “錯誤輸出 ”,缺省選項如下圖所示:這一選項非常重要,是要求我們配置當(dāng)源數(shù)據(jù)發(fā)生錯誤的時候該如何處理,一般源數(shù)據(jù)發(fā)生錯誤有兩種情況:一是數(shù)據(jù)類型錯誤,比如日期格式錯誤、數(shù)字變字符了等; 另一情況就是字符太長,超出列寬了。根據(jù)不同的情況,其處理方式

6、也不一樣,系統(tǒng)提供了三種解決辦法:忽略失敗 :是指如果某一行數(shù)據(jù)錯誤,忽略此行,不影響程序執(zhí)行,繼續(xù)導(dǎo)入其它數(shù)據(jù)。重定向行 :將錯誤的數(shù)據(jù)行, 導(dǎo)入到另外一個數(shù)據(jù)流目標(biāo),供以后人工檢查后,再重新處理。組件失敗 :這是最嚴格的,只要遇到數(shù)據(jù)錯誤,組件立即失敗,停止運行。就 IISLOg這樣的數(shù)據(jù)源文件來說,有錯誤數(shù)據(jù)行,那是是經(jīng)常發(fā)生,但是這些少量數(shù)據(jù)錯誤,也不會影響最終的結(jié)果,我們就要以考慮容錯性為主了, 放寬對數(shù)據(jù)質(zhì)量的要求,一般選擇“忽略錯誤 ”,以方便程序繼續(xù)運行。一切都定義完后,我們看到“平面文件源 ”控件上,還有一個紅色的叉( X), 那是指沒有為此數(shù)據(jù)源定義目標(biāo),那就是下一步要定義

7、的。另外下面還有兩個長線箭頭,一個綠色,一外紅色,其中綠色:表示正確數(shù)據(jù)流通路,紅色表示錯誤數(shù)據(jù)流通路,如果前面定義錯誤“重定向行 ”,那么錯誤數(shù)據(jù)將沿著紅色路徑,流向錯誤數(shù)據(jù)存放地。定義數(shù)據(jù)源目標(biāo),這可能要簡單一些了,同理從左邊" 工具箱 " 中,看到有很多種類型的數(shù)據(jù)源目標(biāo),我們選擇 “OLEDB目標(biāo) ”,將 “平面文件源”控件下的綠色箭頭連接到“OLEDB標(biāo)”,然后雙擊,打開“OLEDB目標(biāo)編輯器”窗口, “新建 ”數(shù)據(jù)庫連接,如圖:目返回到 “OLE DB 目標(biāo)編輯器 ”窗口,在數(shù)據(jù)訪問模式下, 選擇 “表或者視圖 - 快速加載 ”一項,然后再選擇對應(yīng)的表 , 如圖:下面配置列映射,如圖:如果沒有的列,直接忽略即可(前提是表中該列允許為空),后面仍然是配置錯誤處理方式,參照平面文件源錯誤處理方式即可。到此為止,一個簡單的數(shù)據(jù)流任務(wù)就基本上完成了,點擊運行,我們期待已久的結(jié)果出現(xiàn)了。當(dāng)然,在實際開發(fā)過程中,可能并沒有這么順利,會遇到很多各種各樣的問題,在這篇文章中我們很少提及, 主要是因為這僅是個開始,沒有涉及到這么深入,在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論