Kettle系列(二)smart-kettle本地离线部署

说明

更新时间:2024/08/28
本文记录了win10下的smart-kettle的下载和配置,并基于mysql8的数据库进行了本地部署,同时进行部分插件的调试、数据清洗以及定时调度等,均可成功运行

本文仅为记录学习轨迹,如有侵权,联系删除

一、概述

kettle
先说明一下什么是kettle,相信做过数据清洗的观众应该对这个工具不陌生,它是用于数据清洗的很常见的开源的工具,官方的解释如下

Kettle 是一款国外开源的 ETL 工具,纯 Java 编写,绿色无需安装,数据抽取高效稳定 (数据迁移工具)。Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。

通俗点讲就是一个平时用于数据治理方面的工具,例如数据同步、数据迁移、数据清洗等

smart-kettle
那么smart-kettle又是啥呢?首先先了解一下kettle存在的问题,kettle是一个java开发的客户端,正常的使用都是安装在win系统上面,进行任务的配置等,可移植性差,而且客户端非常耗内存、CPU,只适合配置,不适合做业务,这个好理解,正常系统应该部署在linux服务器上面让它24小时运行,而不是直接运行在自己的win系统的电脑上面,很难投入生产环境,再者kettle的任务调度,日志没有统一管理,因此,为了解决这些问题,smart-kettle孕育而生。

可以看一下gitee上面对smart-kettle的介绍

smart kettle是针对上述企业的痛点,对kettle的使用做了一些包装、优化,使其在web端也能 具备基础的kettle作业、转换的配置、调度、监控,能在很大一定程度上协助企业完成不同业务场景下数据的ETL(抽取、转换、加工)的能力。

通俗点来讲就是轻量级的kettle web的监控调度平台,可以直接部署在linux服务器上面通过web进行访问,提供调度、定时任务、日志监控等功能

备注:smart-kettle地址

二、代码下载

smart-kettle是国内大佬开源的一个工具,地址:https://gitee.com/yaukie/smartkettle,截图如下
在这里插入图片描述
搞it的对这种代码仓库应该不陌生了,就不过多介绍了,直接下载源码,目录截图如下
在这里插入图片描述
代码分为前端和后端,官网上面有详细的部署教程,可结合着来看
在这里插入图片描述

(1)后端代码依赖下载

先用idea打开代码,截图如下
在这里插入图片描述
按照官网的教程先配置maven的settings.xml文件
在这里插入图片描述
确保idea使用的是自己刚配置好的maven
在这里插入图片描述
然后直接maven安装命令 mvn clean -U install,强制下载jar包
在这里插入图片描述
在这里插入图片描述

等待安装即可,注意过程可能会有点慢,如果卡住可以重启idea,重新刷新maven,按照官网的解释,下载完本地仓库需要有以下jar包

   x1-simple-job-1.0.0-SNAPSHOT.jar
   x-kettle-core-1.0.0-SNAPSHOT.jar
   x-common-base-1.0.0-SNAPSHOT.jar
   x-common-pro-1.0.0-SNAPSHOT.jar
   x-common-auth-1.0.0-SNAPSHOT.jar

查看一下自己本地仓库是不是已经下载好了jar
在这里插入图片描述
检查发现“x-common-pro-1.0.0-SNAPSHOT.jar”这个好像没下成功,不过经过本人测试发现代码正常正常运行,且没有发现问题,如果大家也有这个问题可以先忽略,如果发现maven死活下不来,那么就只能采用官网的另一种安装方式了
在这里插入图片描述
至此maven按照完成

(2)前端代码依赖下载

前端的代码依赖下载就简单多了,直接cmd进入前端代码所在目录,先给大家看看本人的node版本
在这里插入图片描述
然后执行npm install等待安装即可,没报错的话即安装成功

三、创建数据库(mysql8)

