KETTLE-从ftp上下载csv文件插入到数据库

使用kettle从另一台服务器上的ftp上下载txt文件到本地 然后将数据插入到数据库中 ftp的目录是动态的 每天都会生成一个时间目录 如20180510 文件就放在这下面 我们文件名是不变的 所以整个kjb的思路就是先获取动态时间作为变量在ftp组件中使用 下载到本地后 清空表(我们是全量导入 所以清空) 然后再导入数据

总图

KETTLE-从ftp上下载csv文件插入到数据库_第1张图片

这是获取ftp路径的ktr 也就是为了获取动态时间的目录

KETTLE-从ftp上下载csv文件插入到数据库_第2张图片

这是将txt数据输入到数据库中的ktr

文件中的所有路径均为配置的 所以应在kettle.porperties中配置

KETTLE-从ftp上下载csv文件插入到数据库_第3张图片

接下来展示ktr的具体操作

下图为getUrl的说明

KETTLE-从ftp上下载csv文件插入到数据库_第4张图片

生成记录为1条

js代码如下:

//Script here
Date.prototype.Format = function (fmt) {
var o = {
“M+”: this.getMonth() + 1, //月份
“d+”: this.getDate(), //日
“h+”: this.getHours(), //小时
“m+”: this.getMinutes(), //分
“s+”: this.getSeconds(), //秒
“q+”: Math.floor((this.getMonth() + 3) / 3), //季度
“S”: this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + “”).substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp(“(“ + k + “)”).test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((“00” + o[k]).substr((“” + o[k]).length)));
return fmt;
}

var url=new Date(new Date().getTime()).Format(“yyyyMMdd”);

这样就获取到了时间

KETTLE-从ftp上下载csv文件插入到数据库_第5张图片

设置变量 方便在kjb的ftp组件中使用

来看txt获取数据到数据库的ktr

KETTLE-从ftp上下载csv文件插入到数据库_第6张图片

KETTLE-从ftp上下载csv文件插入到数据库_第7张图片

这里如果数据有乱码 可以设置下编码方式

KETTLE-从ftp上下载csv文件插入到数据库_第8张图片

这里的${URL}就是刚才获取ftp路径的设置变量 接着远程目录拼接下就可以动态获取到txt文件了 之后通过

KETTLE-从ftp上下载csv文件插入到数据库_第9张图片

即可获取数据

你可能感兴趣的:(数据库,servlet,大数据,数据仓库)