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

news/2025/1/18 18:32:38/

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

  • 说明
  • 一、概述
  • 二、代码下载
    • (1)后端代码依赖下载
    • (2)前端代码依赖下载
  • 三、创建数据库(mysql8)
  • 四、修改配置文件
  • 五、mysql8数据库配置
  • 六、其他配置
  • 七、启动
  • 八、总结

说明

更新时间:2023/08/14 00:22
本文记录了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.jarx-kettle-core-1.0.0-SNAPSHOT.jarx-common-base-1.0.0-SNAPSHOT.jarx-common-pro-1.0.0-SNAPSHOT.jarx-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="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>smart-kettle-parent</artifactId><groupId>org.yaukie.frame</groupId><version>1.0.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>org.yaukie.frame</groupId><artifactId>smart-kettle</artifactId><name>smart-kettle</name><version>1.0.0-SNAPSHOT</version><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><skipTests>true</skipTests></properties><!-- 当前Module需要用到的依赖,按自己需求添加,版本号在父类已经定义了,这里不需要再次定义 --><dependencies><dependency><groupId>org.yaukie.frame</groupId><artifactId>x1-simple-job</artifactId><version>1.0.0-SNAPSHOT</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>com.fasterxml.jackson.jaxrs</groupId><artifactId>jackson-jaxrs-json-provider</artifactId></exclusion><exclusion><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId></exclusion></exclusions></dependency><!-- 定义 mysql 版本 --><dependency><groupId>org.yaukie.core</groupId><artifactId>x-common-base</artifactId><exclusions><exclusion><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></exclusion></exclusions><version>1.0.0-SNAPSHOT</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!--降低MySQL版本,kettle中连接mysql资源库使用的是低版本驱动 --><dependency><groupId>mm.mysql</groupId><artifactId>mm.mysql</artifactId><version>2.0.7</version></dependency><dependency><groupId>org.yaukie.core</groupId><artifactId>x-common-auth</artifactId><version>1.0.0-SNAPSHOT</version></dependency><dependency><groupId>org.yaukie.xtl</groupId><artifactId>x-kettle-core</artifactId><exclusions><exclusion><groupId>pentaho</groupId><artifactId>simple-jndi</artifactId></exclusion></exclusions><version>1.0.0-SNAPSHOT</version></dependency><!-- 定义 lombok 版本 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--kettle核心包引入结束--></dependencies><!--定义spring boo maven 插件--><build><!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 --><resources><resource><directory>src/main/resources</directory><excludes><!--<exclude>**/*.yml</exclude>--><!--<exclude>**/*.kjb</exclude>--></excludes><!--<filtering>true</filtering>--></resource><!--如果不加此文件,本地跑会有问题--><resource><directory>src/main/java</directory><includes><include>**/*.yml</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.yml</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><!--如果要构建一键启动,重新打包,请按照如下方式修改pom.xml 文件,这种方式打成的jar包,不会包括xml以及kjb文件--><resource><directory>src/main/resources</directory><excludes><exclude>**/*.yml</exclude><exclude>**/*.kjb</exclude></excludes><filtering>true</filtering></resource></resources><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.5.RELEASE</version><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions><configuration><jvmArguments>-Dfile.encoding=UTF-8</jvmArguments><mainClass>org.yaukie.frame.Start</mainClass></configuration></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.3.1</version><configuration><archive><manifest><!--运行jar包时运行的主类,要求类全名--><mainClass>org.yaukie.frame.Start</mainClass><!-- 是否指定项目classpath下的依赖 --><addClasspath>true</addClasspath><addDefaultImplementationEntries>true</addDefaultImplementationEntries><!-- 指定依赖的时候声明前缀 --><!--<classpathPrefix>../lib</classpathPrefix>--></manifest></archive></configuration></plugin><!--<plugin>--><!--<artifactId>maven-assembly-plugin</artifactId>--><!--<configuration>--><!--<descriptors>--><!--<descriptor>src/main/assembly/assembly.xml</descriptor>--><!--</descriptors>--><!--</configuration>--><!--<executions>--><!--<execution>--><!--<id>make-assembly</id>--><!--<phase>package</phase>--><!--<goals>--><!--<goal>single</goal>--><!--</goals>--><!--</execution>--><!--</executions>--><!--</plugin>--></plugins></build></project>

