SSIS 教程

2025 年 3 月 8 日 | 阅读 13 分钟
SSIS Tutorial

SSIS 教程提供 SQL Server Integration Services 的基本和高级概念。我们的 SSIS 教程专为初学者和专业人士设计。

SQL Server Integration Service 是一个快速灵活的数据仓库工具,用于数据提取、转换和数据加载。它使得将数据从一个数据库加载到另一个数据库(如 SQL Server、Oracle、Excel 文件等)变得容易。

在本教程中,我们将讨论以下主题


什么是 SSIS?

  • SSIS 代表 SQL Server Integration Services。
  • 它是 Microsoft SQL Server 数据库软件中可用于执行各种集成任务的组件。
  • 它是一个数据仓库工具,用于数据提取、将数据加载到另一个数据库、转换(如清理、聚合、合并数据等)。
  • SSIS 工具还包含图形工具和窗口向导工作流功能,例如发送电子邮件、ftp 操作、数据源。
  • SSIS 用于执行各种转换和集成任务。总而言之,SSIS 工具用于数据迁移。

SSIS 是主要用于执行两个功能的一个工具

  • 数据集成
    SSIS 通过合并来自多个源的数据来执行数据集成,并为用户提供统一的数据。
  • 工作流程
    工作流可用于执行多项操作。有时我们需要执行一些特定的步骤或特定的路径,这些路径基于时间段、传递给包的参数或从数据库查询的数据。它可用于自动化 SQL Server 数据库的维护,并为多维分析数据提供更新。

什么是数据集成?

数据集成是您用来集成来自多个源的数据的过程。数据可以是异构数据或同构数据。数据可以是结构化的、半结构化的或非结构化的。在数据集成中,来自不同异构数据源的数据被集成以形成有意义的数据。

实现数据集成的一些方法

What is Data Integration
  • 数据建模:在数据建模中,您需要先创建数据模型并对其进行操作。
  • 数据剖析:数据剖析是一个过程,用于检查可用数据中的错误、不一致或变异。数据剖析可确保数据质量,其中数据质量是指数据的准确性、一致性和完整性。

数据集成的好处

What is Data Integration
  • 降低数据复杂性
    它降低了数据复杂性,这意味着数据可以传递到任何系统。数据集成维护了复杂性、简化的连接,并使数据易于传递到任何系统。
  • 数据完整性
    数据完整性在数据集成中起着重要作用。它处理数据的清理和验证。每个人都希望获得高质量、健壮的数据,因此使用数据集成概念来实现这一点。数据集成有助于消除错误、不一致和重复。
  • 轻松的数据协作
    可访问性属于数据协作。可访问性意味着数据可以轻松转换,并且人们可以轻松地将数据集成到项目中,共享他们的结果,并使数据保持最新。
  • 更明智的业务决策
    它还使您能够做出更明智的决策。集成数据是指公司内部的传输过程,以便我们更容易理解信息。集成数据更加容易且信息丰富。

为什么选择 SSIS?

SSIS 因以下原因而被使用

Why SSIS
  • 数据可以并行加载到许多不同的目标
    SSIS 用于合并来自多个数据源的数据,以生成统一视图中的单个结构。基本上,它负责收集数据,从多个数据源提取数据,并将它们合并到单个数据源中。
  • 无需硬核程序员
    SSSIS 是一个能够从 Excel 加载大量数据到 SQL Server 数据库的平台。
  • 与其他产品的集成
    SSSIS 工具与其他 Microsoft 产品紧密集成。
  • 比其他 ETL 工具便宜
    SSSIS 工具比大多数其他工具便宜。它可以与其他的基本产品、管理、商业智能等保持一致。
  • 数据流中的复杂错误处理
    SSSIS 允许您在数据流中处理复杂的错误。您可以根据错误的严重程度启动和停止数据流。当发生错误时,您甚至可以向管理员发送电子邮件。当错误解决后,您可以选择工作流中的某个路径。

SSIS 如何工作?

