CSV文件输入
上回快速入门了一下子,最后输出后,数据格式有点不对劲,源文件数据数字没有小数点,而输出后有了小数点。
打开Excel输出,选择字段的格式,Integer类型的都在格式下拉框选择0就OK了。


注意一下,更改的时候,要把输出的那个文件关掉,不然会报错

文本文件输入
准备个txt
id;name;age
1;zhangsan;22
2;lisi;21
3;wangwu;25
新建转换、文本文件输入、Excel输出




Excel输入
准备Excel


输入这边选择好自己的Excel格式

字段这边可以选中,并且删除不需要的字段

按照之前的步骤设置ok

多文件合并
这个没什么注意的,只需要利用 .* 通配符就可以完成。比如目录:D盘,通配符号:input.*.xlsx
从XML获取数据
准备一个xml
<?xml version="1.0" encoding="UTF-8"?>
<AllRows testDescription="1 - simple functionality test">
<Rows rowID="1">first row chunk of data
<Row><v1>1.1.1</v1><v2>1.1.2</v2></Row>
<Row><v1>1.2.1</v1><v2>1.2.2</v2></Row>
</Rows>
<Rows rowID="2">first row chunk of data
<Row><v1>2.1.1</v1><v2>2.1.2</v2></Row>
<Row><v1>2.2.1</v1><v2>2.2.2</v2></Row>
</Rows>
<Rows rowID="3">first row chunk of data
<Row><v1>3.1.1</v1><v2>3.1.2</v2></Row>
<Row><v1>3.2.1</v1><v2>3.2.2</v2></Row>
</Rows>
</AllRows>
要解析xml语言,就得使用XPath,XPath(xml路径语言)来确定xml文档中某部分位置,它基于xml树状结构,提供在树状结构中寻找节点的能力。

示例

做好输入输出

打开xml输入,并且选择文件

进入内容标签,点后边获取XML文件的所有路径选择路径或者自己手写需要循环读取的路径,就是循环哪个节点

根据表达式写路径,还有需要的字段、节点、结果类型等信息

结果

JSON Input
首先,JSON的核心概念:数组、对象、属性
数组:[]
对象:{}
属性:K:V
JSONPath:类似Xpath,表达式有两种方式,我这里就用人们最常用的表达式进行。
操作符

比如以下JSON,(手敲的,格式可能不对)
{
"store": {
"book": {
{
"author": "author1",
"title": "title1",
"price": 8.98
},
{
"author": "author2",
"title": "title2",
"price": 18.99
},
{
"author": "author3",
"title": "title3",
"price": 28.99
},
{
"author": "author4",
"title": "title4",
"price": 38.98
}
},
"bircycle": {
"color": "red",
"price": 49.95
}
},
"expensive": 10
}
$..author的结果:
[
"author1",
"author2",
"author3",
"author4",
]
$.store..price的结果:
[
8.98,
18.99,
28.99,
38.98,
49.95
]
好了,准备好正确的JSON,后缀是.js
{
"status":"ok",
"response":{
"submissions":[
{
"id":"1",
"data":[
{
"field":"1.1",
"value":"1.11"
},
{
"field":"1.2",
"value":"1.12"
},
{
"field":"1.3",
"value":"1.13"
}]
},
{
"id":"2",
"data":[
{
"field":"2.1",
"value":"2.11"
},
{
"field":"2.2",
"value":"2.12"
},
{
"field":"2.3",
"value":"2.13"
}]
}
]
}
}
逻辑是:先拿到data节点,再从data节点遍历field和value,第一个input获取data,第二个input获取field和value

第一个input


第二个input


结果

生成记录
比如我要1000条数据



表输入
就是数据库输入,需要把对应数据库的Java驱动放到lib目录下,拿mysql举例子,我本机mysql版本是5.5,把驱动复制到了lib下




结束,没什么可码字的,都是点一点就完成的事。
本文介绍了Kettle PDI的各种输入操作,包括CSV文件输入、文本文件输入、Excel输入、多文件合并、从XML和JSON获取数据,以及如何生成记录和进行表输入。在处理CSV文件时,需要注意字段格式的设置,例如将Integer类型设置为0格式。对于XML和JSON数据,需使用XPath和JSONPath来定位和读取数据。在多文件合并时,利用通配符实现批量处理。此外,还讲解了如何从数据库进行表输入,要求驱动程序放置在lib目录下。
2834

被折叠的 条评论
为什么被折叠?



