SQL Server Integration Services (SSIS) 是一个功能强大的 ETL 工具。虽然它是最强大的工具,但您可以在 28 天(最多)内快速学会 SSIS 教程。请记住,它是用于执行提取、转换和加载(ETL 过程)操作的第二大工具。
SSIS ETL 工具从不同来源提取数据,并根据用户要求转换数据。然后将数据加载到各种目标。此 SSIS 页面涵盖了连接管理器、数据源、转换、控制流和数据流任务的所有主题。
什么是 SSIS?
首先,SSIS ETL 工具可帮助构建企业级数据转换和数据集成解决方案。它在将常规事务性数据加载到数据仓库中非常有用。因此,您可以借助 SSRS、Tableau 等工具,使用转换后的数据创建报告。
除了数据仓库应用,您还可以使用 SQL Server Integration Services 来处理典型的数据集成应用。在学习 SSIS 教程之前,我建议先学习 SQL Server 的基础知识,至少是 SELECT 语句。
SSIS 是 SQL Server Integration Services 的缩写,是微软的一款 ETL 产品。它执行三个操作,为了便于理解,我将以沃尔玛为例。沃尔玛在世界各地有多家商店,所有商店的数据都汇集到美国(数据可能因当地市场而异)。
- 步骤 1:提取 (Extract):从多个来源获取数据,例如 EXCEL、TEXT、CSV、SQL、ORACLE 数据库等。
- 步骤 2:转换 (Transformation):它有助于将提取的数据转换为有意义或所需的格式。例如,对销售数据进行排序和计算利润、求和、平均值等。
- 步骤 3:加载 (Load):一旦数据转换成所需格式,就将数据加载到目标表中。目标可以是 EXCEL、TEXT、CSV、SQL、ORACLE 数据库等。
SSIS 用于做什么?
要使用 SSIS 包,您需要一个开发环境和一个管理工作室 (Management Studio)。Microsoft SQL Server 提供了两种开发包的选项,第一种是使用 BIDS 或 SSDT。第二种选项是导入和导出向导。
您可以使用第二种选项执行基本的数据加载,因为它不需要不同的环境。因此,它使用向导来选择所有的源、转换和目标。
请记住,您还需要另一个工具,叫做 SQL Management Studio。它有助于在生产环境中监控和管理已开发的包。SSIS 集成服务包括以下内容:
- 一个图形用户界面,用于开发包而无需编写任何代码。
- 它有许多转换和控制流任务,用于清理或转换数据。
- 它有一个目录数据库,我们在开始时进行配置,以便从 SSMS 部署、运行和管理包。SSIS 集成服务依赖 SQL Server 代理来调度操作。
SSIS 教程简介
Microsoft SQL Server Integration Services 包含许多内置的任务和转换。使用它们来构建高性能的数据集成包,以解决复杂的业务问题。可以使用本 SSIS 教程来更新仓库、进行数据挖掘、下载或复制文件。此外,还可以从 XML 提取数据并传输到 SQL 等。
要开发或创建一个集成包,您需要 Data Tools 或 BIDS。因此,我建议您安装 SQL Server Data Tools、Visual Studio 或 Business Intelligence Development Studio (BIDS) 来练习本 SSIS 教程。
SSIS 数据流任务教程
SSIS SQL Server Integration Services 数据流组件有三种类型:源、转换和目标。每个数据流组件都有一个输出。使用该结果连接其他成员。例如,将源输出连接到转换,然后将转换输出连接到目标。
在使用关于数据流组件的 SSIS 教程时,您必须始终检查列映射。这是您可能会遇到错误的地方。我是指错误的列映射或没有列映射等。
注意:我建议您下载 Adventure Works 和 Adventure Works DW 数据库来练习这些 SSIS 示例。因为我们在整个部分都使用这两个数据库。请参阅 SQL Server 中的安装 Adventure Work 和 SELECT 语句。
SSIS 连接管理器教程
这个 SQL SSIS 从不同的源提取数据,进行转换,并加载到一个完全不同的目标。首先,我们需要一个连接管理器来建立包与源以及包与目标之间的连接。
此外,连接管理器包含在运行时创建或建立连接所需的物理连接字符串属性。在 SSIS Integration Services 中,有两种类型的连接管理器。它们是包级别(在第 5 个窗口中设计)和项目级别(在解决方案资源管理器窗口中创建)。
项目级别的连接管理器在该项目中的所有包之间共享。它在项目部署时可用。本节介绍如何在此 SQL SSIS 与不同数据源之间建立连接。
在头两天内学习所有关于 SSIS 连接管理器的知识。通常,完成这个主题需要一天时间。这些链接中的大多数步骤都是相同的。我认为最多只有 2 到 3 个步骤可能有所不同。
SSIS 数据源教程
接下来的两天,专注于学习关于 SSIS 数据源与目标的教程。正如我之前所说,如果您了解连接管理器,那么您对数据源和目标也就没问题了。
以下教程列出了在 SSIS 包开发中常用的数据源。
SSIS 目标
SQL Server Integration Services 包的主要目的是将数据从各种源传输到目标。这意味着您需要一个源来获取数据,以及一个目标来加载数据。
- 从数据库导出数据到 Excel 文件
- 从数据库导出数据到平面文件
- 导出 SQL 表数据到冒号分隔的文本文件
- 导出 SQL 数据到固定宽度的平面文件
- 导出数据到带行分隔符的固定宽度文件
- 导出表数据到管道符分隔的文本文件
- 导出 SQL 数据到右对齐固定宽度文件
- 导出表数据到分号分隔的文本文件
- 导出表数据到制表符分隔的文本文件
- 导出表数据到带文本限定符的平面文件
- 从管道符分隔文件加载数据到 SQL Server
- 从制表符分隔文件加载数据到 SQL Server
- 将平面文件中的空格作为 SQL Server 中的 Null 加载
- 加载固定宽度平面文件数据到 SQL Server
- 加载带行分隔符的固定宽度文件到 SQL
- 加载右对齐固定宽度文件到 SQL
- 加载多个平面文件到 SQL
SSIS 转换教程
SQL SSIS Integration Service 的核心是源、转换和目标。您需要连接管理器来连接源(如 SQL Server 数据库、CSV 等)和目标。因此,如果您了解连接管理器,就不必担心源和目标了。
接下来的十天将全部用于学习转换。我不认为您需要 10 天才能完成转换的学习。在所有 SSIS 教程示例中,我们都结合源和目标解释了每种转换。但是,您可以跳过这些步骤。
转换可以修改或清理 SQL Server 数据库数据,执行数据转换,执行数据聚合等。以下部分显示了可用的转换列表。请点击链接查看每种 SQL Server Integration Services 转换的定义和实际示例。
SSIS 转换列表
- 转换列表
- 审核转换
- 聚合转换基本模式
- 聚合高级模式 – 配置多个输出
- 缓存转换
- 字符映射转换
- 条件拆分转换
- 复制列转换
- 数据转换转换
- 派生列转换
- 导出列转换
- 模糊分组
- 模糊查找
- 导入列
- 查找简介
- 合并转换
- 合并联接转换
- 多播转换
- OLE DB 命令转换
- 百分比抽样
- 2008R2 中的数据透视转换
- 2014 中的数据透视转换
- 行计数
- 行抽样
- 脚本组件作为源
- 使用脚本组件作为转换
- 脚本组件作为目标
- 缓慢变化维度
- 排序转换
- 术语查找转换
- 术语提取:本页涵盖了仅提取名词、仅提取名词短语、提取名词和名词短语以及排除选项卡的过程。
- 联合所有
- 逆透视
到本 SSIS 教程的第 15 天,您应该已经学会了连接管理器、源、目标和转换。同样地,从第 15 天到第 20 天,学习容器和控制流任务。
SSIS 控制流任务教程
每个 Integration Services 包都包含一个控制流选项卡。您可以选择在此控制流选项卡中使用 SSIS 控制流任务,以及一个或多个数据流任务。或许,您可以使用控制流任务和数据流任务的组合。
我们在这里设计完整的数据流。此外,我们也是在这里执行所有 SSIS 转换。
SSIS 容器教程
SSIS 的这一部分涵盖了此 ETL 工具中可用的容器。以下容器提供了包的结构或循环功能。
SSIS 控制流任务教程
SSIS 的这一部分详细解释了控制流任务。它包括文件系统任务、FTP 操作、执行包、执行进程、发送邮件任务等。
- 大容量插入任务
- 数据分析任务
- 执行 T-SQL 语句任务
- 执行 SQL 任务:在结果部分,我们涵盖了三个可用选项,例如截断表 – 结果集无、单行结果集和完整结果集。
- 执行包任务:它涵盖了调用或执行本地文件系统中的包、执行 SQL Server 中的包以及执行同一项目中的包的过程。
- 文件系统任务:它包括所有操作,例如复制目录、复制文件、删除目录内容、移动目录、删除目录、移动单个文件、移动多个文件、删除文件、重命名文件和设置属性。
- FTP 任务:它涵盖了所有操作,包括发送文件、发送多个文件、接收文件、接收多个文件、删除本地文件、创建远程目录、删除远程目录、创建本地目录、删除本地目录和删除远程文件。
- 脚本任务用于发送电子邮件。
- 传输 SQL Server 对象任务:它涵盖了所有关键功能,例如传输带数据的 SQL Server 表、传输不带数据的表结构、传输存储过程、传输用户定义函数和传输视图。
- Web 服务任务
- XML 任务用于验证 XML 文件、使用 XSLT 转换 XML 文件以及查找 XML 文件之间的差异。
SSIS 部署教程
在构建或开发 SQL Server 集成包之后,下一步是将其部署到生产环境中。花最后两天时间学习 SSIS 目录和部署方法。
部署 SQL SSIS Integration Services 项目时,我们应该决定包的执行时间以及执行该操作的授权用户。部署包的方式有多种。可以从使用 BIDS/SQL 数据工具、导入和导出数据向导以及 Management Studio 开始。
因此,您可以使用这些选项中的任何一个将包部署到服务器。此 SSIS 目录部分涵盖了对生产环境有益的基本主题。
SQL SSIS 导入和导出数据向导教程
如果您想快速地从源移动或加载数据到目标,您可以使用导入和导出向导。您可以使用向导执行以下导入和导出操作。此向导可能是 SSIS 包开发的起点。
SSIS 面试问题
以下是一些 SSIS 教程面试问题列表,除了常规的转换问题外,您可能还会遇到这些问题。
什么是 SSIS 包工作环境?
它是一种商业智能工具,为各种组织提供数据转换解决方案。下面的截图显示了 SSIS 工作环境以及如何使用它来创建和学习 SQL Server Integration Services 项目。

