📜  SSIS教程:SQL Server集成服务

📅  最后修改于: 2020-12-02 09:45:47             🧑  作者: Mango

SSIS教程

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

SQL Server集成服务是一种快速灵活的数据仓库工具,用于数据提取,转换和数据加载。这样可以轻松地将数据从一个数据库加载到另一个数据库,例如SQL Server,Oracle,Excel文件等。

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

什么是SSIS?

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

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

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

什么是数据集成?

数据集成是您遵循的从多个来源集成数据的过程。数据可以是异构数据,也可以是同类数据。数据可以是结构化,半结构化或非结构化的。在数据集成中,来自不同数据源的数据被集成以形成一些有意义的数据。

一些方法用于实现数据集成:

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

数据整合的优势:

  • 降低数据复杂性它降低了数据复杂性,这意味着可以将数据传送到任何系统。数据集成保持了复杂性,简化了连接,并易于将数据传递到任何系统。
  • 数据完整性数据完整性在数据集成中起着重要作用。它负责清理和验证数据。每个人都希望获得高质量和健壮的数据,因此要使用此数据集成概念。数据集成有助于消除错误,不一致和重复。
  • 轻松的数据协作可访问性归于数据协作之下。可访问性意味着可以轻松地转换数据,并且人们可以轻松地将数据集成到项目中,共享其结果并保持数据为最新。
  • 更明智的业务决策它还为您提供更明智的决策。集成数据是指公司内部的传输过程,因此我们可以更轻松地了解信息。集成的数据更容易获得信息。

为什么选择SSIS?

使用SSIS的原因如下:

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

SSIS如何工作?

我们知道SSIS是具有两个功能的平台,即数据集成和工作流。数据转换和工作流创建任务均通过使用SSIS包进行。 SSIS程序包包含三个组件:

营运数据

操作数据是一个数据库,用于集成来自多个数据源的数据以对数据执行其他操作。在将数据存储到此处以进行当前操作之前,它是发送到数据仓库进行存储,报告或归档的地方。

ETL

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

ETL是一个由三个词组成的概念,但它分为四个阶段:

捕获:捕获阶段也称为提取阶段。在此阶段,它将选择源数据或元数据,并且数据可以采用任何格式,例如xml文件,平面文件或任何数据库文件。

清理:在此阶段,将检查原始数据。它检查数据,是否包含任何错误。它通过使用一些人工智能技术来检查数据的错误或不一致。简而言之,它验证产品的质量是否达到要求。

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

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

数据仓库

数据仓库是单个,完整且一致的数据存储,是通过组合来自多个数据源的数据来制定的。

数据库和数据仓库之间的区别

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

SQL Server集成服务的要求

以下是安装SQL Server Integration Services的要求:

  • 安装SQL Server
  • 安装SQL Server数据工具

请按照以下步骤安装SQL Server数据工具:

步骤1:单击链接https://docs.microsoft.com/zh-cn/sql/ssdt/previous-releases-of-sql-server-data-tools-ssdt-and-ssdt-bi?view=sql -server-2017下载SQL Server数据工具。

步骤2:当您点击以上链接时,屏幕显示如下:

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

步骤3:下载完成后,运行下载的文件。运行下载的文件时,将显示以下屏幕:

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

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

步骤6:点击“安装”按钮。

什么是SSIS软件包?

该包是您在SSIS中进行编码的基本块。在这里,代码并不意味着您正在使用某种编程语言进行编码。这意味着您所做的发展。开发是在SSIS包中完成的。 SSIS主要用于ETL过程,而ETL过程在SSIS包内部执行。

SSIS软件包包括三个部分:

  • 连接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,标记和性别。

步骤2:打开Visual Studio(SQL Server数据工具)。

步骤3:单击File(文件)选项,然后移至New-> Project。

步骤4:当您点击Project时,将出现以下屏幕:

在上面的屏幕中,单击面板最左侧出现的Integration Services,然后单击Integration Services项目。

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

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

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

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

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

我已将StudentWarehouse作为数据库名称。

步骤9:点击OK(确定)按钮。

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

步骤11:现在,我们将字段添加到表格中,例如:student_id,student_name,标记和性别。我们将student_id设置为唯一标识每一行的主键。

上面的屏幕显示我们在一个表中添加了四个字段。在表中添加所有字段后,我们通过提供一些有用的名称来保存表。假设我提供了该学生作为表格名称。

步骤12:回到视觉工作室。控制流包含数据流任务,将数据流任务拖放到主窗口上。

步骤13:当我们双击Data Flow Task时,控件自动从Control Flow移到Data Flow,因此我们可以说Control Flow是Data Flow的容器。

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

从上面的屏幕中,我们观察到Excel Source内部出现红叉,这表示该组件已配置Excel Source。

步骤15:要配置组件,请右键单击Excel源,然后单击Edit(编辑)选项,如以下屏幕截图所示:

步骤16:填写以下屏幕快照中显示的详细信息:

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

步骤18:点击Excel Souce。

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

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

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

步骤21:在上面的步骤中,我们注意到ADO NET Destination中的红叉,这意味着它没有配置组件。右键单击ADO NET Destination,然后单击Edit选项,如下面的屏幕快照所示:

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

步骤23:点击New(新建)按钮添加连接管理器。当您单击“新建”按钮时,屏幕显示如下:

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

步骤25:点击OK(确定)按钮。

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

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

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

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

执行SQL任务的示例

  • 请执行上一示例的步骤2至步骤5。
  • 将出现在最左侧面板的“执行SQL任务”拖放到主窗口。

在上面的屏幕中,我们观察到在执行SQL任务中出现红叉,这意味着未使用执行SQL任务配置连接管理器。要配置它,我们需要添加连接管理器。

  • 要添加连接管理器,请右键单击连接管理器,然后单击新建连接管理器,如以下屏幕截图所示:

  • 选择OLEDB作为连接管理器类型,然后单击添加按钮,如以下屏幕截图所示:

  • 单击添加按钮后,屏幕出现在以下屏幕截图中:

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

  • 当您单击确定按钮时,屏幕将显示如下:

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

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

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

  • 单击确定按钮。
  • 当您使用Execute SQL Task配置组件时,红叉消失,如下面的屏幕截图所示:

  • 通过单击开始运行项目。

  • 单击“开始”时,将显示如下屏幕:

在上面的屏幕中,刻度线显示您的SQL任务已成功完成。我们在前面的步骤中添加的insert语句已执行,数据已添加到表中。即学生1。

  • 该任务的输出如下所示

先决条件

在学习SSIS之前,您必须具有SQL Server的基本知识。

听众

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

问题

我们保证您在本SSIS教程中不会发现任何问题。但是,如果有任何错误或错误,请在联系表格中张贴错误。