SSIS入门教程: Archi结构、封装和组件

⚡ 智能摘要

SQL Server Integration Services (SSIS) 是以下组件: Microsoft SQL Server 用于构建数据集成和工作流解决方案,执行 extrac数据处理、转换和加载 (ETL),用于在不同的来源和目标之间移动和清理数据。

  • 🔄 ETL引擎: SSIS 示例tracts 数据来自 SQL Server、Excel 等来源, Oracle然后,DB2 会对其进行转换并加载到目标位置。
  • 🧠 控制流: 控制流是软件包的大脑,它通过优先级约束对容器和任务进行排序。
  • ❤️ 数据流: 数据流是 SSIS 的核心,它在内存中将行数据在源、转换和目标之间移动。
  • 📦 包: 程序包将按顺序运行的任务分组,并以 .dtsx 文件的形式保存到 SQL Server 或文件系统中。
  • 🧩 任务: 预置任务包括执行 SQL、数据流、文件系统、FTP 和发送。 Mail 通过拖放进行配置。
  • 优点: SSIS 可自动加载数据、清理和标准化数据,并提供强大的错误和事件处理功能。

SQL Server Integration Services (SSIS):架构、包、任务和 ETL 工作流

什么是 SSIS?

SQL Server Integration Services (SSIS) 是 SQL Server 的一个组件 Microsoft SQL Server SSIS 是一款数据库软件,可用于执行各种数据迁移任务。它快速且灵活。 数据仓库 用于数据提取的工具trac数据处理、加载和转换,例如数据清洗、聚合和合并。

它可以轻松地将数据从一个数据库迁移到另一个数据库。SSIS 可以……tract 数据来自各种来源,例如 SQL Server 数据库、Excel 文件等。 Oracle 以及 DB2 数据库等等。

SSIS 还包含图形工具和向导,用于执行工作流功能,例如发送电子邮件、FTP 操作以及配置数据源和目标。

我们为什么使用 SSIS?

以下是使用 SSIS 工具的主要原因:

  • SSIS 可以帮助您合并来自各种数据存储的数据。
  • 它可自动执行管理功能和数据加载。
  • 它用于填充数据集市和数据仓库。
  • 它可以帮助您清理和规范数据。
  • 它将商业智能融入到数据转换过程中。
  • SSIS 包含一个图形用户界面,可以帮助用户轻松转换数据,而无需编写大型程序。
  • 它可以短短几分钟内将数百万行数据从一个数据源加载到另一个数据源。
  • 它能够识别、捕获和处理数据变更。
  • 它负责协调数据维护、处理和分析。
  • SSIS 无需专业程序员即可使用。
  • SSIS 提供强大的错误和事件处理功能。

SSIS 的历史

在 SSIS 出现之前,使用的是 SQL Server 数据转换服务 (DTS),它是 SQL Server 7 和 2000 的一部分。下表列出了 DTS 的相关内容。 trac每次 SQL Server 版本发布都对该工具产生了影响:

版本 Detail
SQL Server的2005的 此 Microsoft 团队决定对DTS进行改造。然而,他们并没有更新DTS,而是决定将产品命名为集成服务(SSIS)。
SQL Server的2008的 SSIS 的性能得到了很大的提升。还引入了新的数据源。
SQL Server的2012的 这是 SSIS 迄今为止最大的版本更新。该版本引入了项目部署模型,允许将整个项目及其包部署到服务器,而无需单独部署特定的包。
SQL Server的2014的 在这个版本中,SSIS 本身并没有做太多改动。但是,通过单独的下载,添加了一些新的数据源和转换。 CodePlex 或 SQL Server 功能包。
SQL Server的2016的 新增了增量包部署功能,因此可以将单个包推送到现有项目。SSISDB 目录新增了对 Always On 可用性组的支持、自定义日志级别和错误列名称。此外,还引入了其他云和大数据源。 Azure 功能包。
SQL Server的2017的 引入了横向扩展(Scale Out)功能,可以将包的执行分散到由单个主节点管理的多台工作节点上。SSIS 也首次可以在 Linux 上运行,并且包可以部署到 SSISDB。 Azure SQL 数据库并在其上执行 Azure-SSIS 集成运行时 Azure 数据工厂。
SQL Server的2019的 此次更新悄然上线,重点在于云文件处理。灵活的文件任务和灵活的文件源/目标位置功能,让文件处理变得更加轻松。 Azure 存储格式,包括 Avro、ORC 和 Parquet 格式(这些格式需要 Java 运行时)。
SQL Server的2022的 基本上没有新增任何 SSIS 功能。引擎完全沿用了之前的设计。 Microsoft的数据集成投资转向 Azure 数据工厂,以及后来的 Microsoft 布。
SQL Server的2025的 发布日期 Microsoft Ignite 将于 2025 年 11 月发布。主要新增功能是基于现代技术构建的 ADO.NET 连接管理器。 Microsoft.Data.SqlClient 提供程序,引入 TLS 1.3 和 Microsoft Entra ID 身份验证。此版本还移除或弃用了许多内容:Attunity CDC 组件、Hadoop 任务、SSIS 包存储、旧版 Integration Services 服务以及 32 位执行模式。