我们知道 SSIS 是一个用于两个功能的平台,即数据集成和工作流。数据转换和工作流创建都通过使用 SSIS 包来完成。SSIS 包包含三个组件

How SSIS works

操作数据

操作数据是一个数据库,用于集成来自多个数据源的数据以对数据执行附加操作。它是数据在发送到数据仓库进行存储、报告或归档之前,用于当前操作的数据的存放位置。

ETL

  • ETL 是 SSIS 工具中最重要的过程。ETL 用于将数据提取、转换并加载到数据仓库中。
  • ETL 是一个负责从多个数据源提取数据、将数据转换为有用数据,然后将数据存储到数据仓库的过程。数据可以是任何格式,如 xml 文件、平面文件或任何数据库文件。
  • 它还确保数据仓库中存储的数据与业务用户相关、准确、高质量且有用。
  • 它可以轻松访问,以便数据仓库能够被有效和高效地使用。
  • 它还可以通过从多个数据源检索结构化和非结构化数据来帮助组织做出数据驱动的决策。

ETL 是一个三词概念,但它分为四个阶段

How SSIS works

捕获:捕获阶段也称为提取阶段。在此阶段,它会提取源数据或元数据,数据可以是任何格式,如 xml 文件、平面文件或任何数据库文件。

清理:在此阶段,会检查原始数据。它会检查数据是否存在错误。它使用一些人工智能技术来检查数据中的错误或不一致。简而言之,它验证产品的质量是否达标。

转换:这是 ETL 的第三个阶段。转换是将原始格式转换为您想要的所需格式的过程。转换是根据用户需求对数据进行建模或更改。更改可能是列数或行数的更改。

加载和索引:第四个阶段是加载和索引。它加载数据并验证已处理的行数。数据加载完成后,将使用索引。索引可帮助您跟踪已加载到数据仓库中的行数。索引还有助于识别数据是否格式正确。

数据仓库

数据仓库是数据的一个单一、完整且一致的存储,它通过合并来自多个数据源的数据而形成。

数据库和数据仓库的区别

答案可以是“是”也可以是“否”。数据库和数据仓库都有大量数据和相似的物理表示,但数据仓库中复杂查询的响应时间比数据库快。


SQL Server Integration Services 的要求

安装 SQL Server Integration Services 的要求如下

  • 安装 SQL Server
  • 安装 SQL Server Data Tools

请按照以下步骤安装 SQL Server Data Tools

步骤 1:单击链接 https://docs.microsoft.com/en-us/sql/ssdt/previous-releases-of-sql-server-data-tools-ssdt-and-ssdt-bi?view=sql-server-2017 下载 SQL Server Data Tools。

步骤 2:单击上述链接后,将显示如下屏幕

Requirements for SQL Server Integration Services

在上面的屏幕中,选择您要安装的 SSDT 版本。

步骤 3:下载完成后,运行下载的文件。运行下载的文件后,将出现如下屏幕

Requirements for SQL Server Integration Services

步骤 4:单击“下一步”按钮。

步骤 5:选择您要在 Visual Studio 2017 中安装的 Visual Studio 实例和工具。

Requirements for SQL Server Integration Services

步骤 6:单击安装按钮。


什么是 SSIS 包?

包是您在 SSIS 中编写代码的基础块。这里的代码不意味着您正在使用某种编程语言编写代码;它指的是您进行的开发。开发是在 SSIS 包中完成的。SSIS 主要用于 ETL 过程,ETL 过程在 SSIS 包内执行。

SSIS 包由三部分组成

What is The SSIS Package
  • 连接
    SSIS 包会包含一些连接,这些连接用于连接到各种数据源。
  • 控制流元素
    SSIS 包由两个元素组成,即控制流元素和数据流元素。控制流元素处理工作流。工作流意味着我们按步骤执行某些任务,因此顺序是通过控制流完成的。
  • 数据流元素
    数据流元素执行转换。

SSIS 任务