从上面的 SSIS 教程截图中,我们将窗口分成了不同的部分
- 解决方案资源管理器 (Solution Explorer):它是项目级连接管理器、实际包和项目参数的组合。
- 属性 (Properties):使用此窗口更改每个任务的属性。
- 工具箱 (Toolbox):SSIS 提供了大量内置的任务、容器、转换、源、目标和管理任务,以解决复杂的业务问题。通过将这些任务拖放到工作环境中来使用这些图形工具。这意味着我们执行大多数操作都不需要编写一行代码。
- 信息 (Information):显示有关 SSIS 工具箱项的信息,本教程涵盖了所有这些项。
- 连接管理器 (Connection Managers):使用此窗口创建包级连接管理器。
- 包设计器窗口。
什么是项目开发模型?
SSIS 项目结合了连接管理器、包和项目参数(可选)。此外,SQL Server Integration Services 是一个 ETL(提取、转换和加载)工具。这意味着您可以按照本 SSIS 教程从各种来源(如 Excel 文件、平面文件、XML 文件和关系数据库)提取数据。然后,根据您的要求转换(切片和切块)数据,并将数据加载到目标中。
SSIS 的优势
您还可以将 SSIS 包部署到云平台 Azure。此外,您还可以安排将包部署到 Azure 的时间。
要添加一个额外的 SSIS 包,我们必须部署整个项目,但这在 Integration Services 教程中并非如此。相反,它允许您向现有项目添加一个或多个包,这称为增量包部署。
您可以将 SSIS Integration Services 的访问权限限制给特定用户。因此,管理员必须运行 DCOM 配置工具来授予权限。
SSIS 目录数据库有一个选项可以添加 Always On 可用性组选项。因此,每当发生数据库故障转移时,其中一个辅助节点会自动成为主节点。
SSIS 支持 Always Encrypted 功能。因此,它允许您将数据加载到加密的数据库列中。
通过将错误数据重定向到错误输出,您可以看到哪些列正在抛出错误,找到错误数据,并有效地诊断问题。
重要的 SSIS 组件
虽然 SSIS Integration Services 中有许多内置组件,但在某些情况下,我们需要一个自定义任务来执行一些以业务为中心的操作。有两个最强大的 SSIS 组件可以满足这一需求:脚本任务和脚本组件。
- 如果您想要自定义控制流任务,请使用 SSIS 脚本任务以及我们在本教程中提到的 C# 或 VB,并编写您自己的函数。
- 将脚本组件用作自定义数据流任务的源、目标或转换。
您还可以在不打开界面的情况下创建、运行和部署 SSIS 包。例如,使用 .Net 应用程序,您可以创建一个包。接下来,执行一些操作,并将它们部署到目录中。
SSIS 的缺点
为了配置 SSIS 事件日志记录,您必须编辑注册表项,我们在本教程中对此进行了介绍。
升级 SQL Server 实例不会自动将包升级到当前版本。您必须手动进行操作。对于 SSIS 脚本组件,您必须手动更新成员引用的程序集版本。
评论已关闭。