数据库的配置可以用mysql5,也可以用mysql8(有坑需要注意),本人用的mysql8,下面开始创建数据库,一共有两个,

  • 一个是系统数据库xtl(用于记录用户登录,日志监控等)
  • 一个是数据库资源库etl(kettle专属的资源库)

创建好数据库后,都是先执行create.sql,然后执行init.sql
在这里插入图片描述
这里有个坑需要注意,需要如果你是用的mysql5版本的,脚本都是可以正常执行,但是如果是mysql8的,就会发现执行create.sql的时候会报错
在这里插入图片描述
这是由于作者导出的时候用的是mysql5,里面有些语法mysql8不适用,就是里面给字段加注释的代码,例如


comment on table x_menu is '菜单权限表'
;

comment on column x_menu.menu_id is '菜单ID'
;

comment on column x_menu.menu_name is '菜单名称'
;

comment on column x_menu.parent_id is '父菜单ID'
;

comment on column x_menu.order_num is '显示顺序'
;

comment on column x_menu.path is '路由地址'

这些直接注释掉即可,注意,一定要确保所有的sql文件都执行成功才能往下走。

四、修改配置文件

修改的地方下面用截图展示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其他的不用动,这样就好了

五、mysql8数据库配置

如果各位用的是mysql5的话,这个章节可以不用管,直接到下一个章节即可!!!
如果各位用的是mysql5的话,这个章节可以不用管,直接到下一个章节即可!!!
如果各位用的是mysql5的话,这个章节可以不用管,直接到下一个章节即可!!!

本人数据库一直用的mysql8,但是这套代码只兼容了mysql5,所以需要自己自行改造,使它兼容mysql8,首先是数据库驱动要改为mysql8的驱动
在这里插入图片描述
如果lombok导不进来,可以自行配置一下lombok
在这里插入图片描述
以上就是mysql8需要改动的地方,下面给出完整的依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation=
### 如何配置和调度 Pentaho Kettle (Spoon/PDI) 执行 ETL 任务 #### 配置 JRE 和依赖环境 为了使 Kettle 正常工作,在解压软件包后,需先配置与 Kettle 版本相匹配的 JRE 环境。对于 Linux、Windows 或 macOS 用户来说,可能还需依据不同操作系统发行版安装额外的依赖项[^3]。 #### 使用 Spoon 设计 ETL 流程 通过图形化界面工具 Spoon 来设计数据抽取、转换及加载(ETL)过程。此工具提供了一系列可视化组件来帮助构建复杂的 ETL 工作流。开发者可以在其中定义数据源、目标以及中间处理步骤,并设置必要的参数和变量[^1]。 ```bash # 启动 Spoon GUI 应用程序 ./spoon.sh # 对于 Unix/Linux/MacOS spoon.bat # 对于 Windows ``` #### 创建并保存 Transformation/Job 文件 完成 ETL 流程的设计后,记得将其另存为 `.ktr` (Transformation 文件)或 `.kjb` (Job 文件)。这些文件包含了所设计的数据集成逻辑,稍后可用于自动化执行。 #### 调度 Job 的方法之一:使用 Kitchen 命令行工具 Kitchen 是专门用来计划和启动由多个 transformation 组成 job 的命令行工具。可以通过编写 shell script 或 batch file 将其纳入定期批处理任务中去自动触发指定 jobs 的运行。 ```bash # 运行已存在的 .kjb 文件作为后台进程 nohup ./kitchen.sh /file:/path/to/job.kjb & ``` #### 设置定时任务 在 UNIX 类系统上可利用 cron 表达式配合 `cron` 实现周期性的调用;而在 Windows 上则可通过 Task Scheduler 达到相同效果。这允许按照预设的时间间隔重复执行特定的任务。 ```bash # 添加一条每天凌晨两点钟执行某job的crontab条目 0 2 * * * /usr/local/bin/kitchen.sh -rep=repository_name -user=username -pass=password -job=/jobs/my_job.kjb >> /var/log/kettle.log 2>&1 ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最强菜鸟

若问题得解,可邀作者喝咖啡?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值