SSIS 提供一系列支持业务应用程序开发的内置任务、容器、转换和数据适配器,方便我们创建解决方案来解决复杂的业务问题,除了可以管理 SQL Server 数据库以及在 SQL Server 实例之间复制 SQL Server 对象,我们还可以对Oracle、MySql、Excel等不同的异构数据源进行抽取和加载。下面我们将简单的说明一下其典型的应用场景。
合并来自异构数据存储区的数据
很多单位数据通常存储在很多个不同的数据存储系统中,很多时候需要从这些源中提取数据并将其合并到单个一致的数据集中。这个过程面临早期系统繁多、数据存储格式复杂多样、合并可能需要复杂多样的预处理等问题。
SSIS可以使用 .NET 和 OLE DB 访问接口连接到关系数据库,还可以使用 ODBC 驱动程序连接到多个早期数据库,还可以连接到平面文件、Excel 文件和 Analysis Services 项目。同时SSIS也包含一些源组件,可以从不同的数据源中提取数据。
SSIS提供的转换功能对数据进行转换。数据转换为兼容格式后,就可以将其物理合并到一个数据集中。
数据在合并成功且应用转换后,SSIS可以将数据加载到平面文件、原始文件和关系数据库。数据也可以加载到内存中的记录集中,供其他包元素访问。
填充数据仓库和数据集市
数据仓库和数据集市中不仅需要抽取的数据量很大而且通常需要频繁更新。
可以用 SSIS 包加载数据库中的维度表和事实数据表。如果维度表的源数据存储在多个数据源中,包可以将该数据合并到一个数据集中,并在单个进程中加载维度表,而不是为每个数据源使用单独的进程。
更新数据仓库和数据集市中的数据可能很复杂,因为这两种类型的数据存储区通常都包含可能难以通过数据转换过程管理的渐变维度。由于能够动态创建用于插入和更新记录、更新相关记录以及向表添加新列的 SQL 语句,因此,渐变维度向导可自动支持渐变维度。
清除数据和将数据标准化
由于众多的数据源使用不同的约定和标准、加载中需要执行不同的业务处理,无论数据是加载到联机事务处理 (OLTP)、联机分析处理 (OLAP) 数据库、Excel 电子表格还是加载到文件,都需要在加载前将数据进行清理和标准化。
SSIS 包含一些内置转换,可将其添加到包中以清理数据和将数据标准化、更改数据的大小写、将数据转换为不同类型或格式或者根据表达式创建新列值。例如,包可将姓列和名列连接成单个全名列,然后将字符更改为大写。
数据转换过程支持复杂商业逻辑处理
数据转换过程需要内置逻辑来动态响应其访问和处理的数据。可能需要根据数据值对数据进行汇总、转换和分发。根据对列值的评估,该过程甚至可能需要拒绝数据。
SSIS 提供了很多相关类型的任务:
- 合并来自多个数据源的数据。
- 计算数据并应用数据转换。
- 根据数据值将一个数据集拆分为多个数据集。
- 将不同的聚合应用到一个数据集的不同子集。
- 将数据的子集加载到不同目标或多个目标。
支持管理功能和数据加载自动化
SSIS提供了相关的组件实现管理的自动化,例如备份和还原数据库、复制 SQL Server 数据库及其包含的对象、复制 SQL Server 对象和加载数据等。同时还可以使用 SQL Server 代理作业来安排 SSIS 包。