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

  • Post author:
  • Post category:其他

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循环读取路径,设置多线程读取、写入数据等。


版权声明:本文为whiteflameR原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。