20231110-kettle学习
kettle用repositories
新建一个数据库的仓库,记着要把启动命令中增加 “-Dfile.encoding=UTF-8”,否则打开文件的时候会出现 Invalid byte 1 of 1-byte UTF-8 sequence.
然后新建的转换和作业就保存到数据库中
linux服务器操作
把pdi解压缩后复制到/usr/local/data-integration
目录
设置环境变量
1 | export KETTLE_HOME=/usr/local/data-integration |
把windows下做好的 repositories.xml 文件复制到/usr/local/data-integration/.kettle
目录下
查看repository:
1 | ./kitchen.sh -listrep |
查看所有的job
1 | ./kitchen.sh -rep:birepo -user:admin -pass:admin -listjobs |
查看所有的trans
1 | ./pan.sh -rep:birepo -user:admin -pass:admin -listtrans |
执行转换:
1 | $ ./pan.sh -rep:birepo -user:admin -pass:admin -trans:market |
执行转换
1 | $ ./pan.sh -rep:birepo -user:admin -pass:admin -trans:car_transfer_info |
执行job
1 | $ ./kitchen.sh -rep:birepo -user:admin -pass:admin -job:zgcw |
执行job带参数
1 | ./kitchen.sh -rep:erp_kettle -user:admin -pass:admin -parameter:start_date=2023-12-1 -job:guanbao |
做第一个市场每日交易统计
新建表 transfer_daily_report
1 | CREATE TABLE `transfer_daily_report` ( |
新建重构作业流程
第一步先清库,新建执行sql的任务
1 | delete from transfer_daily_report; |
新建一个获取全部交易执行的语句
1 | SELECT date( handle_time) as day, |
新增一个生成车辆分类的脚本
1 | //Script here |
最后添加一个表输出的节点。
新建日更新的作业
新增一个获取最近10天交易的sql
1 | SELECT date(handle_time) as day, |
添加生成车辆类别的脚本(同上)
最后增加一个插入或者更新表的节点
这里要根据市场、日期、车辆类型来更新。