【TechTarget中国原创】如果你曾经将数据迁入或者迁出过SQL Server,你肯定是用微软的DTS或微软的Data Transformation Services工具完成的。DTS是一种ETL工具(extraction, transforming and loading的缩写),可以让数据库管理员创建数据转换的系列步骤。这些“包”可以通过一写不同的程序语言执行或直接在SQL Server里直接完成。
上面这个想法很好,但还是非常有局限性。如果SQL Server的早期版本使用批量拷贝(bulk-copy)系统的便携版本,那么上面说到的想法还是很好的。有了SQL Server 2005,微软就决定将DTS变成一种新的ETL工具——SQL Server Integration Services (SSIS)。将数据从一个数据库迁入另一个数据库或者将数据库以另一种形式输出就是你能用SSIS完成的事情。以下是使用SSIS其他的一些理由:
数据清除
如果你的数据不是很“整洁”,如:它还没有进行规格化,那SSIS有一整套进行数据清除和规格化的工具。它包括很多功能如“模糊”匹配和分组,所以数据可能是相同的(但是以输入和传递方式不同)。这些相同的数据可以进行筛选和规格化。下面这个例子可以很好地说明这一点:即不同区域的数据有不同的数字形式,也就是说相同的想法可以有不同的表达方式,需要进行规格化。
Analysis Services cube的连通性
你可以用SSIS将数据直接传递到cube进行数据挖掘。你可以不用将数据输入本地数据库,然后再进行数据挖掘,SSIS包本身就可以用作数据源来使用。
SQL Server Reporting Services集成
由于有analysis cube,SSIS包设计就可以通过执行本地操作或通过 .NET语言的COM对象界面,或者用任意一种支持COM对象的语言进完成。
.NET完全支持
可能是假设条件,SSIS程序SSIS包设计就可以通过执行本地操作或通过 .NET语言的COM对象界面,或者用任意一种支持COM对象的语言进完成。
和静态数据相比,最后的结果就是你输入数据的系统一及你创建的这些包能够更像计划对象进行运行。这样用户就能够有计划地整合报告服务、分析服务、数据以及数据库本身。例如,即使在脱机的状况下,存档遗留数据能够继续用于趋势分析或者数据挖掘。另一个例子就是将多个静态组进行数据整合,例如我之前提到的多地域数据。
因为SSIS是可以设计的,在很多情况下我们就可以调用它的功能。例如,一个ASP.NET-driven Web站点可以是前端运行SSIS包的管理,或是我们可以写一个持久的应用程序来连接SSIS并获取、提炼数据。使SQL Server变得可以规划设计这个想法已经有很长的时间,但是SSIS还会影响SQL Server也能用的一些其它工具(以一种统一的方式)。程序员还能够创建自定义SSIS扩展名,如自定义数据转换等。你可以在其他的应用程序或者其他的环境中重新使用它们。
SSIS中的这些包可以用Business Intelligence Design Studio来写,SQL Server 2005就可以实现。结果文档大多数是XML格式的,我们可以进行检查并手动编辑。注意以SSIS中的一些功能(数据挖掘连通性、模糊分组和查找)是在SQL Server 2005的Enterprise Edition中适用。SSIS并不适用所有的SQL Server 2005 Express Edition,如果你创建了SSIS包,那么你只能在SQL Server的full edition中使用这些包。最后,你在创建SSIS中创建解决方案时,要做到在其他环境中也能够完全支持SSIS。