SSIS 教程:初学者指南:什么是 SSIS、架构、包
什么是SSIS?
SQL Server Integration Service (SSIS) 是 Microsoft SQL Server 数据库软件的一个组件,可用于执行各种数据迁移任务。SSIS 是一个快速且灵活的数据仓库工具,用于数据提取、加载和转换,例如数据清理、聚合、合并等。
它使数据从一个数据库轻松移动到另一个数据库。SSIS 可以从多种数据源提取数据,例如 SQL Server 数据库、Excel 文件、Oracle 和 DB2 数据库等。
SSIS 还包括用于执行工作流功能的图形工具和向导,例如发送电子邮件、FTP 操作、数据源和目标。
为什么我们使用SSIS?
以下是使用SSIS工具的关键原因
- SSIS 工具可帮助您合并来自各种数据存储的数据
- 自动化管理功能和数据加载
- 填充数据市场和数据仓库
- 帮助您清理和标准化数据
- 将 BI 构建到数据转换流程中
- 自动化管理功能和数据加载
- SIS 包含一个图形用户界面,可以帮助用户轻松地转换数据,而无需编写大型程序
- 它可以在几分钟内将数百万行数据从一个数据源加载到另一个数据源
- 识别、捕获和处理数据更改
- 协调数据维护、处理或分析
- SSIS 消除了对硬核程序员的需求
- SSIS 提供强大的错误和事件处理
SSIS 历史
在 SSIS 之前,使用了 SQL Server 的数据转换服务 (DTS),它是 SQL Server 7 和 2000 的一部分
版本 | 详情 |
---|---|
SQL Server 2005 | 微软团队决定彻底改造 DTS。然而,他们决定不更新 DTS,而是将该产品命名为 Integration Services (SSIS)。 |
2008 SQL Server 版本 | SSIS 的性能得到了大量改进。还引入了新的数据源。 |
SQL Server 2012 | 这是 SSIS 最大的版本。在此版本中,引入了项目部署模型。它允许将整个项目及其包部署到服务器,而不是特定的包。 |
SQL Server 2014 | 在此版本中,SSIS 的改动不大。但通过 CodePlex 或 SQL Server Feature Pack 单独下载添加了新的数据源或转换。 |
在 SQL Server 2016 中 | 该版本允许您部署整个项目,而不是单个包。增加了数据源,特别是云和大数据源,并且对目录进行了一些更改。 |
SSIS 主要特点
以下是一些重要的 SSIS 基本功能
- 开发环境
- 相关数据集成功能
- 有效的实施速度
- 与其他 Microsoft SQL 系列的紧密集成
- 数据挖掘查询转换
- 模糊查找和分组转换
- 术语提取和术语查找转换
- 更高速度的数据连接组件,例如连接 SAP 或 Oracle
SSIS 架构
SSIS 架构的组件如下
- 控制流(存储容器和任务)
- 数据流(源、目标、转换)
- 事件处理程序(发送消息、电子邮件)
- 包资源管理器(提供包内所有内容的单一视图)
- 参数(用户交互)
让我们详细了解每个组件
1. 控制流
控制流是 SSIS 包的大脑。它帮助您安排所有组件的执行顺序。组件包含由约束条件管理的容器和任务。
2. 约束条件
约束条件是包组件,它指示任务按预定义的顺序执行。它还定义了整个 SSIS 包的工作流。它通过根据前一个任务的结果执行目标任务来控制两个链接任务的执行 — 业务规则使用特殊表达式定义。
3. 任务
“任务”是工作的一个独立单元。它与编程语言中的方法/函数相同。但是,在 SSIS 中,您不使用编码方法。相反,您将使用拖放技术来设计表面并进行配置。
4. 容器
容器是用于将任务分组为工作单元的单元。除了提供视觉一致性外,它还允许您声明应该在特定容器作用域内的变量和事件处理程序。
SSIS 中有四种类型的容器
- 顺序容器
- For 循环容器
- Foreach 循环容器
顺序容器:允许您通过分组来组织辅助任务,并允许您将事务应用于容器或为容器分配日志记录。
For 循环容器:提供与顺序容器相同的功能,除了它还允许您多次运行任务。但是,它是基于评估条件,例如从 1 循环到 100。
Foreach 循环容器:它也允许循环。但区别在于,它不使用条件表达式,而是遍历一组对象进行循环,例如文件夹中的文件。
5. 数据流
SSIS 工具的主要用途是将数据提取到服务器内存中,对其进行转换,然后将其写入另一个目标。如果控制流是大脑,那么数据流就是 SSIS 的心脏
6. SSIS 包
SSIS 的另一个核心组件是包的概念。它是一系列按顺序执行的任务。在这里,约束条件有助于管理任务的执行顺序。
包可以帮助您将文件保存在 SQL Server、msdb 或包目录数据库中。它可以保存为 .dtsx 文件,这是一个结构化文件,与 Reporting Services 的 .rdl 文件非常相似。
7. 参数
参数的行为非常像变量,但有几个主要例外。它可以很容易地在包外部设置。它可以被指定为包启动必须传入的值。
SSIS 任务类型
在 SSIS 工具中,您可以将任务添加到控制流。有不同类型的任务可以执行各种工作。
以下是一些重要的 SSIS 任务
任务名称 | 描述 |
---|---|
执行 SQL 任务 | 顾名思义,它将针对关系数据库执行 SQL 语句。 |
数据流任务 | 此任务可以从一个或多个源读取数据。在内存中转换数据,然后将其写入一个或多个目标。 |
Analysis Services 处理任务 | 使用此任务处理表格模型或 SSAS 多维数据集的对象。 |
执行包任务 | 您可以使用此 SSIS 任务从同一项目内的其他包执行。 |
执行进程任务 | 借助此任务,您可以指定命令行参数。 |
文件系统任务 | 它执行文件系统的操作。例如移动、重命名、删除文件和创建目录。 |
FTP 任务 | 它允许您执行基本的 FTP 功能。 |
脚本任务 | 这是一个空白任务。您可以编写任何您想执行的 .NET 代码。 |
发送邮件任务 | 您可以发送电子邮件通知用户您的包已完成,或发生了一些错误。 |
批量插入任务 | 您可以使用批量插入命令将数据加载到表中。 |
脚本任务 | 在 Visual Studio 环境中运行一组 VB.NET 或 C# 代码。 |
Web 服务任务 | 它执行 Web 服务上的一个方法。 |
WMI 事件监视器任务 | 此任务允许 SSIS 包等待并响应特定的 WMI 事件。 |
XML 任务 | 此任务有助于您合并、拆分或重新格式化任何 XML 文件。 |
其他重要的 ETL 工具
- SAP Data Services
- SAS 数据管理
- Oracle Warehouse Builder (OWB)
- PowerCenter Informatica
- IBM Infosphere Information Server
- Elixir Repertoire for Data ETL
- Sargent Data Flow
使用SSIS的优点和缺点
SSIS 工具提供了以下优点
- 广泛的文档和支持
- 易于快速实施
- 与 SQL Server 和 Visual Studio 紧密集成
- 标准化数据集成
- 提供实时、基于消息的功能
- 支持分发模型
- 通过 SSIS 将数据插入 SQL 时,帮助您消除网络瓶颈
- SISS 允许您使用 SQL Server 目标而不是 OLE DB 来更快地加载数据
SSIS 的缺点
使用 SSIS 工具的一些缺点如下
- 有时会在非 Windows 环境中造成问题
- 不明确的愿景和战略
- SSIS 缺乏对替代数据集成风格的支持
- 与其他产品的集成问题
SSIS 最佳实践示例
- SSIS 是一个内存管道。因此,确保所有转换都在内存中发生很重要
- 尽量减少记录的操作
- 通过了解资源利用率来规划容量
- 优化 SQL 查找转换、数据源和目标
- 正确安排和分发
摘要
- SSIS 的全称是 SQL Server Integration Services
- SSIS 工具可帮助您合并来自各种数据存储的数据
- SQL Server Integration Service 的重要版本包括 2005、2008、2012、2014 和 2016
- 开发环境、相关数据集成功能和有效的实施速度是一些 SSIS 的重要功能
- 控制流、数据流、事件处理程序、包资源管理器和参数是 essential SSIS 架构组件
- 执行 SQL 任务、数据流任务、Analysis Services 处理任务、执行包任务、执行进程任务、文件系统任务、FTP 任务、发送邮件任务、Web 服务任务是一些重要任务
- 广泛的文档和支持
- SSIS 最大的缺点是缺乏对替代数据集成风格的支持
- SAP Data Services, SAS Data Management, Oracle Warehouse Builder (OWB), PowerCenter Informatica, IBM Infosphere Information Server
- SSIS 是一个内存管道。因此,确保所有转换都在内存中发生至关重要