1, Integration Services Project有很多Control Flow Items,通過組合他們之間執行的先後關係,完成一定的工作幾種常用的item分別是Scirpt Task, Sql Task, DataFlow Task, Execute
Process Task
2, 可以在Control Flow的設計頁面右鍵添加Variables, Script Task如果要訪問全域變數,需要在編輯時在ReadOnlyVariables和ReadWriteVariables兩種類型中預先定義,然後電機Design Script按鈕,進入編輯指令碼.
3, DataFow Task Item
在Integration Services Project中,一旦建立了一個Data Flow任務,它將會產生新的資料流。正如Controller Flow(控制器流)負責處理常式包的主工作流程那樣,資料流負責處理資料的轉換。幾乎所有能夠操作資料的組件都可以歸類到資料流類別。當資料在資料流中的每一步中流動時,資料將根據所進行的轉換內容而發生變化。1-7所示,使用衍生的資料行轉換後將產生一個新的列,然後這個新列對於後續的轉換或者目的地都可用。
在本節中將簡短討論每種資料來源、目的地以及轉換。在第3、4章將對本節內容進行更詳細的介紹。
1.6.1 源
源(source)是使用者所指定的來源資料位置,資料從源被拉到資料泵中。源通常指向SSIS中的Connection Manager(連線管理員)。通過指向連線管理員,使用者可以在整個程式包中重用串連,因為只需要在一個位置修改串連即可。在SSIS中,一共有6種可以使用的源。
● OLE DB源(OLE DB source):串連到幾乎所有的OLE DB資料來源,例如SQL Server、Access、Oracle或DB2,等等。
● Excel源(Excel Source):專門負責接收來自Excel試算表資料的源。這種源也可以使得運行針對Excel試算表的SQL查詢更為容易,以限制希望通過資料流的資料範圍。
● 一般檔案源(Flat File Source):串連到定界的或固定寬度的檔案。
● 原始檔案源(Raw File source):一種由原始檔案目的地(Raw File Destination)所建立的專門檔案格式。原始檔案源通常表示傳輸過程中的資料,而且讀取非常快捷。
● XML源(XML source):可以擷取來自XML文檔的資料。
● DataReader源(DataReader source):DataReader源是一個ADO.NET串連,非常類似於在自己的應用程式代碼中使用DataReader介面串連到資料庫時在.NET Framework中所看到的串連。
1.6.2 目的地
在資料流中,目的地接收來自資料來源和來自轉換過程的資料。SSIS的靈活體繫結構可以發送資料到幾乎任何OLE DB相容的資料來源或者到某個一般檔案。和源一樣,目的地是通過連線管理員來管理的。在SSIS中,可以使用以下類型的目的地:
● 資料採礦模型培訓(Data Mining Model Training):這種目的地通過將來自資料流的資料傳遞到目的地來培訓某個分析服務(Analysis Services)採礦模型。
● DataReader目的地(DataReader Destination):允許將資料提交給其他的外部進程,例如報表服務(Reporting Services)或自己的.NET應用程式。該目的地使用ADO.NET DataReader介面來完成這一工作。
● 維度處理(Dimension Processing):載入並處理某個分析服務維度。它可以執行維度完全更新或累加式更新。
● Excel目的地(Excel destination):將來自資料流的資料輸出到某個Excel試算表。
● 一般檔案目的地(Flat File destination):使得使用者可以將資料寫入到某個定界或固定寬度的檔案。
● OLE DB目的地(OLE DB destination):將資料輸出到某個OLE DB資料連線,例如SQL Server、Oracle或Access。
● 分區處理(Partition Processing):使得使用者可以執行分析服務分區的累加式更新或完全更新處理過程。
● 原始檔案目的地(Raw File Destination):這種目的地負責輸出稍後可以用於原始檔案源的資料。這是一種非常專業化的格式,而且輸出非常快捷。
● 記錄集目的地(Recordset Destination):將記錄寫入到ADO記錄集。
● SQL Server目的地(SQL Server Destination):使用這種目的地可以最有效地將資料寫入到SQLServer。
● SQL Server移動目的地(SQL Server Mobile Destination):將資料插入到運行於掌上型電腦(Pocket PC)上的SQL Server。
1.6.3 轉換
轉換(transformation)是資料流的關鍵組件,負責將資料轉變為所希望的格式。例如,使用者可能希望對資料進行排序或彙總。可以使用兩種轉換來完成這一任務。在SSIS中,有關轉換的最大好處是所有過程都是在記憶體中完成的,而且不再需要像SQL Server 2000 DTS中所必須進行的精心指令碼編程。在第4章和第6章將詳細討論轉換。以下是SSIS中可用的完整轉換列表:
● 彙總(Aggregate):彙總來自轉換過程或源的資料。
● 審核(Audit):這種轉換負責將審核資訊提供給程式包。這些審核資訊包括諸如軟體何時運行以及由誰所運行之類的資訊。
● 字元對應表(Character Map):這種轉換可以進行字元資料轉換,例如將資料從小寫轉換為大寫。
● 條件拆分(Conditional Split):根據所符合的特定條件來拆分資料。例如,這種轉換可以設定為當State(州)列等於Florida(佛羅里達)時沿不同的路徑發送資料。
● 複製列(Copy Column):將某個列的副本加入到轉換輸出。稍後可以對副本進行轉換,而保留未經處理資料用於審核。
● 資料變換(Data Conversion):將某列的資料類型變換為其他的資料類型。
● 資料採礦查詢(Data Mining Query):執行針對分析服務的資料採礦查詢。
● 衍生的資料行(Derived column):建立一個根據運算式所計算得到的新衍生的資料行。
● 匯出列(Export Column):這種轉換允許使用者將列從資料流匯出到某個檔案。例如,可以使用這種轉換將某個包含映像的列寫入到檔案。
● 模糊群組(Fuzzy Grouping):通過尋找可能重複的行來清理資料。
● 模糊查詢(Fuzzy Lookup):根據模糊邏輯來匹配並標準化資料。例如,該轉換可以將名稱jon轉換為john。
● 匯入列(Import Column):從檔案讀取資料並把它加入到某個資料流。
● 查詢(Lookup):對稍後要用於轉換過程的資料執行查詢。例如,可以使用這種轉換根據郵遞區號來查詢某個城市。
● 合并(Merge):將資料流中的兩個排序資料集合并為單個資料集。
● 合并聯結(Merge Join):使用一個聯結功能將兩個資料集合并為單個資料集。
● 組播(Multicast):將資料的一個副本發送到工作流程中增加的路徑。
● OLE DB命令(OLE DB Command):針對資料流中的每一行執行一個OLE DB命令。
● 百分比採樣(Percentage Sampling):通過使用資料流中總行數的百分比來從資料流捕獲資料採樣。
● 透視(Pivot):將位於某列上的資料透視到一個非相關的格式。透視某個表,意味著可以按照多種方式來劃分資料,這與在OLAP和Excel中很相似。
● 行數(Row Count):將行數從資料流儲存到變數中。
● 行採樣(Row Sampling):通過使用資料流中總行數從資料流捕獲資料採樣。
● 指令碼組件(Script Component):使用指令碼轉換資料。例如,可以使用這種轉換將專門的商務邏輯應用於資料流。
● 緩慢變化維度(Slowly Changing Dimension):協調某個緩慢變化維度中的資料的條件插入或更新。
● 排序(Sort):通過給定的列對資料流中的資料進行排序。
● 術語提取(Term Extraction):提取文本資料中的名詞或形容詞。
1.6.3 Script Component
可以使用指令碼組建靈活修改輸入輸出, 通過修改row的列值達到修改輸出的目的. 這裡要注意的是如果要在script component中修改variable, 需要重寫方法. 也可以通過靈活設定exclusiongroup非0來使用DirectRowToOutput達到filter row的目的.
Public Overrides Sub FileInput_ProcessInputRow(ByVal Row As FileInputBuffer)
If Row.Col001 <> "HDR" And Row.Col001 <> "TLR" Then
Row.CrtTime = Now
Row.FileName = Me.Variables.FileName
If Row.Col002 = "Y" Or Row.Col014 = "N" Then
Row.ChequeFrm = "0"
Else
Row.ChequeFrm = "1"
End If
Row.PostStatus = "P"
Row.SplitTktFlag = Row.Col001
Row.DirectRowToOutput()
value = "abcd"
End If
End Sub
'override postexecute method to update the variables
Public Overrides Sub PostExecute()
Variables.TLR = value
MyBase.PostExecute()
End Sub
1.7 Connection Manager
在建立Connection Manager後,可以通過script修改connection string來重新設定串連, 要根據native sql和ole net等類型注意串連串的format,
● 術語查詢(Term Lookup):尋找從文本中提取的術語,然後引用某個參考資料表中的值。
● 聯合所有(Union All):將多個資料集合并到單個資料集。
● 取消樞紐(Unpivot):將資料從非標準格式取消樞紐為某種關係格式。