在 SSIS 包中,我们可以添加任务。任务是一个工作单元,我们将有不同类型的任务来执行不同类型的工作。有各种类型的任务,但我们将讨论 SSIS 中最常用的任务

  • 执行 SQL 任务
    它用于对关系数据库执行 SQL 语句。
  • 数据流任务
    它主要用于从一个或多个数据源读取数据,转换数据,也可以将数据加载到一个或多个目标。
  • Analysis Services 处理任务
    它用于处理 SSAS 多维数据集或表格模型的对象。
  • 执行包任务
    此任务用于调用同一项目中的其他包。您甚至可以将变量值传递给调用的包。
  • 执行进程任务
    它允许您将应用程序或批处理脚本作为 SQL Server Integration Services 运行。它可用于打开标准应用程序,如 Microsoft Excel、Microsoft Word 等。它还用于解压压缩文件。
  • 文件系统任务
    它可用于执行文件系统的操作,如移动文件、删除文件、重命名文件、更改目录等。
  • FTP 任务
    IFTP 任务用于对文件和文件夹执行操作。例如,如果您想将文件从 FTP 服务器发送或接收到本地目录,则可以使用 SSIS FTP 任务。
  • 脚本任务
    此任务允许您编写您想要执行的 .Net 代码。
  • 发送邮件任务
    此任务用于发送电子邮件。当您想通知用户任务的状态(例如,它是否正在运行或发生了错误)时,它主要用于此目的。

让我们看一些数据集成服务的实际示例。


数据流任务示例

步骤 1:首先,我们在 Microsoft Excel 中创建一个 Excel 文件。假设我在 Microsoft Excel 中创建了学生数据库,学生表中的字段是 student_id、student_name、marks 和 gender。

SSIS Tasks

步骤 2:打开 Visual Studio(SQL Server Data Tools)。

SSIS Tasks

步骤 3:单击“文件”选项,然后选择“新建”->“项目”。

SSIS Tasks

步骤 4:单击“项目”后,将显示如下屏幕

SSIS Tasks

在上面的屏幕中,单击面板最左侧的“Integration Services”,然后单击“Integration Services Project”。

步骤 5:单击“Integration Services Project”选项后,将显示如下屏幕

SSIS Tasks

上面的屏幕包含五个选项卡,如控制流、数据流、参数、事件处理程序和包资源管理器。我们已经讨论了控制流和数据流,控制流和数据流都存在于 SSIS 包中。

步骤 6:为了导入数据,我们首先需要创建一个数据库,并在其中创建表。我们知道学生数据在 Excel 文件中,并且我们想将数据导入 SQL Server 数据库。为了实现这一点,我们首先需要创建 SQL Server 中的表。打开 SQL Server Management Studio。

步骤 7:创建 **student** 数据库。右键单击数据库,然后单击“新建数据库”选项。

SSIS Tasks

步骤 8:在下面的屏幕截图中输入数据库名称

SSIS Tasks

我将数据库名称命名为 StudentWarehouse。

步骤 9:单击确定按钮。

步骤 10:现在,我们在 **StudentWarehouse** 数据库中创建表。右键单击“表”,然后单击“新建表”。

SSIS Tasks

步骤 11:现在我们在表中添加字段,如 student_id、student_name、marks 和 gender。我们将 student_id 设置为主键,它唯一标识每一行。

SSIS Tasks

上面的屏幕显示我们在表中添加了四个字段。添加完表中的所有字段后,我们通过提供有用的名称来保存表。假设我将 student 命名为表名。

步骤 12:返回 Visual Studio。控制流包含数据流任务,将数据流任务拖放到主窗口上。

SSIS Tasks

步骤 13:双击数据流任务时,控件会自动从控制流移动到数据流,所以我们可以说控制流是数据流的容器。

步骤 14:现在,我们可以在数据流中执行转换。我们要从之前创建的 Excel 文件中提取数据,所以从面板最左侧出现的其他源中拖放 Excel 源。

SSIS Tasks

