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

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

折腾了半天   特此记录

首先 来个总图

这是kjb  

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

 

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

 

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

 

接下来展示ktr的具体操作  

下图为getUrl的说明

 

生成记录为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");

这样就获取到了时间  

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

 

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

 

 

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

 

然后来看kjb

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

即可获取数据

 

如果对您有帮助的话  麻烦点个赞哦  比心~

 

文件下载地址:https://download.csdn.net/download/weixin_41634885/11961696

里面 的数据库信息 需要自行配置

 

over

==============================================================================

打个广告  有记账需求的  可以看看这个小程序  我自己做的

 

 

 

 

 

 

 

 

  • 10
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值