百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Kettle(PDI)转换中XML文件输入StAX解析详解

bigegpt 2024-08-28 12:22 7 浏览

概述

XML input stream (StAX)(XML文件输入(StAX解析))步骤使用XML (StAX)解析器流API从XML文件中读取数据。这一步对于快速处理大型和复杂的数据结构是最理想的。与使用内存处理并需要清除部分文件的从XML文件输入步骤不同,XML文件输入(StAX解析)步骤将处理逻辑转移到转换中。该步骤本身提供了原始XML数据流以及其他处理信息。

当您对其他步骤有限制时,或者需要解析XML时,建议使用的是流式传输步骤:

  • 需要与内存无关的快速数据加载,而不管文件大小
  • 需要灵活地以不同的方式读取XML文件的各个部分,并且不希望重复解析该文件。

因为某些XML文件的处理逻辑可能很复杂,所以在使用这个步骤时,应该对现有的Kettle步骤有很好的了解。

选项


XML input stream (StAX)(XML文件输入(StAX解析))步骤有以下选项:

Step name(步骤名称):在画布上指定XML input stream (StAX)(XML文件输入(StAX解析))步骤的唯一名称。您可以自定义名称或将其保留为默认名称。

Filename(文件名):输入XML文件的文件名。通过输入文件名的路径或单击浏览(B)..按钮来指定文件名。如果您连接到XML输入流步骤之前的一个步骤,那么浏览(B)..按钮将被隐藏,文本框将变成一个下拉菜单,其中填充了来自前一个步骤的字段。从下拉菜单中选择一个值作为XML文件的路径。您可以使用内部变量来指定路径。

Source is from a previous step(源来自上一个步骤):接受前面步骤中字段中的数据。

Source field name(源字段名称):从上一步中选择一个字段作为XML数据。

Add filename to result?(将文件名添加到结果中?):通过将XML输入文件的文件名作为每个结果行上的值传递,将处理过的XML文件名添加到此转换的结果中。然后,可以在后续步骤中使用它,希望将文件名用作值。

Skip (Elements/Attributes)(忽略 (Elements/Attributes)):应该跳过的元素或属性的数量。此字段用于在文件中的特定位置开始处理。解析器仍将加载该文件,但不会生成行。

Limit (Elements/Attributes)(限制(Elements/Attributes)):限制要处理的元素或属性的数量使用忽略和限制属性,您可以启用在外部循环中定义的块加载。

Default String Length(默认字符串长度):XML数据名称和值字段的默认字符串长度。

Encoding(编码):以指定的编码方式编码XML文件数据。

Add Namespace information?(添加命名空间信息?):将XML数据类型名称空间添加到数据流中。您可以添加一个可选的前缀(在XML数据名称中定义)和URI信息(在XML数据值中定义)。该选项将元素数据类型中定义的前缀添加到XML数据名称中,例如,prefix:product。由于额外的名称空间处理,此选项降低了处理吞吐量。

Trim strings?(裁剪字符串?):修饰所有名称/值元素和属性。它消除了字符串开头和结尾的空格、制表符、回车符和换行符。

Include filename in output? / Fieldname(输出文件名/字段名):将已处理的文件名添加到指定的字段名。

Row number in output? / Fieldname(输出记录数/字段名):将已处理的行号(从1开始)添加到指定的字段名。

XML data type (numeric) in output? / Fieldname(输出XML数据类型(描述)/字段名):以数字格式将已处理的数据类型添加到指定的字段名。定义了以下数据类型:0 - "UNKNOWN" (保留);1 - "START_ELEMENT";2 - "END_ELEMENT";3 - "PROCESSING_INSTRUCTION" (保留);4 - "CHARACTERS";5 - "COMMENT" (保留);6 - "SPACE" (保留);7 - "START_DOCUMENT";8 - "END_DOCUMENT";9 - "ENTITY_REFERENCE" (保留);10-"ATTRIBUTE";11-"DTD" (保留);12-"CDATA" (保留);13-"NAMESPACE" (When namespace information is selected);14-"NOTATION_DECLARATION" (保留);15-"ENTITY_DECLARATION" (保留)。

XML data type (description) in output? / Fieldname(输出XMl数据类型(描述)/字段名):以文本格式将已处理的数据类型添加到指定的字段名。为了提高转换的可读性,应该使用此选项而不是数字数据类型。有关值的列表,请参阅上面的XML数据类型(数值)描述。由于此选项会导致字符串处理速度变慢和额外的内存消耗,因此建议对大数据加载使用数值数据类型格式。

XML location line in output? / Fieldname:将已处理的源XML位置行添加到指定的字段名。

XML location column in output? / Fieldname:将已处理的源XML位置列添加到指定的字段名。

XML element ID in output? / Fieldname(输出XML element ID?/字段名):将已处理的元素号(从'0'开始)添加到指定的字段名。与添加行号相反,该字段号是按每个新元素的计数递增的,而不是按行号递增。这种编号确保了级别之间的嵌套是正确的。

XML parent element ID in output? / Fieldname(输出XML父 element ID?/字段名):将父元素号添加到指定的字段名。当使用XML element ID和XML父element ID时,可以使用完整的XML元素树供以后使用。

XML element level in output? / Fieldname(输出XML element 层次?/字段名):将已处理的元素级别添加到指定的字段名,从根START_和END_DOCUMENT的“0”开始。

XML path in output? / Fieldname(输出XML 路径?/字段):将处理过的XML路径添加到指定的字段名。

XML parent path in output? / Fieldname(输出XML 父路径?/字段):将已处理的XML父路径添加到指定的字段名。

XML data name in output? / Fieldname(输出XML 数据名称?/字段):将元素、属性和可选名称空间的已处理数据名称添加到指定的字段名称。

XML data value in output? / Fieldname(XML 数据值?/字段):将元素、属性和可选名称空间uri的处理过的数据值添加到指定的字段名。

如果需要设置/重置功能,您可以使用修改后的Java脚本值脚本步骤或用户定义的Java类步骤来创建一个。推荐使用用户定义的Java类步骤,因为它更快。

示例

双击输入中的XML文件输入(StAX解析),添加一个XML文件输入(StAX解析)。


然后双击添加的步骤进行编辑。


接点击浏览,选择文件/data-integration/samples/transformations/files/example.xml。


然后点击预览,预览数据列表。


预览的数据可以作为其他步骤的数据输入流。

相关推荐

Redis集群对比:主从复制、哨兵模式、Cluster一文看懂所有优缺点

在分布式系统中,Redis作为高性能的内存数据库,其集群方案的选择直接影响到系统的稳定性、可用性和扩展性。本文将全面对比Redis的三种主流集群方案:主从复制、哨兵模式和Cluster模式,帮助开发者...

redis的主从复制,读写分离,主从切换

当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。redis提供了一个master,多个sl...

# Redis 入门到精通(九)-- 主从复制(3)

#Redis入门到精通(九)--主从复制(3)##一、redis主从复制-常见问题(1)###1、伴随着redis系统的运行,master的数据量会越来越大,一旦master重启...

redis - 主从复制(Redis主从复制时序图)

1引言在上一篇文章中,我们了解了Redis两种不同的持久化方式,Redis服务器通过持久化,把Redis内存中持久化到硬盘当中,当Redis宕机时,我们重启Redis服务器时,可以由RDB文件或AO...

# Redis 入门到精通(九)-- 主从复制(2)

#Redis入门到精通(九)--主从复制(2)##一、redis主从复制--数据同步阶段注意事项###1、数据同步阶段master说明1)如果master数据量巨大,数据同步阶段应...

Redis主从复制(redis主从复制主节点挂了)

介绍Redis有两种不同的持久化方式,Redis服务器通过持久化,把Redis内存中持久化到硬盘当中,当Redis宕机时,我们重启Redis服务器时,可以由RDB文件或AOF文件恢复内存中的数据。不过...

深入解析 Redis 集群的主从复制实现方式

在互联网大厂的后端开发领域,Redis作为一款高性能的内存数据库,被广泛应用于缓存、消息队列等场景。而Redis集群中的主从复制机制,更是保障数据安全、实现读写分离以及提升系统性能的关键所在。今...

Redis主从架构详解(redis主从架构高可用如何实现)

Redis主从架构搭建Redis主节点配置创建主节点目录(/opt/redis-master),复制redis.conf到该目录下,redis.conf配置项修改#后台启动daemonizeyes...

抖音“四大包塘战神”:承包了全网的快乐

在抖音钓鱼垂类领域,"包塘战神"军团正掀起一场黑色幽默风暴。空军华、大表坑、李赔光、透心良四位创作者,以承包鱼塘为舞台,用连续翻车的钓鱼直播构筑起流量奇观。当钓鱼佬在抖音集体转型喜剧人...

ORACLE 11G RAC 安装-通过VM配置共享磁盘

简介:在自己的电脑上通过VM软件搭建Oracle11GRAC,通过修改VM的参数文件来实现磁盘共享!目标:搭建RAC环境实现:使用VMwareWorkstation8.0.0+ORACLE...

Linux操作系统安全配置(linux系统安全配置包括)

一、服务相关命令systemctlenable服务名#开机自启动systemctldisable服务名#禁用开机自启动systemctlstop服务名#停止服务systemctls...

关于Linux性能调优中网络I/O的一些笔记

写在前面和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括常用的优化工具(mii-tool,ethtool,ifconfig,i...

从 Sonatype Nexus Repository Manager 迁移到 Artifactory

1.Nexus1.1下载下载链接:https://help.sonatype.com/repomanager3/product-information/download/download-archiv...

Ubuntu20安装zabbix5.0企业监控系统亲测教程

前言示例主机:zabbix10.0.100.10,将安装在UbuntuServer上教程说明:因使用官方教程无法安装成功,所以本教程与官方教程有所不同安装前提:已安装UbuntuServer2...

Linux内核设计与实现—进程管理(linux内核程序设计)

进程进程就是处于执行期的程序(目标码存放在某种存储介质上)。进并不仅仅局限于一段可执行程序代码(Unix称其为代码段,textsection)。通常进程还要包含其他资源,像打开的文件,挂起的信号,...