kettle的简单使用并在linux上定时发布
kettle简介
kettle英文名水壶,大概可以理解为把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。
kettle以java开发,使用前需安装java,kettle8.2下载地址
提取码:n40v
主要功能
kettle主要有2个功能,转换和作业。
转换一般是把一种源的数据拿到写到另一种源的步骤,
作业一般是在转换的基础上,附加一些条件,包括但不限于定时、排序。
使用转换进行数据库数据同步
将表输入拖入到右边
点表输入进行编辑,新建数据库连接,编写sql,完了后可以点击预览查看结果
数据库的连接,注意的是需要下载对应数据库的驱动放到安装根目录下的lib文件夹
新建表输出,连接表输入和表输出,配置表输出,可以选择字段的映射
保存后点击运行即可
新建作业定时进行数据同步
将对应的图片拖入到图表中
点击start设置定时,使劲设置为1分钟,方便查看结果
设置转换
设置sql,转换成功后我们添加一条数据
我们这里在转换之前再添加一个sql脚本,用于清空表
操作和上面sql的操作基本一致
保存作业运行,循环打印日志,成功!
linux下发布转换和作业
发布转换
把安装包上传到linux下解压后如下图:
需要将配置文件上传到linux,.kettle文件夹,windows路径:C:\Users\Administrator.kettle
上传到/home路径下,kettle默认读取当前登录用户的家目录下的.kattle
linux运行转换我们需要用到Pan.sh,首先对该文件赋予可执行的权限,
chmod +x pan.sh
./pan.sh -rep=pgsql -user=admin -pass=admin -trans=tran1 -dir=/
参数说明:
rep:资源库
user:用户名
password:密码
trans:转换
dir:目录
**注意:**如果是把资源库存在了windows路径,要修改路径,和数据库的连接路径,比如:localhost这种
出现如下日志,成功!
发布作业
执行如下命令:
./kitchen.sh -rep=pgsql -user=admin -pass=admin -job=job1 -dir=/ -logfile=./logs/log.txt
出现这样的日志,成功!
注意!以上方式是用的kettle的内部定时,但此启动方式不能后台运行,关闭会话后程序就会结束,笔者能力有限,因此,可以使用以下命令,后台运行,
nohup ./kitchen.sh -rep=pgsql -user=admin -pass=admin -job=job1 -dir=/ > ./logs/log.txt 2>&1 &
或者编写shell脚本
path=/home/kettle/data-integration
rep=pgsql
user=admin
pass=admin
job=job1
dir=/
logfile=./logs/log.txt
cd ${path}
nohup ./kitchen.sh -rep=${rep} -user=${user} -pass=${pass} -job=${job} -dir=${dir}
> ${logfile} 2>&1 &