SSIS 突出特点

以下是SSIS的一些重要特性:

  • 工作室环境
  • 相关数据集成功能
  • 有效实施速度
  • 与其他部门紧密合作 Microsoft SQL 系列
  • 数据挖掘查询转换
  • 模糊查找和组ping 转换
  • Term Extrac术语和术语查找转换
  • 更高速的数据连接组件,例如连接到 SAP or Oracle

SSIS Archi质地

下图展示了 SSIS 的主要组件是如何协同工作的,从控制流到参数:

SSIS架构图:控制流、数据流、事件处理程序、包资源管理器和参数

以下是 SSIS 架构的组成部分:

  • 控制流(存储容器和任务)
  • 数据流(源、目标、转换)
  • 事件处理程序(发送消息、电子邮件)
  • 软件包浏览器(提供软件包中所有内容的统一视图)
  • 参数(用户交互)

让我们详细了解一下每个组成部分:

1. 控制流

控制流是 SSIS 包的核心。它帮助您安排所有组件的执行顺序。这些组件包含容器和任务,它们由优先级约束进行管理。

2. 优先约束

优先级约束是包组件,用于指导任务按预定义的顺序执行。它们还定义了整个 SSIS 包的工作流。优先级约束通过根据先前任务的结果执行目标任务来控制两个链接任务的执行——这些结果通过特殊表达式定义的业务规则来实现。

3.任务

“任务”是指一个独立的工作单元,类似于编程语言中的方法或函数。但是,在 SSIS 中,您无需编写代码,而是通过设计界面上的拖放操作来配置任务。

4。 集装箱

容器是用于分组的单元ping 将任务组合成工作单元。除了提供视觉一致性之外,它还允许您声明应在该特定容器范围内的变量和事件处理程序。

SSIS 中有三种类型的容器:

  • 序列容器
  • 循环容器
  • Foreach 循环容器

序列容器: 允许您按组组织子任务ping 它们允许您将事务或日志记录分配给容器。

For循环容器: 它提供的功能与序列容器相同,但它还允许您多次运行任务。然而,它是基于评估条件的,例如 looping 从1 100到。

foreach循环容器: 也允许上厕所ping区别在于,它不是使用条件表达式,而是……ping 操作对象是一组对象,例如文件夹中的文件。

5. 数据流

SSIS 工具的主要用途是……trac将数据加载到服务器内存中,进行转换,然后写入另一个目标位置。如果说控制流是 SSIS 的大脑,那么数据流就是 SSIS 的心脏。

6. SSIS 包

SSIS 的另一个核心组件是包的概念。包是按顺序执行的任务集合。优先级约束用于管理任务的执行顺序。

程序包可以将文件保存到 SQL Server 的 msdb 或程序包目录数据库中。它可以保存为 .dtsx 文件,这是一种结构化文件,与 .rdl 文件非常相似。 报告服务下图显示了一个保存为 .dtsx 文件的 SSIS 包:

SSIS 包保存为 .dtsx 文件并存储在 SQL Server 或文件系统中。

7。 参量

参数的行为与变量非常相似,但也有一些主要区别。参数可以轻松地在包外部设置。它也可以被指定为启动包时必须传入的值。

SSIS 任务类型

在 SSIS 工具中,您可以向控制流添加任务。任务类型多种多样,可以执行各种不同的工作。以下列出了一些重要的 SSIS 任务:

