使用kettle把XML文档转换成数据表结构
2014-09-02 15:13
267 查看
使用kettle把XML文档转换成数据表结构
在kettle中Get
data from xml步骤和 XML Input Stream (StAX)步骤读取并解析xml文件。Get
data from xml步骤使用dom方式解析,比较消耗内存,当文件很大时,就不可取。XML Input Stream (StAX)步骤使用完全不同的方式解析大而复杂的文件,且能快速载入数据,所以建议使用该步骤。
下面通过示例来展示如何使用该步骤,源xml文件内容如下:
<?xml version="1.0"?>
<timeseries>
<measurementyear="2000">
<!-- value ofitem named A in 2000 is 8.5 -->
<itemname="A">8.5</item>
<itemname="B">9.8</item>
</measurement>
<measurementyear="2001">
<itemname="A">12.2</item>
<itemname="B">9.4</item>
</measurement>
<measurementyear="2002">
<itemname="A">11.1</item>
<itemname="B">7.2</item>
</measurement>
</timeseries>
解析成数据表的格式数据如下:
使用下面步骤去实现该功能
xmlinput stream(stax):流方式载入xml文档
过滤行:去除掉不相关的文档元素
switch/case步骤:分离第一级(measurement)和第二级(item)
Rowdenormaliser:把第二级的多行转成一行(行专列)
MergeJoin:合并子元素到第一级行(增加列)
示例可以从这里下载
Rowdenormaliser步骤
最容易理解执行情况的方式,通过预览没步骤的执行结果(5.x版本可以直接查看数据流),下图显示该步骤的执行原理。
MergeJoin步骤
把两个来自不同数据源的流进行合并,其实和SQL中join原理是一样的,只不过在kettle中是针对流数据,不是表数据。非常重要的是:流数据要根据键(join中使用的)排序,本列中第一步载入xml文件时,已经排序,所以不再选哟“sort
rows”步骤。
使用kettle把XML文档转换成数据表结构
在kettle中Get
data from xml步骤和 XML Input Stream (StAX)步骤读取并解析xml文件。Get
data from xml步骤使用dom方式解析,比较消耗内存,当文件很大时,就不可取。XML Input Stream (StAX)步骤使用完全不同的方式解析大而复杂的文件,且能快速载入数据,所以建议使用该步骤。
下面通过示例来展示如何使用该步骤,源xml文件内容如下:
<?xml version="1.0"?>
<timeseries>
<measurementyear="2000">
<!-- value ofitem named A in 2000 is 8.5 -->
<itemname="A">8.5</item>
<itemname="B">9.8</item>
</measurement>
<measurementyear="2001">
<itemname="A">12.2</item>
<itemname="B">9.4</item>
</measurement>
<measurementyear="2002">
<itemname="A">11.1</item>
<itemname="B">7.2</item>
</measurement>
</timeseries>
解析成数据表的格式数据如下:
使用下面步骤去实现该功能
xmlinput stream(stax):流方式载入xml文档
过滤行:去除掉不相关的文档元素
switch/case步骤:分离第一级(measurement)和第二级(item)
Rowdenormaliser:把第二级的多行转成一行(行专列)
MergeJoin:合并子元素到第一级行(增加列)
示例可以从这里下载
Rowdenormaliser步骤
最容易理解执行情况的方式,通过预览没步骤的执行结果(5.x版本可以直接查看数据流),下图显示该步骤的执行原理。
MergeJoin步骤
把两个来自不同数据源的流进行合并,其实和SQL中join原理是一样的,只不过在kettle中是针对流数据,不是表数据。非常重要的是:流数据要根据键(join中使用的)排序,本列中第一步载入xml文件时,已经排序,所以不再选哟“sort
rows”步骤。
相关文章推荐
- 使用 XSLT 样式表转换 XML 数据
- 使用XSLT将XML数据转换成HTML
- HOW TO:在 Visual C# .NET 中使用 System.Xml 合并两个 XML 文档中的数据
- 用VB将WORD文档(或其他的二进制数据)生成xml文件并互相转换
- 在.NET中使用XML、读取XML文件,插入数据到XML文档中。
- 311530 HOW TO:在 Visual C# .NET 中使用 System.Xml 合并两个 XML 文档中的数据 (From MKBA)
- 在.NET中使用XML、读取XML文件,插入数据到XML文档中。
- 用VB将WORD文档(或其他的二进制数据)生成xml文件并互相转换
- 使用XMLBeans处理XML数据和文档入门 作者:肖菁 (dev2dev ID: powerise) 湖南省长沙铁道学院科创计算机系统集成有限公司软件中心软件工程师
- C#高级编程(第3版)23.8.1 将ADO.NET数据转换为XML文档(1)
- 演练:使用转换在 Web 窗体页中显示 XML 文档
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- 用VB将WORD文档(或其他的二进制数据)生成xml文件并互相转换
- 使用JavaScript将字符串数据转换为XML
- 使用XSLT将XML数据转换成HTML
- 使用XSLT将XML数据转换成HTML
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结
- 使用XSLT将XML数据转换成HTML
- 使用OPENXML函数将XML文档转换为行结果集 [ZT]
- 使用OPENXML函数将XML文档转换为行结果集