第一部分 入门 2
第1章 欢迎使用SQL Server Integration Services 2
什么是SQL Server Integration Services 2
数据导入/导出向导 2
ETL工具 2
控制流引擎 2
应用程序平台 3
高性能的数据转换数据管线 3
Integration Services简史 3
有哪些新技术(或者说,这并不是上一代的DTS!) 4
本书的组织方式 4
项目示例 5
第2章 设置Integration Services 7
安装Integration Services(IS) 7
安装Integration Services 7
外围应用配置 10
服务和连接的外围应用配置器 10
功能的外围应用配置器 11
设置丛书示例 12
各项功能都在哪里 12
商业智能开发工作室 12
管理工作室 12
导入和导出向导 13
迁移向导 13
DTEExec和DTUtil 13
DTExecUI 13
帮助资源 13
SQL Server 2005安装和升级论坛 14
联机丛书 14
SQLIS.COM 14
MSDN 14
SQL Server Integration Services论坛 14
小结 14
第3章 从DTS迁移 15
影响的范围 15
SSIS不是DTS 15
区别的范围 16
好消息 16
可用迁移资源 17
升级顾问 17
Execute DTS 2000 Package Task(执行DTS 2000包任务) 21
迁移向导 21
关于迁移工作的一些考虑 24
SQL Server实例和企业管理器 24
Meta Data Services 25
迁移带密码的包 25
小结 27
第4章 建立一个包——快速入门 28
快速入门 28
情景举例 28
配置数据流 31
小结 40
第二部分 Integration Services基础和概念 42
第5章 Business Intelligence Development Studio 42
入门 43
“起始页”和“社区”菜单 43
新建解决方案 44
Integration Services的选项 45
SSIS菜单 45
工具箱 46
设计器 47
Visual Studio的标准选项 61
解决方案资源管理器 62
“属性”窗口 68
“变量”窗口 68
“文件”菜单 68
“选项”对话框 69
“调试”窗口 70
“调用堆栈”窗口 72
小结 75
第6章 Integration Services的基本构件 76
Integration Services的基本构件 76
包和其他对象 76
任务 77
变量 77
连接管理器 78
日志提供程序 79
容器 79
优先约束 79
数据流任务、适配器和转换 80
数据流适配器 80
将数据移入或移出数据流缓冲区 81
数据流转换 81
数据流与工作流——基本区别 81
执行模型 82
连接线 83
功能范围 83
小结 83
第7章 用容器组合控制流 84
容器的概念 84
组织 84
降低复杂性 85
作用域划分 86
事务的作用域 87
配置的作用域 87
变量的作用域 87
执行的作用域 87
连接的作用域 88
日志记录的作用域 88
事件处理器的作用域 88
容器公共属性 88
“标识” 88
“执行” 89
“强制执行” 90
“事务” 90
其他类别中的属性 91
设计器分组——非容器 91
任务和Taskhost容器 91
属性集 92
持续性 92
包的路径和配置 92
调试功能 93
禁用控制流 93
自定义注册 94
联系信息和良好加载故障恢复 95
隔离 96
对敏感数据的保护 97
简单的“序列容器” 97
循环容器 99
“包”容器 99
包的重要属性 101
小结 102
第三部分 控制流服务 104
第8章 存储区任务 104
普通任务约定 104
任务用户界面 104
访问方法 106
标准选项卡 106
任务组 107
工作流任务 107
执行DTS 2000包任务 107
“发送邮件任务” 112
“FTP任务” 114
“消息队列任务” 117
“WMI任务” 121
WMI数据读取器任务 123
WMI事件观察器任务 126
Web服务任务 128
执行包任务 130
执行进程任务 133
执行SQL任务 135
脚本任务 139
ActiveX脚本任务 140
数据处理任务 140
大容量插入任务 140
XML任务 141
数据流任务 143
小结 143
第9章 表达式的用法 144
表达式基础知识 144
表达式函数 145
列 146
属性表达式 146
简单举例 146
数据流属性表达式 149
添加数据流属性表达式 150
变量表达式 151
优先约束表达式 152
For循环表达式 153
小结 153
第10章 存储区连接管理器 155
连接管理器 155
创建连接管理器 157
存储区连接管理器 158
ADO连接管理器 158
ADO.NET连接管理器 159
Excel连接管理器 160
文件连接管理器 162
平面文件连接管理器 163
连接管理器的设置:高级 166
FTP连接管理器 168
连接管理器的设置 168
HTTP连接管理器 168
MSMQ连接管理器 170
微软分析服务连接管理器 170
MultiFile连接管理器 171
MultiFlatFile连接管理器 172
ODBC连接管理器 173
OLEDB连接管理器 174
SMOServer连接管理器 176
SMTP连接管理器 176
WMI连接管理器 177
数据源和数据源视图 178
“数据源”和“数据源视图”简介 178
小结 183
第11章 日志记录和存储区日志提供程序 184
基础知识 184
快速入门 185
包日志记录的配置 185
存储区日志提供程序 188
Windows事件日志提供程序 188
文本文件日志提供程序 188
XML日志提供程序 188
SQL Server日志提供程序 189
SQL探查器日志提供程序 189
设计器日志事件查看器——“虚拟的日志提供程序” 189
日志记录提供程序和日志记录选项 190
日志提供程序 190
日志记录选项 190
日志记录架构 191
日志事件 192
自定义日志记录 194
使用“脚本任务”和“脚本注释” 194
使用“SQL任务” 194
小结 196
第12章 古老的变量 197
变量的重要概念——属性、作用域、类型和名称空间 198
变量的属性 198
变量的作用域 199
变量类型 202
变量的名称空间 203
系统变量 204
创建和使用变量 205
运行时行为 205
关于变量的提示和技巧 206
在“执行SQL任务”中使用带参数的“EvaluateAsExpression” 206
在子包中隐藏父包中的变量 206
在变量中存储对象 207
小结 207
第13章 循环和Foreach枚举器 208
For循环 208
While循环 210
Foreach循环 210
存储区Foreach枚举器 213
Foreach文件枚举器 213
Foreach Item 214
Foreach ADO 215
Foreach ADO.NET架构行集 217
Foreach源变量 220
Foreach NodeList 220
Foreach SMO 223
小结 224
第四部分 管理服务 226
第14章 解决方案的配置与部署 226
包的配置 226
包配置的工作方式 227
包配置组织程序 230
包配置类型 232
XML配置文件 232
配置编辑器 233
环境变量配置 234
注册表项配置 236
父包变量配置 237
SQL Server表配置 238
包配置小结 240
包的部署 241
用于部署的实用程序 242
配置和部署的方法 247
与位置相关的和驻留在计算机上的配置 247
移动的数据库对象 247
配置替换 248
配置连接管理器 249
小结 249
第15章 “脚本任务”的使用 250
脚本任务环境 250
“脚本任务”编辑器 251
“脚本任务”的使用 256
Dts对象 256
建议实践 258
脚本任务示例 262
在SSIS对象模型上工作 262
使用HTTP下载文件 263
把文本文件的内容装入一个变量 264
简单的自定义日志记录 265
异常处理 265
安全消息框 266
小结 267
第16章 源代码管理的使用 268
什么是源代码管理 268
源代码库 269
同步 269
签出/签入 269
对比 269
添加标签 269
分支 269
合并 270
BIDS设计器中的源代码管理 270
设置 270
使用源代码管理程序 273
实践 277
小结 278
第17章 SQL Server Management Studio 279
SQL Server Management Studio综述 279
对象资源管理器 279
查看Windows事件日志 282
连接到Integration Services服务器 282
启动“Integration Services服务器” 282
连接到本地服务器 284
连接到远程SSIS服务器 284
包的管理 284
包的运行 284
已存储的包 285
DTS 2000包的管理 287
服务器缓冲存储 287
使用“SQL Server代理”程序执行包 288
配置Integration Services服务器 290
重新启动服务器 290
服务器配置 291
小结 294
第18章 包的安全保护 296
控制对包的访问 297
包存储在Integration Services服务器 297
存储在SQL Server中 298
标识敏感数据 300
保护包及其他文件 301
包的保护级别 302
保护非包文件 304
与“SQL Server代理”集成 305
设置“代理”(Agent)作业来运行SSIS包 306
代理子系统的路径 310
检测对包的修改 311
安全场景设置 312
三层操作结构 313
小结 314
第五部分 数据流任务 316
第19章 “数据流任务”介绍 316
管道思想101 316
低附加开销转换 317
高性能——没有复制,不开玩笑 317
数据沙箱 317
扩展性 317
数据流术语 317
数据流属性 319
可使用表达式的组件属性 319
存储路径 320
缓冲区大小属性 321
引擎线程 321
RunInOptimizedMode 321
小结 322
第20章 存储区中的“数据流”组件 323
普通组件约定 323
自定义组件编辑器和高级编辑器 323
源适配器 330
DataReader源 330
“OLE DB源”和“OLE DB目标”适配器 337
“原始文件源”和“原始文件目标”适配器 339
“XML源”适配器 339
流控制转换 341
条件性拆分 341
派生列 343
合并 346
合并联接 347
多播 349
Union All 349
“查找”转换 351
“导入列”转换 355
“导出列”转换 358
审核转换 359
“审核”转换 360
“百分比抽样”和“行抽样”转换 361
“行计数”转换 362
数据管理转换 363
“聚合”转换 363
“字符映射表”转换 365
“复制列”转换 367
“数据转换”组件 368
“OLE DB命令”转换 368
“排序”转换 371
目标适配器 372
“DataReader目标”适配器 372
“记录集目标”适配器 372
“SQL Server目标”适配器 374
小结 375
第21章 使用“脚本组件” 376
“脚本组件”介绍 376
“脚本组件”具有高性能的特点 376
建立概念验证模块 377
访问不常见的或者不支持的数据源 377
创建源适配器 377
创建组件 378
创建目标适配器 381
创建组件 383
创建转换 385
创建组件 385
异步输出 388
让脚本输出成为异步输出 388
小结 389
第22章 高级数据流转换 390
渐变维度向导程序和转换 390
典型的渐变维度 391
其他渐变维度类型 392
渐变维度向导 393
生成的数据流 398
“渐变维度”组件如何处理数据行 400
性能方面的考虑 400
数据净化组件 401
模糊查找 402
“模糊分组”转换 405
设置“模糊分组”转换组件 406
文本挖掘和文档仓库组件 409
文本存在的问题 410
“字词提取”转换 411
字词提取转换编辑器 411
“字词查找”转换 412
小结 414
第23章 数据流任务内幕和调整 415
“数据流任务”揭秘 415
基本概念 415
布局子系统 416
缓存 416
缓存子系统 418
运行引擎 419
用于提速的总体设置 423
消除不必要的处理 424
数据流优化 425
插入性能 429
“数据流”优化方法 430
约束理论 430
资源约束的识别和优先级确定 430
确定如何利用约束 434
根据前面的决策对其他部分进行协调和同步 434
提升瓶颈因素的性能 434
如果在上述任何步骤中约束发生了改变,那么回到第一步 435
小结 435
第六部分 Integration Services编程 438
第24章 创建自定义任务 438
自定义运行时组件 438
创建自定义组件的要求 439
决定该编写什么 440
启动SSIS自定义组件项目 441
创建解决方案 442
添加强名称和密钥文件 442
引用SSIS及其他程序集 443
定义类 444
编译和安装 446
运行环境如何找到安装的任务 448
任务的开发和调试 449
让任务具有一个身份 449
添加针对具体功能的属性和函数 450
添加SSIS的专用属性及功能 453
创建任务用户界面 467
创建示例任务的用户界面(简单) 468
创建复杂的任务用户界面(复杂) 472
自定义任务的最佳实践 484
约定和约束 484
任务用户界面 485
通用原则 486
小结 486
第25章 创建自定义数据流组件 487
自定义组件的概念 487
设计时 488
运行时 490
示例组件 491
JPG文件EXIF读取器源适配器 491
数据配置转换 492
SQL客户和ODBC目标适配器 493
示例转换组件的用户界面 493
设计时方法 493
ProvideComponentProperties 494
ReinitializeMetaData 494
Validate 494
运行时方法 495
编写源适配器 496
设置和设计时方法 496
编写目标适配器 506
目标适配器的基本处理方式 506
“ReinitializeMetaData”方法 508
“PreExecute”方法 510
“ProcessInput”方法 514
从输入缓存获取数据 514
编写转换组件 515
小结 519
附录A 错误、警告和信息事件 520
附录B 表达式求值器参考表 618