1、 ssis讀取文件讀取數據寫入表:
本文使用工具:
組件自我理解:
名稱 | 描述 |
---|---|
數據流 | 是具體任務邏輯的實現(類似於kettle的轉換ktr) |
任務流 | 是宏觀任務的實現,大體代表任務的步驟的意思(類似於kettle的作業kjb) |
數 據 轉 換 | 類似於kettle的字符串加工() |
有條件拆分 | 類似於kettle的case/swich、條件判斷組件 |
查找組件 | 類似於kettle的case/swich、條件判斷組件(即查找到的如何處理,找不到的如何處理,但是要注意此組件數據源的配置,怎麼感覺僅針對於sqlserver呢?) |
派生列 | 感覺類似於kettle的計算組件(即倆個/多個字段進行計算和組合,組合成一個新的字段) |
OLE DB命令 | 個人感覺類似於kettle轉換中的失去了組件,可以時sql傳入參數的形式來執行? |
數據類型轉換 | 爲了兼容多種數據源(比如平面文件、MssQL、ORACLE、DB2、MYSQL等)將組件內的數據類型轉換爲需要數據庫需要的類型 |
查找(Lookup) | 類似於Sql 中的Left Join 、Right Join 數據流轉換(派生列、數據類型轉換)都是爲Lookup 鋪路搭橋的 |
查找lookUp
完全緩存:是指在查找轉換前,先把引用數據集,完全緩存在內存中,供以後查找時用。
部分緩存:在執行“查找轉換”時生成引用數據集,並將有匹配的數據行加載到緩存中,沒有匹配的數據行則丟棄。
無緩存:在執行“查找轉換”的過程中生成引用數據集,但不加載入緩存。
通過上面的解釋,利弊已經很明顯了,不同的情況,可能需要不同的處理策略,自已權衡吧。
連接類型,實際上也很清楚了,就不多說了。
指定如何處理無匹配的行:這一選項非常重要,共有四個選項:
**忽略失敗:**就是說遇到無匹配的項,忽略,程序繼續執行。
將行定位到錯誤輸出:無匹配的記錄,通過錯誤數據流路徑(紅色箭頭)輸出,供以後人手分析處理。
組件失敗:如果遇到無匹配的項,組件立即失敗,程序停止執行。
**將行定位到無匹配輸出:**輸出無匹配的記錄集。此選項通常用於查找是否有新的記錄產生,如果有新記錄出現,則導入,已有匹配的記錄集忽略。
1、新建ssis項目?或者已有項目,至需要這個類型的操作:
以下內容基本實在數據流的實現
- 數據流:是具體任務邏輯的實現
- 任務流:是宏觀任務的實現,大體代表任務的步驟的意思
配置:
上圖需注意編碼格式,忽略行數等
【特別注意上圖中要跳過的標題行數標籤,否則會沒有數據或者丟數據】
2、讀取異構數據庫表數據寫入異構數據庫的表內
2、配置目標
再此一個簡單的讀取數據和寫入數據的操作就基本實現了,
其實內部還有很多插件可以使用的:例如sql等,在同一個數據時,使用還是比較好的
3、有條件拆分組件的使用
優先約束控制着包的工作流,它會判斷包的約束是否滿足,然後再按照約束條件來選擇包是繼續運行,還是停止運行。在以前的DTS中,優先約束僅限於前面的任務是“成功”、“失敗”、“完成”這三種狀態,而現在除了以上三種狀態外,還多了一個“表達式和約束”,即我們可以通過定義表達式來定義約束,比如上圖所示,如果我們需要定義當錯誤數量超過5次以後,包才失敗,停止運行。這就要用到表達式約束了。