SSIS不僅是一個ETL工具,其實它的功能非常強大。就拿它的WMI Data Reader任務和Event Watcher任務來說,甚至可以擷取很多作業系統的資訊。Windows管理規範(Windows Management Instrumentation)是Windows中的“最高機密”之一. WMI通過WQL查詢,可以來完成以下應用:
1.讀取系統事件日誌來尋找某個特定的錯誤
2.查詢運行中的應用程式列表
3.查詢在程式包執行期間有多少記憶體可用調試
4.確定磁碟上的空餘磁碟空間
當然,這些應用你也可以通過C#調用WMI來實現。不過使用SSIS,你可以結合這些應用,與資料庫的操作,資料轉換和整合聯絡起來,能夠發揮更強大的作用。
需求:
需要擷取遠程伺服器的磁碟可用空間大小.
實現:
1.首先需要確定的是,查詢遠程電腦的磁碟大小,必須具有這台主機的管理員權限,或者能夠以管理員的身份來運行包.
2.建立一個SSIS包,名稱為WMI_Query,在控制流程中添加WMI資料讀取器任務,雙擊對期屬性進行設定:
WMIConnection直接建立的連結,輸入主機名稱,使用者名稱和密碼即可,當然,在這裡也可以採用動態串連的方式,那樣需要直接改變WMIConnection的連接字串.
WQL的輸入方式為直接輸入,這裡也可以使用變數名教檔案輸入。查詢磁碟空間的語句為:
SELECT FreeSpace, DeviceId, Size, SystemName, Description FROM
Win32_LogicalDisk
where DriveType= 3
WMI中DriveType是指磁碟機類型, 0代表未知,1代表可移動,2代表固定,3代表網路,4代表CD-ROM,5代表RAM磁碟,我們設定目標的方式為變數,並且直接建立一個字串的變數DiskUsageResults.
3. 為了方便查看,我們可以添加一個指令碼任務來輸出這個變數,直接快顯視窗來顯示磁碟資訊:
public void Main()
{
// TODO: Add your code here
MessageBox.Show(Dts.Variables["DiskUsageResults"].Value.ToString());
Dts.TaskResult = (int)ScriptResults.Success;
}
運行包,我們可以直接看到遠程機器上面的所有的磁碟使用方式
結論:
1.可能這種功能能夠派上用場的時候比較少,但是SSIS提供的功能已經涵蓋非常廣,在很多問題的解決方案中能夠成為一種選擇。
資源:
1.WMI Data Reader Task Query http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/67428/
2.圖解SSIS監看資料夾並自動匯入資料 http://blog.csdn.net/jinjazz/archive/2008/07/29/2730135.aspx
作者:孤獨俠客(似水流年)
出處:http://lonely7345.cnblogs.com/
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。