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

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.rhkb.cn/news/88889.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络:路由

1. 路由器 路由器工作在三层&#xff0c;每个接口都处于不用的网段中&#xff0c;即不同的广播域。但大多情况下&#xff0c;两台路由器直接相连的接口是同一个广播域&#xff0c;即一个网段。 路由器具有判断网络地址和选择路径的功能&#xff0c;能在多网络互联的环境中&…

Mybatis一级缓存与二级缓存

Mybatis一级缓存与二级缓存 缓存就是内存中的数据&#xff0c;常常来自对数据库查询结果的保存&#xff0c;使用缓存可以避免频繁与数据库进行交互&#xff0c;从而提高查询响应速度。 mybaits提供内存支持&#xff1b; 一级缓存 一级缓存&#xff0c;sqlSession级别的缓存…

NZ系列工具NZ02:VBA读取PDF使用说明

【分享成果&#xff0c;随喜正能量】时光绽放并蒂莲&#xff0c;更是一份殷殷嘱托&#xff0c;更是一份诚挚祝福&#xff0c;是一份时光馈赠&#xff0c;又是一份时光陪伴。。 我的教程一共九套及VBA汉英手册一部&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解…

多线程事务怎么回滚?

项目中用到了多线程去批量处理一些数据&#xff0c;当时想当然认为只要方法上加上Transactional注解就好了&#xff0c;实际并未达到想要的处理效果。特此去学习了下关于多线程事务回滚相关方案&#xff0c;参考了网上其他资料&#xff0c;这里整理并记录下学习历程。 站在巨人…

VR全景智慧文旅,用科技助力旅游业振兴

引言&#xff1a; 近年来&#xff0c;科技的迅猛发展将我们带入一个全新的数字化时代&#xff0c;而虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;技术则以其令人惊叹的全新方式&#xff0c;影响着各个领域。其中&#xff0c;旅游业作为人们探索世界、体…

微服务03-RabbitMQ

1、简介 MQ,中文是消息中间件(队列)(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。 简单来说,消息中间件就是指保存数据的一个容器(服务器),可以用于两个系统之间的数据传递。 几种常见MQ的对比: RabbitMQActiveMQRocketMQKafka公司…

云安全攻防(十)之 资源耗尽型攻击

资源耗尽型攻击 同为虚拟化技术&#xff0c;容器与虚拟机既存在相似之处&#xff0c;也有显著不同。在资源限制方面&#xff0c;无论使用 VMware、Virtual Box 还是 QEMU&#xff0c;我们都需要为即将创建的虚拟机设定明确的CPU、内存及硬盘资源阈值。在虚拟机内部进程看来&am…

Android自定义侧滑Item

源码地址&#xff1a;https://github.com/LanSeLianMa/CustomizeView/tree/master/cehuaitem 使用方式一&#xff1a;XML布局中直接使用 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com…

【Node.js】低代码平台源码

一、低代码简介 低代码管理系统是一种通过可视化界面和简化的开发工具&#xff0c;使非专业开发人员能够快速构建和管理应用程序的系统。它提供了一套预先定义的组件和模块&#xff0c;使用户可以通过拖放操作来设计应用程序的界面和逻辑。低代码管理系统还提供了自动化的工作…

STM32自带的DSP库的滤波初体验(一)

最近在弄STM32自带的DSP库里的滤波&#xff0c;记录一下&#xff1a; arm_fir_instance_q15 instance_q15_S; #define NUM_TAPS 16 //滤波系数的个数 #define BLOCK_SIZE 32 q15_t firStateF32[BLOCK_SIZE NUM_TAPS]; q15_t Fir_Coeff[NUM_TAPS] {-79, -136, 312, 6…

基于 SIFT 和 RANSAC 算法对高分辨率图像进行图像伪造检测(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

二叉树的存储结构(顺序存储)—— 数据结构与算法

&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️ &#x1f4a5;个人主页&#xff1a;&#x1f525;&#x1f525;&#x1f525;大魔王&#x1f525;&#x1f525;&#x1f525; &#x1f4a5;代码仓库&#xff1a;&#x1f525;&#x1f525;魔…

从零开始学习 Java:简单易懂的入门指南之抽象类接口内部类(十一)

面向对象进阶&#xff08;抽象类&接口&内部类&#xff09; 第一章 抽象类1.1 概述1.1.1 抽象类引入 1.2 abstract使用格式1.2.1 抽象方法1.2.2 抽象类1.2.3 抽象类的使用 1.3 抽象类的特征1.4 抽象类的细节1.5 抽象类存在的意义 第二章 接口2.1 概述2.2 定义格式2.3 接…

机器学习 | Python实现KNN(K近邻)模型实践

机器学习 | Python实现KNN(K近邻)模型实践 目录 机器学习 | Python实现KNN(K近邻)模型实践基本介绍模型原理源码设计学习小结参考资料基本介绍 一句话就可以概括出KNN(K最近邻算法)的算法原理:综合k个“邻居”的标签值作为新样本的预测值。更具体来讲KNN分类过程,给定一个训…

第二十一章 重要HL7操作场景 - HL7批量消息

文章目录 第二十一章 重要HL7操作场景 - HL7批量消息支持的批处理格式处理传入的批次文档批处理模式自定义出库批量处理 第二十一章 重要HL7操作场景 - HL7批量消息 Production品支持 HL7 中的嵌套子文档&#xff08;批处理格式&#xff09;。每个子文档本身就是一个虚拟文档。…

【设计模式】MVC 模式

MVC 模式代表 Model-View-Controller&#xff08;模型-视图-控制器&#xff09; 模式。这种模式用于应用程序的分层开发。 Model&#xff08;模型&#xff09; - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑&#xff0c;在数据变化时更新控制器。View&#xff…

Python爬虫——requests_cookie登陆古诗文网

寻找登陆需要的参数 __VIEWSTATE:aiMG0UXAfCzak10C7436ZC/RXoZbM2lDlX1iU/4wjjdUNsW8QUs6W2/3M6XIKagQZrC7ooD8Upj8uCnpQMXjDAp6fS/NM2nGhnKO0KOSXfT3jGHhJAOBouMI3QnlpJCQKPXfVDJPYwh169MGLFC6trY __VIEWSTATEGENERATOR: C93BE1AE from: http://so.gushiwen.cn/user/collect.…

泰卦-地天卦

前言&#xff1a;否极泰来&#xff0c;但在易经里是泰卦在前&#xff0c;让我们分析下在否所期待否极后的泰卦是什么样的&#xff1f;本篇博客分析泰卦的卦辞和爻辞。 卦辞 小往大来&#xff0c;吉&#xff0c;亨。 篆曰&#xff1a;泰&#xff0c;小往大来&#xff0c;吉亨。…

面试热题(合并两个有序列表)

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 合并链表这类型题也是比较经典的题了&#xff0c;因为链表是由指针相互指向而确定位置&#xff0c;所以我们只需要改变某些节点的指针便可以做到对链表进行排序 今天这个方法…

C++小游戏贪吃蛇源码

graphics.h是针对DOS下的一个C语言图形库 (c也可以) 目前支持下载此头文件的常用的有两种: 1. EGE (Easy Graphics Engine)2. EasyX Graphics LibraryEGE, 全名Easy Graphics Engine, 是windows下的简易绘图库&#xff0c;是一个类似BGI(graphics.h)的面向C/C语言新手的图形库…