ssis(sql server integration service)是在sql server2000的dts的基礎上做的一個非常大的改進的新工具。采用了數據流和控制流分離,設計和部署分離的架構設計,引入了更多新的轉換,終于向著專業級的etl工具邁了一大部。
由于相對dts的改進非常大,開發和使用ssis也就顯得比dts略顯復雜。但是對于大型項目,實際上ssis比dts要簡單的多。
本文通過一個最簡單的例子,演示了開發和部署一個ssis package的整個過程。
1.開發
sql server2005對于客戶端的管理和開發工具做了高度的集成。對于數據庫的管理和t-sql開發,使用新的sql server management studio;對于ssis,ssrs(sql server reporting service),ssas(sql server analysis service)的開發則使用sql server business intelligence development studio。
打開business intelligence development studio,新建一個project,模板選擇integration services project,項目名ssistest。
選擇data flow標簽頁,先建一個新的數據流。從data flow sources中選擇一種源,這里我們使用sql server數據庫來做為數據來源,所以選擇ole db source,按下左鍵拖到工作區。這時由于該source還沒有設置連接信息,所以圖標上有一個紅叉,表示其狀態是invalid的。
沒有關系,我們先新建一個連接。在connect managers工作區右擊,選擇new ole db connect,然后點new設置要連接的數據庫即可。
回到數據流工作區,雙擊ole db source,在彈出的窗口中選擇對應的connect,data access mode選擇table or view,然后執行源數據表或者視圖,ok。
接下來,建一個目標數據。從data flow destinations中選擇ole db destination,拖到data flow工作區。
這個例子中,我只準備從一個源表將數據直接導入到目標表,不做任何轉換。所以這時可以直接將ole db source組件的輸出連接到ole db destination組件的輸入。也就是拉動source的綠色箭頭指向destination。實際的etl流程,還要對數據做很多轉換和清理的工作,可以通過添加各種data flow transformations來實現復雜的轉換邏輯。
數據從source連接到destination後,雙擊ole db destination設置連接信息,如果目標和源不在同一個數據庫,那么還需要在connect managers中新建一個ole db連接。同樣選擇好data access mode和目標表的,如果目標表還不存在,可以new一個。在mappings中,可以看到已經自動將source和destination的列做了映射,也可以再手動修改。
數據流設計完後,還需要設計控制流。由于本例子中只有一個數據流,所以控制流中只有一個部件;這樣,一個最簡單的ssis package就開發完成了。
2.部署
開發好的ssis package,還需要部署到要運行的機器上。首先要生成部署工具。
在project->ssis propertites,選擇deployment utility,將createdeploymentutility屬性設置位true。
然后重新build工程,這時可以在工程目錄的bin下(在工程屬性中可以設置輸出的目錄,bin是默認目錄),生成了一個deployment目錄,將該目錄復制到要部署的機器上,然后右擊其中的ssistest.ssisdeploymentmanifest,選擇deploy,啟動部署向導,按照提示一步步將package部署到sql server中即可。
3.調度
新建一個job,在step中選擇類型為sql server integration services package,然后執行要調度運行的pacage即可。
4.管理
用sql server management studio連接到integration service上即可管理已經部署的package
新聞熱點
疑難解答