从上面的屏幕,我们观察到 Excel 源内部出现了一个红色的叉号,这意味着该组件已配置为 Excel 源。

步骤 15:要配置组件,请右键单击 Excel 源并单击“编辑”选项,如下图所示

SSIS Tasks

步骤 16:填写如下屏幕所示的详细信息

SSIS Tasks

步骤 17:输入所有详细信息后,将显示如下屏幕

SSIS Tasks

步骤 18:单击 Excel 源。

SSIS Tasks

上面的屏幕显示了两个箭头,红色和蓝色箭头。蓝箭头定义了我们从 Excel 文件接收的实际数据,红箭头表示我们拥有的错误。现在我们需要执行转换,在执行转换之前,我们需要加载数据库。

步骤 19:要加载数据库,请单击“其他目标”,然后单击“目标”。

SSIS Tasks

步骤 20:添加目标后,将源连接到目标。

SSIS Tasks

步骤 21:在上一步中,我们注意到 ADO NET 目标中有一个红色的叉号,这意味着它尚未配置组件。右键单击 ADO NET 目标,然后单击“编辑”选项,如下图所示

SSIS Tasks

步骤 22:您需要指定配置管理器。

SSIS Tasks

步骤 23:单击“新建”按钮添加连接管理器。单击“新建”按钮后,将出现如下屏幕

SSIS Tasks

步骤 24:添加服务器名称并从 SQL Server 中选择数据库名称。

SSIS Tasks

步骤 25:单击确定按钮。

步骤 26:添加要加载数据的表名。

SSIS Tasks

步骤 27:在下面的屏幕中,将输入源的字段映射到目标源的字段。

SSIS Tasks

步骤 28:添加映射后,源将连接到目标,如下图所示

SSIS Tasks

步骤 29:单击开始按钮运行 Integration Services Project。运行项目时,数据将加载到目标,即 **SQL Server**。


执行 SQL 任务示例

  • 请按照上一个示例的步骤 2 到步骤 5 进行操作。
  • 将最左侧面板中出现的 **Execute SQL Task** 拖放到主窗口。
SSIS Tasks

在上面的屏幕中,我们观察到 Execute SQL Task 中出现了一个红色的叉号,这意味着 **Connection Manager** 未与 **Execute SQL Task** 配置。要配置它,我们需要添加连接管理器。

  • 要添加连接管理器,请右键单击连接管理器,然后单击“新建连接管理器”,如下图所示
SSIS Tasks
  • 选择 **OLEDB** 作为连接管理器类型,然后单击添加按钮,如下图所示
SSIS Tasks
  • 单击添加按钮后,将出现如下屏幕
SSIS Tasks

在上面的屏幕中,我们观察到 **StudentWarehouse** 数据库的数据连接已可用,因为我们在上一步中已创建。单击确定按钮。

  • 单击 OK 按钮后,将出现如下屏幕
SSIS Tasks

在上面的屏幕中,您需要输入详细信息,例如任务名称、描述、SQL 语句(您需要在表上执行的 SQL 任务)。

  • 我在上面的屏幕截图中输入了以下详细信息
SSIS Tasks

在上面的情况下,我在 SQLStatement 中提供了 insert 命令。

  • 单击“确定”按钮。
  • 当您配置组件与 Execute SQL Task 一起使用时,红色的叉号会消失,如下图所示
SSIS Tasks
  • 通过单击开始来运行项目。
SSIS Tasks
  • 单击开始后,将出现如下屏幕
SSIS Tasks

在上面的屏幕中,勾号表示您的 SQL 任务已成功完成。我们之前输入的 insert 语句已执行,数据已添加到表中,即 student1。

  • 此任务的输出显示如下
SSIS Tasks

前提条件

在学习 SSIS 之前,您必须对 SQL Server 有基本的了解。

目标受众

我们的 SSIS 教程旨在帮助初学者和专业人士。

问题

我们保证您不会在本 SSIS 教程中遇到任何问题。但是,如果存在任何错误或疏漏,请在联系表格中发布错误。


下一主题#