kettle PDI学习笔记(三):输入

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

CSV文件输入

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

在这里插入图片描述
在这里插入图片描述
注意一下,更改的时候,要把输出的那个文件关掉,不然会报错
错误信息

文本文件输入

准备个txt

id;name;age
1;zhangsan;22
2;lisi;21
3;wangwu;25

新建转换、文本文件输入、Excel输出
文本文件輸入
Excel输出
运行结果
预览数据

Excel输入

准备Excel
Excel1
Excel2
输入这边选择好自己的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树状结构,提供在树状结构中寻找节点的能力。
xpath表达式
示例
示例
做好输入输出
输入输出
打开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下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结束,没什么可码字的,都是点一点就完成的事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值