六、其他配置

这里的配置是本人测试过程中发现的配置修改
在这里插入图片描述
在这里插入图片描述

七、启动

首先启动后端代码,记得刷新一下maven
在这里插入图片描述
启动成功截图如下
在这里插入图片描述

然后是前端启动,前端cmd进入前端目录,执行npm run dev即可
在这里插入图片描述
访问地址:http://localhost:8081/kettle-admin/login
在这里插入图片描述
在这里插入图片描述
至此,登录成功

八、总结

以上就完成了整个smart-kettle的本地部署,不过部署完成后,在使用的过程中发现了一些问题,例如插件引入的问题,怎么连接其他数据库问题等,后面有时间可以再整理一版内容出来


http://www.ppmy.cn/news/1029880.html

相关文章

python中yield关键字

yield和return 理解一个东西最好的办法就是找一个和它类似的东西&#xff0c;然后再搞清楚它们之间的区别。 yield最类似的东西就是return&#xff0c;因为他们起到了同样的作用&#xff1a;返回值。 看这个return的函数&#xff1a; def have_some_wine():print(先开一瓶酒&a…

fiddler抓包工具的用法以及抓取手机报文定位bug

前言&#xff1a; fiddler抓包工具是日常测试中常用的一种bug定位工具 一 抓取https报文步骤 使用方法&#xff1a; 1 首先打开fiddler工具将证书导出 点击TOOLS------Options------Https-----Actions---选中第二个选项 2 把证书导出到桌面后 打开谷歌浏览器 设置---高级…

商品首页(sass+git本地初始化)

目录 安装sass/sass-loader 首页(vue-setup) 使用git本地提交 同步远程git库 安装sass/sass-loader #安装sass npm i sass -D#安装sass-loader npm i sass-loader10.1.1 -D 首页(vue-setup) <template><view class"u-wrap"><!-- 轮播图 --><…

每日一题——旋转数组的最小数字(II)

旋转数组的最小数字——II 题目链接 注&#xff1a;此题是昨天旋转数组的最小数字——I的拓展延伸&#xff0c;昨天题目数组的条件是不会存在重复元素&#xff0c;而本题数组的元素可以重复&#xff0c;因此建议先做前面一题&#xff0c;进行思考&#xff0c;这样求解这一题的…

C++中const,指针和引用

C中的const&#xff0c;指针和引用 在线C/C编译器&#xff0c;可以试着运行代码。 C中的const 在C语言中&#xff0c;const修饰的量称为常变量&#xff08;在编译过程中&#xff0c;const就是当成变量的编译生成指令的&#xff09;&#xff0c;不可以直接修改它的值&#xf…

DIP: Spectral Bias of DIP 频谱偏置解释DIP

On Measuring and Controlling the Spectral Bias of the Deep Image Prior 文章目录 On Measuring and Controlling the Spectral Bias of the Deep Image Prior1. 方法原理1.1 动机1.2 相关概念1.3 方法原理频带一致度量与网络退化谱偏移和网络结构的关系Lipschitz-controlle…

Oracle 使用 CONNECT_BY_ROOT 解锁层次结构洞察:在 SQL 中导航数据关系

CONNECT_BY_ROOT 是一个在 Oracle 数据库中使用的特殊函数&#xff0c;它通常用于在层次查询中获取根节点的值。在使用 CONNECT BY 子句进行层次查询时&#xff0c;通过 CONNECT_BY_ROOT 函数&#xff0c;你可以在每一行中获取根节点的值&#xff0c;而不仅仅是当前行的值。 假…

第4章:决策树

停止 当前分支样本均为同一类时&#xff0c;变成该类的叶子节点。当前分支类型不同&#xff0c;但是已经没有可以用来分裂的属性时&#xff0c;变成类别样本更多的那个类别的叶子节点。当前分支为空时&#xff0c;变成父节点类别最多的类的叶子节点。 ID3 C4.5 Cart 过拟合 缺…