本文介绍了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文件中提取数据。
图1 - Visual Studio工具箱中的XML源描述
在SSIS XML Source中,有三种数据访问模式。
- XML文件位置。从一个特定的路径手动选择一个XML文件
- 来自变量的XML文件。从SSIS变量中读取一个XML文件路径
- 来自变量的XML数据。从SSIS变量中读取一个XML文件
图2 - XML源的数据访问模式
此外,SSIS的XML源允许开发者选择XML文件包含内联模式或从外部XSD文件读取模式。
图3 - XML源编辑
如果XML文件没有模式,SSIS XML源允许用户根据存储在XML文件中的数据来生成一个模式。在选择一个XML文件后,用户可以点击 "生成XSD "按钮。
附加属性
并非所有的属性都可以从SSIS XML Source编辑器中进行配置。有一个叫做 "XMLIntegerMapping "的属性位于组件属性网格中。这个属性定义了XML整数类型的映射方式。有两个选项:把数字读成小数或把它们读成32位整数。
图4 - XML整数映射属性
表达式
SSIS 的一些 XML 源属性可以作为表达式进行评估。在数据流任务属性标签中,我们可以打开表达式窗口来访问这些属性(如下图所示)。
图 5 - SSIS XML 源的表达式
"XMLData "属性内容与选择的数据访问模式不同;它可能包含XML文件路径或包含XML路径或XML数据的SSIS变量名称。XMLSchemaDefinition "属性可用于评估作为表达式的XSD文件路径。
SSIS的XML任务
虽然SSIS的XML源是用来从一个XML文件中读取数据的,但XML任务是用来执行一些与数据导入过程无关的操作。在SSIS工具箱中提到,XML任务是与XML数据一起工作的:它允许检索XML文档,使用XPath表达式,合并文档,验证,比较,以及执行其他与XML相关的操作。
图6 - SSIS工具箱中的XML任务描述
在SSIS的XML任务中,在 "操作类型 "下拉列表中,有六个操作可用。
表1 - SSIS XML任务的操作类型
图7 - SSIS XML任务中的可用操作类型
这些操作中的每一个都有自己的配置。有些操作(如Diff、Merge和Patch)需要两个连接,因为它们需要两个XML文件,而其他操作(Validate、XPATH、XSLT)只需要一个XML文件连接。
在SSIS XML任务中,有三种方法可以定义XML文件连接。
图8 - SSIS XML任务中可用的XML连接类型
-
直接输入:这个选项允许用户直接将XML数据输入到一个文本框中
图9 - XML直接输入表格
-
文件连接: 由于XML在SSIS中没有连接管理器,文件连接管理器可以用来连接到一个外部的XML文件。
-
变量:将源设置为包含XML文件的变量
摘要
本文简要介绍了SSIS XML源组件和SSIS XML任务,它们是SQL Server集成服务中与XML相关的组件。此外,它还说明了每个功能的使用案例,并提供了一些有用的资源以了解更多细节。
在本文的最后,值得一提的是,除了SSIS中提供的XML组件,还有一些由领先公司提供的第三方组件,如[CDATA]、[COZYROC]、[ZappySys]等。