上一篇我們通過一個示例來介紹一下SSIS 包的開發.接下來的內容我們將學習一下包中各個選項卡的使用.如:連接管理器選項卡、控制流選項卡、數據流選項卡和事件處理選項卡等等。這一篇將介紹一下連接管理器作用以及使用情況。
連接管理器的作用是連接到不同類型的數據源以提取和加載數據。任何包的開發都需要提供源數據。
下表列出了 SQL ServerIntegration Services 提供的連接管理器類型。
類型 |
說明 |
ADO |
連接到 ActiveX 數據對象 (ADO) 對象。 |
ADO.NET |
使用 .NET 提供程序連接到數據源。 |
CACHE |
從數據流或從緩存文件 (.caw) 中讀取數據,並可將數據保存到緩存文件。 |
EXCEL |
連接到 Excel 工作簿文件。 |
FILE |
連接到文件或文件夾。 |
FLATFILE |
連接到單個平面文件中的數據。 |
FTP |
連接到 FTP 服務器。 |
HTTP |
連接到 Web 服務器。 |
MSMQ |
連接到消息隊列。 |
MSOLAP100 |
連接到 SQL ServerAnalysis Services 實例或 Analysis Services 項目。 |
MULTIFILE |
連接到多個文件和文件夾。 |
MULTIFLATFILE |
連接到多個數據文件和文件夾。 |
OLEDB |
使用 OLE DB 訪問接口連接到數據源。 |
ODBC |
使用 ODBC 連接到數據源。 |
SMOServer |
連接到 SQL Server 管理對象 (SMO) 服務器。 |
SMTP |
連接到 SMTP 郵件服務器。 |
SQLMOBILE |
連接到 SQL Server Compact 數據庫。 |
WMI |
連接到服務器,並指定服務器上 Windows Management Instrumentation (WMI) 管理的范圍。 |
下面就簡單的介紹一下我們常用的使用連接管理器類型。
- OLE DB 訪問接口連接到數據源(數據庫連接)
- 首先打開上一篇創建名為"SSISDemo"項目.
- 在連接管理器窗口中,右擊選擇New OLE DB Connnection項,將彈出如下窗口:
左邊數據連接框顯示的連接是我們已創建好的數據庫連接。右邊數據庫連接屬性框顯示對應的屬性信息。你也可以新建一個數據庫連接。單擊新建按鈕,彈出如下對話框
在這對話框中,我們可以根據自己的需要填寫相應的內容。本例是以連接本地AdventureWorks數據庫。單擊確定按鈕。則會在連接管理器看到如下信息:
圖中LocalHost.AdventureWorks.sa就是我們剛才創建的數據庫連接。右擊LocalHost.AdventureWorks.sa彈出屬性框。可以根據需要修改這些屬性。比如將Name屬性修改為: AdventureWorks 。 到此一個 簡單OLE DB連接方式建立完成。其中的一些屬性含義。自己可以在后續的學習中逐步的掌握。
- FILE連接到文件或文件夾(平面文件連接)
平面文件連接管理器要比OLE DB連接方式要復雜的多。平面文件連接方式主要是連接非數據庫類型的文件。下面介紹下如何創建平面文件連接。假如我們有一個名為User.txt文件。數據格式如下:
每行有兩列數據。已“Tab”隔開。接下來介紹如何在連接管理器中連接這個文本文件。
- 仍然在連接管理器框中右擊,選中新建平面文件連接,彈出對話框
在圖中可以看到配置平面文件連接管理器需要配置連接管理器名稱、常規、列、高級、預覽這個屬性。下面將介紹如何配置這些屬性
- 連接管理器名稱:為工作流中的平面文件連接提供唯一的名稱。所提供的名稱將在連接管理器框中顯示。
- 常規選項卡:使用“平面文件連接管理器編輯器”對話框的“常規”頁可以選擇文件和數據格式。使用平面文件連接可以將包連接到文本文件。該選項卡中包含以下屬性:文件名:鍵入要在平面文件連接中使用的路徑和文件名。
區域設置:在區域設置下拉框中選中指定的區域位置,以便為排序以日期和時間格式提供語言特性的信息。在設計的時候最好選擇英語(美國)選項
Unicode復選框:指示是否使用Unicode。如果使用Unicode則不能指定代碼頁。
代碼頁:在代碼頁中選中指定非Unicode文本的代碼頁。設計時最好選擇1252(ANSI-拉丁語I)格式:在格式下拉框中選中文本的格式
屬性 | 說明 |
帶分隔符 | 各列之間由在“列”頁上指定的分隔符隔開 |
固定寬度 | 列的寬度固定 |
右邊未對齊 | 在右邊未對齊的文本中,除最后一列之外的每一列的寬度都相同。它有行分割符分割 |
文本限定符:指定要使用的文本限定符。例如,可以指定文本字段必須用引號括起來。若選擇文本限定符之后,就不能重新選擇"無"選項,鍵入None以取消選擇文本限定 符。
標題行分隔符:從標題行的分隔符列表中選擇,或輸入分隔符文本。
值 |
說明 |
{CR}{LF} |
標題行由回車符和換行符的組合分隔。 |
{CR} |
標題行由回車符分隔。 |
{LF} |
標題行由換行符分隔。 |
分號 {;} |
標題行由分號分隔。 |
冒號 {:} |
標題行由冒號分隔。 |
逗號 {,} |
標題行由逗號分隔。 |
制表符 {t} |
標題行由制表符分隔。 |
豎線 {|} |
標題行由豎線分隔。 |
要跳過的標題行數:指定要跳過的標題行數或初始數據行數(如果有的話)。
在第一個數據行中顯示列名稱:指示在第一個數據行中是否要求列名或提供列名。
根據常規選項卡中的這些屬性以后,我們就可以根據需求設定文本顯示的格式。如下圖
- 列選項卡:使用”平面文件連接管理器編輯器”對話框中的”列”選項卡可以在這里設置行和列的信息。並預覽相應的文件。如下圖:
包含如下屬性
行和列分隔符:此屬性和常規選項卡中的標題行分隔符一樣。可以根據需求設置行和列的顯示方式。
預覽: 查看平面文件中的示例數據,這些數據已按所選的選項划分為列和行.如上圖。
刷新:通過單擊“刷新”查看更改要跳過的分隔符后的效果。只有在更改行或列選項之后,此按鈕才可見。
重置列:通過單擊“重置列”可以刪除除原始列之外的所有列。 只有調轉到其他選項卡后,然后再回到“列”選項卡,此按鈕才可見。
本示例我們在列分隔符選項中選擇制表符(t),然后單擊刷新按鈕。
- 高級選項卡:使用“平面文件連接管理器編輯器”對話框的“高級”頁,設置指定 Integration Services 如何讀寫平面文件中的數據的屬性。可以更改平面文件中各個列的名稱,並設置包括文件中每個列的數據類型和分隔符在內的屬性。默認情況下,字符串列的長度為 50 個字符。可以調整這些列的長度,以免數據截斷或超出列寬。還可以更新其他元數據以便與目標列兼容。例如,可以將只包含整型數據的列的數據類型更改為數值數據類型,例如 DT_I2。可以手動進行這些修改,也可以單擊“選擇類型”按鈕,以使用“提供列類型建議”對話框來評估示例數據並自動進行其中一些更改。在高級選項卡中我們可以做如下工做:
配置各列的屬性:選擇左窗格中的列可在右窗格中查看列的屬性。請參閱下表以了解數據類型屬性的說明。列出的部分屬性僅對某些平面文件格式是可配置的。
屬性 |
說明 |
ColumnType |
表示列是由分隔符分隔、還是固定寬度,或是右邊未對齊。此屬性是只讀的。在右邊未對齊的文件中,除最后一列之外的每一列的寬度都固定。它由行分隔符分隔。 |
OutputColumnWidth |
指定值存儲為字節數;對於 Unicode 文件,此值對應於字符數。在數據流任務中,此值用於設置平面文件源的輸出列寬。 注意 在對象模型中,此屬性的名稱為 MaximumWidth。 |
DataType |
從可用數據類型的列表中進行選擇。 |
TextQualified |
指示文本數據周圍是否有文本限定符(例如引號字符)。 值說明 True平面文件中的文本數據是受限定的。 False平面文件中的文本數據是不受限定的。 |
Name |
提供說明性列名。如果不輸入名稱,則 Integration Services 將自動創建名稱,格式為“列 0”、“列 1”,依此類推。 |
DataScale |
指定數字數據的小數位數。小數位數是指小數點后的位數。 |
ColumnDelimiter |
從可用列分隔符的列表中進行選擇。選擇不可能出現在文本中的分隔符。對於固定寬度的列,將忽略此值。 值說明 {CR}{LF}列由回車符和換行符的組合分隔。 {CR}列由回車符分隔。 {LF}列由換行符分隔。 分號 {;}列由分號分隔。 冒號 {:}列由冒號分隔。 逗號 {,}列由逗號分隔。 制表符 {t}列由制表符分隔。 豎線 {|}列由豎線分隔。 |
DataPrecision |
指定數字數據的精度。精度是指數字的位數。 |
InputColumnWidth |
指定值以字節數進行存儲;對於 Unicode 文件,該值將顯示為字符數。對於分隔列,將忽略此值。 注意 在對象模型中,此屬性的名稱為 ColumnWidth。 |
新建:通過單擊“新建”添加一個新列。默認情況下,單擊“新建”按鈕將會在列表末尾添加新列。該按鈕還包括以下選項,可以在下拉列表中選擇。
值 |
說明 |
添加列 |
在列表末尾添加新列。 |
在其前插入 |
在所選列前面插入新列。 |
在其后插入 |
在所選列后面插入新列。 |
刪除:選擇一列,然后單擊“刪除”來刪除該列。
建議類型:使用“提供列類型建議”對話框可以計算文件中的示例數據,並獲取關於每列的數據類型和長度的建議。
充分了解高級選項卡的屬性后,我們將列0的Name和DataTye 屬性改為CustomerID和DT_I8類型。將列1的Name和DataTye 屬性改為SKUList和DT_STR類型,並將OutColumnWidth屬性修改為1000。
- 瀏覽選項卡:單擊瀏覽選項卡,可以看到如下圖顯示的數據
只要前三個選項卡配置成功后,預覽一下數據顯示格式就可以了。最后單擊確定按鈕。平面文件連接管理器就建立成功。最終在連接管理器框中顯示剛才創建名為“Userout.txt“的平面文件管理器。
本節就介紹常用的兩個連接管理器。其他的連接管理器可以參考這兩個例子自己嘗試去建立連接。