任务名称 描述
执行 SQL 任务 顾名思义,它针对关系数据库执行 SQL 语句。
数据流任务 该任务可以从一个或多个数据源读取数据,在内存中转换数据,并将其写入一个或多个目标位置。
分析服务处理任务 使用此任务处理表格模型或 SSAS 多维数据集的对象。
执行包任务 您可以使用此 SSIS 任务从同一项目中执行其他包。
执行流程任务 借助此任务,您可以指定命令行参数。
文件系统任务 它可以对文件系统进行操作,例如移动、重命名和删除文件以及创建目录。
FTP任务 它允许您执行基本的 FTP 功能。
脚本任务 这是一个空白任务。您可以编写 .NET 代码来执行您想要的任何任务。
发送 Mail 任务 您可以发送电子邮件通知用户您的包裹已完成或发生了某些错误。
批量插入任务 您可以使用批量插入命令将数据加载到表中。
脚本任务 运行一组 VB.NET 或者 C# 代码在 Visual Studio中 环境。
Web 服务任务 它在 Web 服务上执行一种方法。
WMI 事件观察器任务 此任务允许 SSIS 包等待并响应某些 WMI 事件。
XML 任务 此任务可帮助您合并、拆分或重新格式化任何 XML 文件。

其他重要的 ETL 工具

SSIS是众多例子之一tract-transform-load平台。其他重要的ETL工具包括:

  • SAP 数据服务
  • SAS 数据管理
  • Oracle 仓库建造者 (OWB)
  • PowerCenter 信息技术
  • IBM InfoSphere 信息服务器
  • 用于数据 ETL 的 Elixir Repertoire
  • Sagent 数据流

使用 SSIS 的优势

SSIS 工具具有以下优点:

  • 广泛的文档和支持
  • 实施的简易性和速度
  • 与 SQL Server 和 Visual Studio 紧密集成
  • 标准化数据集成
  • 提供实时、基于消息的功能
  • 支持分布式模型
  • 帮助您消除网络瓶颈,从而顺利地通过 SSIS 将数据插入 SQL Server。
  • 允许您使用 SQL Server 目标而不是 OLE DB 来更快地加载数据。

SSIS 的缺点

使用 SSIS 工具的一些缺点如下:

  • 它有时会在非……方面造成问题Windows 环境。
  • 愿景和战略不清晰。
  • SSIS 缺乏对其他数据集成方式的支持。
  • 与其他一些产品存在集成问题。

SSIS 最佳实践示例

应用一些最佳实践可以保持 SSIS 包运行速度快且易于维护:

  • SSIS 是一个内存管道,因此确保所有转换都在内存中发生非常重要。
  • 尽量减少记录的操作。
  • 通过了解资源利用情况来规划产能。
  • 优化 SQL 查找转换、数据源和目标。
  • 正确安排和分发时间。

常见问题

ETL 代表 Extract、转换、加载。SSIS 示例tracts 数据来自诸如 SQL Server、Excel 等来源,或 Oracle它通过清理和合并在内存中转换数据,然后将结果加载到目标数据库或文件中。

SSIS 是一个与 SQL Server 一起安装的本地 ETL 工具,用于在内存中转换数据。 Azure Data Factory 是一款云数据集成服务,用于编排数据管道,并侧重于 ELT(执行、加载和转换)。现有的 SSIS 包也可以在其中运行。 Azure 通过 SSIS 集成运行时。

.dtsx 文件是 SSIS 包保存的 XML 文件。它存储包任务、控制流、数据流和连接,可以部署到 SQL Server、msdb 数据库或文件系统。

SSIS 包是在 SQL Server 数据工具 (SSDT) 中构建的,SSDT 是 SQL Server 的一个扩展。 Visual Studio中它提供了一个拖放式设计器,用于控制流和数据流,因此大多数工作不需要手动编写代码。

是的。SSIS 仍然随现代 SQL Server 版本一起提供,并且仍然是广泛使用的本地 ETL 工具。团队还可以通过云端运行现有包。 Azure-SSIS集成运行时,因此这项技能将保持实用性。

这三者都是 SQL Server 服务。SSIS 用于处理数据集成和 ETL。 SSRS 生成报表,而 SSAS 提供 OLAP 多维数据集和分析。它们经常一起使用。 Microsoft 商业智能堆栈。

人工智能和机器学习帮助 ETL 管道自动检测数据质量问题,并建议源到目标映射。pings、强大的模糊匹配和标记异常。在 SSIS 中,团队可以通过脚本任务或在数据流期间调用外部 AI 服务来添加这些功能。

是的。 GitHub 副驾驶 可以在 SSIS 脚本任务中编写 VB.NET 或 C# 代码,以及用于执行 SQL 任务的 SQL 代码。 Rev在将每个建议应用到你的软件包之前,请先查看这些建议。

总结一下这篇文章: