Kettle实现xml数据解析,存入数据库

kettle 实现xml数据解析、提取、存入数据库

kettel介绍:

Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你需要做什么。

xml数据:

xml是一种存储数据的数据格式,和html格式类似。现在有很多数据存储以xml数据格式存储,用来描述文件。

以下为一个常见的xml数据实例。

<?xml version="1.0" encoding="UTF-8"?>
 
<bookstore>
 
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
 
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
 
</bookstore>

xml数据语法参考:xml数据格式

当xml被用于存储数据时,作为数据分析人员,就要解析xml数据来分析。解析xml数据通常的思路:用python \ R 代码读取xml数据,提取xml数为数据框,后续进行分析处理。 此外,也可将xml数据用ETL软件处理,存入数据库。

本文就介绍第二种办法,将xml数据解析入库。

xml数据解析:

打开kettel软件,选择get data from XML组件
在这里插入图片描述
打开get data from XML组件:
在这里插入图片描述
此组件各个功能:
1:步骤名称:解析xml数据步骤的名称,按自己喜好起名,我一般起getxmldata
2:文件和目录:选择本地的xml文件,选完点增加。
3.通配符和正则表达式:用于批量选取xml文件
在这里插入图片描述
内容部分:
这是对读取xml数据的一些设置。
1:循环读取路径:参考自己的xml数据路径,选择自己需要提取的数据存储的xml数据的路径。(点击获取xml所有路径,该组件会自动帮你读出选中xml数据格式的所有路径)
2:用于截取数据的xml路径**(大文件)**:一般选择需要循环读取数据的xml路径,通常是数据存储的路径。 如果xml文件较小,可以忽略此选项,如果读取的xml文件比较大,建议填上,会提升xml数据的读取速度。
在这里插入图片描述
字段部分:
点击获取字段可自动获取字段,也可以在修改字段的名称、读取路径、节点、结果类型和数据类型等。
如果对xml语法和数据路径不熟悉的,可参考Xpath。有些需要循环读取的数据的操作,就需要循环子节点,同时添加父节点数据。就要参考Xpath手动添加。
xpath学习文档
字段确定后,点击预览数据就可以预览获取到的xml数据。
在这里插入图片描述

数据入库:

在上一步已经将xml数据解析成数据表格,下一步数将数据入库。和其他类型数据文件一样,xml的数据入库需要表输出组件。此外,还可以将上一步获取到的数据存入到其他类型数据文件,比如csv、excel等。
数据入库需要表输入组件:
1:数据库连接:点击新建,配置自己要出去的数据库
2:目标表:选择要存入数据的表
3:提交数据数量:ETL软件一次读取存入数据量,可依据自己电脑性能选择。
4:指定数据库字段:点击获取字段,可将前一步读取的字段数据和数据库表字段匹配。 建议数据库表字段命名起相似的名字便于软件自动识别,如果无法识别可以选择输入字段映射手动调整。
在这里插入图片描述
在这里插入图片描述

至此,数据输入和输出设置完毕。点击开始就可以进行数据传输入库。

其他

建议对xml数据格式不了解的,先可以参考:
xpath学习文档
xml数据格式
了解xml的数据内容,会更加快速了解这篇文章内容。

如果xml文件较小,重复使用不高,可以采用python或者R这些用代码读取xml数据并分析,更加快速。
如果涉及xml文件比较多,数据量很大,需要反复操作,建议存入数据库后分析。

此外,对于大数据量和嵌套比较深的xml数据,要想办法提高读写性能。
一般来说,硬件是主要原因。软件方面,kettel性能也可以调优,比如可以提升kettel运存,设置合适的xml循环读取路径,设置多线程读取、写入数据等。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 很高兴能够跟你聊天。关于你问的 kettle 导出的 xml 数据结构解析,可以通过 XML 解析器来解析 xml 数据。有多种 XML 解析器可以使用,比如 SAX 解析器、DOM 解析器、JAXP 解析器等等。 ### 回答2: kettle 导出的 XML 数据结构主要用于描述 ETL(Extract, Transform, Load)过程中的任务和转换。以下是对 kettle 导出的 XML 数据结构解析的简要说明。 1. 转换描述:XML 数据结构中的主要部分是描述转换的元素和步骤。转换是由一系列连续的步骤(steps)组成的。每个步骤描述了一个特定的数据处理操作,如从数据库中读取数据、执行转换、写入目标表等。每个步骤都有一个唯一的标识符和一组属性。 2. 连接描述:转换中的步骤之间通过连接(hops)进行关联。连接描述了步骤之间的数据流方向和转换规则。每个连接都有一个源步骤和目标步骤的标识符,并可以包含一组条件或规则。 3. 输入输出描述:每个步骤都有相应的输入和输出描述。输入描述定义了一个步骤的输入数据来源,可以是之前步骤的输出或外部数据源。输出描述定义了一个步骤的输出数据目标,可以是下一个步骤的输入或输出到外部。 4. 数据字段描述:每个步骤的输入和输出描述中都包含一个数据字段列表。数据字段描述每个字段的名称、类型、长度、格式等。这些字段用于描述数据的结构和类型,并在步骤之间进行数据传递和转换。 总之,kettle 导出的 XML 数据结构是一个详细描述 ETL 过程中任务和转换的文档。它包含了转换的元素、步骤、连接以及输入输出描述和数据字段描述等信息。通过解析这个 XML 数据结构,我们可以了解和操作 ETL 过程中的各个步骤和数据处理规则。 ### 回答3: Kettle是一款开源的ETL工具,常用于数据抽取、转换和加载。其中,导出的XML数据结构为Kettle的作业和转换定义文件。 KettleXML数据结构具有以下特点: 1. 根节点:XML文件的根节点通常是"job"(表示作业定义文件)或"transformation"(表示转换定义文件),代表着整个XML文件的起始。 2. 节点结构:XML文件中的每个节点代表着Kettle中的一个组件,包括作业步骤(job entry)和转换步骤(transformation step)。每个组件都被嵌套在父节点内,形成层次结构。 3. 节点属性:每个节点都包含一些属性,用于描述该组件的相关信息,例如组件的名称、类型、位置、参数设置等。 4. 连接关系:Kettle中的组件之间可以通过连接关系进行数据传递。在XML中,连接关系通过在源组件和目标组件之间添加"hop"节点来表示,每个"hop"节点包含源组件和目标组件的引用。 5. 参数设置:对于每个组件,XML文件中都包含了它们的参数设置、输入输出字段映射等详细信息,用于指导Kettle的执行过程。 通过解析Kettle导出的XML数据结构,我们可以获得作业或转换的整体结构、各个组件的定义、属性设置和连接关系,以及每个组件的参数设置和输入输出字段映射等信息。这些信息能够帮助我们理解和分析Kettle作业或转换的执行流程,为后续的优化和调试工作提供指导。同时,通过解析XML数据结构,我们还可以将Kettle作业或转换的定义导入到其他系统中,实现作业或转换的自动化部署和执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值