圖書簡介
隨著SQLServerIntegrationService(SSIS)2005版本的發布,開發人員將需要丟棄以前有關DTS的知識,並準備好從頭開始學習。這是因為SSIS環境已經從原先SQLServer的一個不起眼的特性發展成一個全新的、企業級提取轉換載入(ExtractTransformLoad,ETL)工具。
本書將幫助你順利度過最初的學習曲線,這樣你可以能夠儘快掌握使用SSIS來轉換數據、創建工作流或者是維護SQLServer。通過本書提供的實際指導,你將了解到全新領域的集成功能,並且能夠從以前複雜邏輯腳本編程解脫出來,轉為使用一種功能完備的語言來對任務進行編程。
你將從本書學到的內容
l快速轉移和轉換數據的方法
l如何配置SSIS的各個方面
l如何將SSIS與Web服務和XML進行互動
l使SSIS具有可伸縮性並且更可靠的技術
l如何將DTS程式包移植到SSIS
l如何創建你自己的任務和用戶界面
l如何創建與SSIS互動的應用程式來管理環境
l一個針對完整ETL解決方案的詳盡案例研究
本書讀者對象
本書針對開發人員、DBA(資料庫員)以及那些希望在所有.NET語言中編寫自定義代碼的用戶。本書希望讀者已經了解了如何查詢SQLServer的基本知識並具有初步的編程技能。
目錄
第1章歡迎使用SQLServer集成服務 1
1.1SQLServer2005SSIS中的新特性 1
1.1.1導入和導出嚮導 2
1.1.2商業智慧型開發工具集 2
1.2體系結構 3
1.2.1程式包 5
1.2.2任務 5
1.2.3數據源元素 6
1.2.4數據源視圖 7
1.3優先約束 8
1.3.1約束值 8
1.3.2條件表達式 8
1.4容器 9
1.5變數 10
1.6數據流元素 10
1.6.1源 10
1.6.2目的地 11
1.6.3轉換 12
1.7錯誤處理和日誌記錄 13
1.8SQLServer2005的版本 14
1.9小結 16
第2章SSIS工具 17
2.1ImportandExportWizard 17
使用ImportandExportWizard 17
2.2PackageInstallationWizard 21
2.3BusinessIntelligenceDevelopmentStudio 21
2.4創建自己的第一個程式包 23
2.5SolutionExplorerWindow 24
2.5.1Toolbox 25
2.5.2PropertiesWindows 26
2.5.3NavigationPane 26
2.5.4其他視窗 27
2.6SSISPackageDesigner 27
2.6.1ControllerFlow 28
2.6.2ConnectionManager 30
2.6.3變數 31
2.6.4數據流 32
2.6.5EventHandler 33
2.6.6PackageExplorer 34
2.6.7執行程式包 34
2.7小結 35
第3章SSIS任務 36
3.1共享屬性 36
3.2ExecuteSQL任務 37
3.3BulkInsert任務 38
3.4使用BulkInsert和ExecuteSQL任務 41
3.5DataFlow任務 43
3.6ExecuteProcess任務 43
3.7FileSystem任務 44
3.8FTP任務 45
3.9使用FileSystem和FTP任務 46
3.10ExecutePackage任務 48
3.11Script和ActiveX任務 49
3.12SendMail任務 51
3.13MessageQueue任務 52
3.14WebService任務 52
3.15WMIDataReader任務和EventWatcher任務 54
3.16XML任務 56
3.17SQLServerAnalysisServicesExecuteDDL和Processing任務 57
3.18DataMiningQuery任務 58
3.19Expression頁面 59
3.20小結 60
第4章容器和數據流 61
4.1容器 61
4.1.1TaskHost容器 61
4.1.2Sequence容器 61
4.1.3ForLoop容器 62
4.1.4ForeachLoop容器 65
4.2源 67
4.2.1OLEDB源 67
4.2.2Excel源 68
4.2.3FlatFile源 68
4.2.4RawFile源 69
4.2.5XML源 69
4.2.6DataReader源 69
4.3目的地 69
4.3.1DataMiningModelTraining目的地 70
4.3.2DataReader目的地 71
4.3.3DimensionProcessing和PartitionProcessing目的地 72
4.3.4Excel目的地 72
4.3.5FlatFile目的地 73
4.3.6OLEDB目的地 73
4.3.7RawFile目的地 74
4.3.8Recordset目的地 74
4.3.9SQLServer和SQLServerMobile目的地 74
4.4轉換 74
4.4.1Aggregate轉換 75
4.4.2Audit轉換 77
4.4.3CharacterMap轉換 77
4.4.4ConditionalSplit轉換 78
4.7小結 94
第5章創建端到端的程式包 95
5.1基礎轉換教程 95
5.1.1創建連線 95
5.1.2創建任務 98
5.1.3創建數據流 98
5.1.4完成程式包 99
5.1.5保存程式包 99
5.1.6執行程式包 99
5.2具有數據清理功能的典型大型機ETL 100
5.2.1創建數據流 103
5.2.2處理不正確數據 103
5.2.3最終完成 106
5.2.4處理更錯誤的數據 107
5.3使任務循環並動態執行 110
5.3.1循環 110
5.3.2使程式包動態執行 111
5.4小結 113
第6章高級任務和轉換 114
6.1ExecuteSQL任務 114
6.1.1變數 116
6.1.2表達式 117
6.1.3使用SQL輸出參數來修改運行時設定 118
6.2ImportColumn轉換 121
6.2.1ImportColumn示例 121
6.2.2使用檔案疊代的ImportColumn示例 125
6.3在SSIS程式包開發過程中使用TempTables任務 127
6.4ExportColumn轉換 128
6.5RowCount轉換 130
6.6OLEDBCommand轉換 131
6.7TermExtraction轉換 134
6.8TermLookup轉換 139
6.9FuzzyLookup轉換 140
6.10FuzzyGrouping轉換 145
6.11Pivot轉換 148
6.12Unpivot轉換 152
6.13SlowlyChangingDimention轉換 155
6.14資料庫對象級的任務 164
6.14.1TransferDatabase任務 164
6.14.2TransferLogin任務 165
6.14.3TransferMasterStored
Procedures任務 166
6.14.4TransferSQLServerObjects任務 166
6.15小結 168
第7章在SSIS中進行腳本編程 169
7.1腳本編程概述 169
7.2表達式 170
7.2.1動態屬性 170
7.2.2任務中的表達式 172
7.3Script任務 174
7.3.1Dts對象 177
7.3.2訪問變數 178
7.3.3事件 179
7.3.4日誌記錄 181
7.3.5Script任務調試 181
7.4使用.NET程式集 183
7.5結構化異常處理 184
7.6ScriptComponent 186
7.6.1使用ScriptComponent 186
7.6.2調試ScriptComponent 191
7.7小結 192
第8章訪問異類數據 193
8.1Excel 193
8.1.1導出到Excel 194
8.1.2從Excel導入 197
8.2Access 201
8.2.1了解Access安全性 202
8.2.2配置AccessConnectionManager 203
8.2.3從Access導入 204
8.2.4使用參數 206
8.3Oracle 209
8.3.1客戶端設定 209
8.3.2導入Oracle數據 210
8.4WebService 211
8.4.1HyperlinkExtractor服務 212
8.4.2CurrencyConversion服務 214
8.5XML數據 219
8.6小結 224
第9章可靠性和可伸縮性 225
9.1重啟動程式包 225
9.1.1簡單控制流 226
9.1.2容器中的容器和斷點 230
9.1.3各種不同的情況 231
9.1.4斷點檔案探密 234
9.2程式包事務 235
9.2.1單個程式包,單個事務 236
9.2.2單個程式包,多個事務 238
9.2.3兩個程式包,一個事務 240
9.2.4使用SQLServer中本原事務的單個程式包 241
9.3錯誤輸出 243
9.4規模擴展 245
9.4.1規模擴展記憶體壓力 245
9.4.2通過暫存數據進行規模擴展 246
9.5小結 250
第10章了解集成服務引擎 251
10.1集成服務引擎:一個類比 251
10.2了解SSISDataFlow和ControlFlow 252
10.2.1DataFlow和ControlFlow對比 252
10.2.2SSIS程式包從啟動到結束的執行時間 254
10.3使用ControlFlow的企業工作流 254
10.4使用DataFlow的企業數據處理 255
10.4.1記憶體快取體系結構 256
10.4.2轉換類型 257
10.4.3高級的DataFlow執行概念 266
10.5小結 274
第11章套用集成服務引擎 275
11.1過去的DTS 275
11.1.1DTS解決方案體系結構 276
11.1.2一般的DTS處理方法 277
11.1.3DTS的局限性 278
11.2現在的IntegrationService 280
11.2.1IntegrationService設計實踐 280
11.2.2最佳化程式包處理 294
11.3管線性能監視 298
11.4小結 301
第12章DTS2000移植和元數據管理 302
12.1將DTS2000程式包移植到SSIS 302
12.2使用PackageMigrationWizard 304
12.3在SSIS下運行DTS2000程式包 307
12.4數據包元數據以及存儲管理 309
12.4.1在SQLServerManagementStudio中管理SSIS程式包 311
12.4.2在SQLServerManagementStudio中管理DTS2000程式包 313
12.5小結 314
第13章錯誤和事件處理 315
13.1優先約束 315
13.1.1優先約束和表達式 317
13.1.2多個優先約束 320
13.2事件處理 321
13.2.1事件 322
13.2.2Inventory示例 323
13.2.3事件冒泡 330
13.3斷點 332
13.4Checkpoint 335
13.5日誌記錄 336
13.6小結 339
第14章對SSIS進行編程和擴展 340
14.1示例組件 340
14.1.1組件1:源適配器 340
14.1.2組件2:轉換 341
14.1.3組件3:目的地適配器 341
14.2管線組件方法 342
14.2.1設計時方法 342
14.2.2運行時方法 346
14.2.3連線時方法 348
14.3創建組件 348
14.3.1準備 349
14.3.2創建源適配器 355
14.3.3創建轉換 366
14.3.4創建目的地適配器 378
14.4調試組件 386
14.4.1設計時調試 387
14.4.2運行時調試 388
14.5小結 391
第15章在組件中添加用戶界面 392
15.1三個關鍵步驟 392
15.2創建用戶界面 393
15.2.1添加項目 393
15.2.2實現IDtsComponentUI 396
15.2.3設定UITypeName 399
15.2.4創建窗體 401
15.3進一步的開發 406
15.3.1運行時連線 406
15.3.2組件屬性 409
15.3.3處理錯誤和警告 410
15.3.4列屬性 413
15.4小結 414
第16章外部管理和WMI任務實現 415
16.1使用託管代碼的外部管理 415
16.2Application對象維護操作 416
16.2.1程式包維護操作 416
16.2.2伺服器資料夾維護 417
16.2.3程式包角色維護 418
16.2.4程式包監視 419
16.2.5程式包管理示例 420
16.3程式包日誌提供程式 429
16.3.1指定要記錄的事件 430
16.3.2對日誌提供程式進行編程 431
16.4程式包配置 433
16.4.1創建配置 434
16.4.2對Configuration對象進行編程 435
16.4.3Configuration對象 436
16.5WMI任務 436
16.5.1WMIDataReader任務解釋 437
16.5.2WMIEventWatcher任務 438
16.5.3WMIDataReader任務示例 439
16.5.4WMIEventWatcher任務示例 444
16.6小結 445
第17章通過外部應用程式使用SSIS 446
17.1從RSS輸入,從ReportingServices報表輸出 446
17.2InfoPath文檔 452
17.3ASP.NET應用程式 459
17.4小結 463
第18章SSIS軟體開發生命周期 465
18.1軟體開發生命周期介紹 466
18.1.1軟體開發生命周期歷史簡介 466
18.1.2軟體開發生命周期的類型 466
18.2版本和原始碼管理 468
18.2.1MicrosoftVisualSourceSafe 468
18.2.2TeamFoundationServer、TeamSystem和SSIS 480
18.2.3MSFAgile和SSIS 484
18.2.4ProjectPortal 486
18.2.5綜合套用 487
18.3代碼部署和從開發到測試,再到投入生產的升級過程 498
18.3.1Deployment嚮導 499
18.3.2導入程式包 500
18.4小結 501
第19章案例研究:一個編程示例 502
19.1背景 502
19.2業務問題 503
19.3解決方案概述 503
19.4解決方案體系結構 504
19.5數據體系結構 507
19.5.1檔案保存位置設定 508
19.5.2銀行ACH付費 508
19.5.3Lockbox檔案 509
19.5.4PayPal或直接存款到企業賬戶 510
19.5.5案例研究資料庫模型 510
19.5.6資料庫創建 511
19.6CaseStudy_Load程式包 520
19.6.1命名約定和提示 520
19.6.2程式包創建和FileSystem任務 521
19.6.3LockboxControlFlow處理 525
19.6.4Lockbox檔案驗證 531
19.6.5Lockbox處理 538
19.6.6ACHControlFlow處理 542
19.6.7ACH檔案驗證 545
19.6.8ACH處理 550
19.6.9電子郵件付款處理 552
19.6.10電子郵件DataFlow處理 554
19.6.11測試 557
19.7CaseStudy_Process程式包 557
19.7.1程式包創建 558
19.7.2高可信度DataFlow 560
19.7.3中等可信度DataFlow 564
19.7.4解釋結果 567
19.8在SQLAgent中運行 569
19.9小結 570