学习SSIS的XML源与XML任务

1,249 阅读4分钟

本文介绍了SSIS XML源和SSIS XML任务,它们是SQL Server集成服务中与XML相关的组件。

简介

XML是可扩展 标记 语言Extensible Markup Language)的缩写。它由描述数字文档中的文本的代码或标签组成。XML被设计用来存储和传输数据,并且是人类和机器都可以阅读的。

XML是一种半结构化的文件格式,它包含标签或其他标记,以分离语义元素,并在数据中执行记录和字段的层次结构。在XML中,模式可以在XML文件中定义(称为内联模式),或存储在一个单独的XML模式定义文件(XSD)中。

XML是一种通用的数据存储格式,与一些工具和技术捆绑在一起。它是一种标准的数据格式,在世界范围内成为广泛使用的数据传输,使得它在数据仓库过程中经常使用。

在SQL Server集成服务(SSIS)中,提供了一个任务和一个组件,允许开发人员执行几个与XML相关的操作。

本文将解释SSIS的XML源组件以及如何使用它从XML文件导入数据。此外,我们还将解释XML任务以及它所执行的操作种类。

不幸的是,SSIS没有一个用于存储XML文件内数据的目标组件。但有几个变通方法和第三方组件可以用来实现这个目的。

  • 题外话:本文中的所有截图都取自Visual Studio 2019,SQL Server集成服务(SSIS)项目扩展3.4版本。

正如Visual Studio工具箱中描述的那样,SSIS XML Source从一个XML文件中提取数据。

SSIS XML Source description in the Visual Studio toolbox

图1 - Visual Studio工具箱中的XML源描述

在SSIS XML Source中,有三种数据访问模式。

  1. XML文件位置。从一个特定的路径手动选择一个XML文件
  2. 来自变量的XML文件。从SSIS变量中读取一个XML文件路径
  3. 来自变量的XML数据。从SSIS变量中读取一个XML文件

SSIS XML Source data access modes

图2 - XML源的数据访问模式

此外,SSIS的XML源允许开发者选择XML文件包含内联模式或从外部XSD文件读取模式。

SSIS XML Source editor

图3 - XML源编辑

如果XML文件没有模式,SSIS XML源允许用户根据存储在XML文件中的数据来生成一个模式。在选择一个XML文件后,用户可以点击 "生成XSD "按钮。

附加属性

并非所有的属性都可以从SSIS XML Source编辑器中进行配置。有一个叫做 "XMLIntegerMapping "的属性位于组件属性网格中。这个属性定义了XML整数类型的映射方式。有两个选项:把数字读成小数或把它们读成32位整数。

XML Integer mapping property

图4 - XML整数映射属性

表达式

SSIS 的一些 XML 源属性可以作为表达式进行评估。在数据流任务属性标签中,我们可以打开表达式窗口来访问这些属性(如下图所示)。

SSIS XML Source expressions

图 5 - SSIS XML 源的表达式

"XMLData "属性内容与选择的数据访问模式不同;它可能包含XML文件路径或包含XML路径或XML数据的SSIS变量名称。XMLSchemaDefinition "属性可用于评估作为表达式的XSD文件路径。

SSIS的XML任务

虽然SSIS的XML源是用来从一个XML文件中读取数据的,但XML任务是用来执行一些与数据导入过程无关的操作。在SSIS工具箱中提到,XML任务是与XML数据一起工作的:它允许检索XML文档,使用XPath表达式,合并文档,验证,比较,以及执行其他与XML相关的操作。

XML task description in the SSIS toolbox

图6 - SSIS工具箱中的XML任务描述

在SSIS的XML任务中,在 "操作类型 "下拉列表中,有六个操作可用。

Available operation types in the SSIS XML task

表1 - SSIS XML任务的操作类型

Available operation types in the SSIS XML task

图7 - SSIS XML任务中的可用操作类型

这些操作中的每一个都有自己的配置。有些操作(如Diff、Merge和Patch)需要两个连接,因为它们需要两个XML文件,而其他操作(Validate、XPATH、XSLT)只需要一个XML文件连接。

在SSIS XML任务中,有三种方法可以定义XML文件连接。

XML connection types available in the SSIS XML Task

图8 - SSIS XML任务中可用的XML连接类型

  1. 直接输入:这个选项允许用户直接将XML数据输入到一个文本框中

    XML Direct input form

    图9 - XML直接输入表格

  2. 文件连接: 由于XML在SSIS中没有连接管理器,文件连接管理器可以用来连接到一个外部的XML文件。

  3. 变量:将源设置为包含XML文件的变量

摘要

本文简要介绍了SSIS XML源组件和SSIS XML任务,它们是SQL Server集成服务中与XML相关的组件。此外,它还说明了每个功能的使用案例,并提供了一些有用的资源以了解更多细节。

在本文的最后,值得一提的是,除了SSIS中提供的XML组件,还有一些由领先公司提供的第三方组件,如[CDATA]、[COZYROC]、[ZappySys]等。