Kettle-Docker部署+Sqlserver数据同步Mysql+Start定时任务

一. 背景介绍

1. ETL是什么

ETL(Extract-Transform-Load),即数据抽取、转换、装载的过程。它是一种思想,主要是说,从不同的数据源获取数据,并通过对数据进行处理(格式,协议等转换),最后将处理后的数据提供给其他系统使用。当然这个过程,就是软件研发,尤其是后端研发最核心的工作。

2. Kettle概念

kettle,翻译为中文叫做水壶,显而易见,水壶不管壶里面装的是什么液体,最终都会从壶嘴平滑的流出来。就好比,不管水壶装的是什么类型的数据,最后都会通过壶嘴以特定的格式流出来。其实就是对ETL思想的一种实现,它是通过java语言编写,秉承ETL思想的工具。既然是此采用java实现的,那就肯定具有跨平台的特性。

3. kettle组成

kettle既然是一种工具,要处理不同数据源的异构数据,那就要求它能够进行图形化操作,在UI界面上对数据源进行数据治理,最终所有的图形化处理都要能够保存为kettle可识别的文件。

kettle主要生成两种类型的文件,一种转换文件,一种是任务文件,即:transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

这两种文件之间是可以相互调用的,已达到最终的数据清洗目的

二. Kettle  docker界面化部署

github地址:HiromuHota/pentaho-kettle: webSpoon is a web-based graphical designer for Pentaho Data Integration with the same look & feel as Spoon (github.com)

dockerhub地址 :

hiromuhota/webspoon - Docker 镜像 |Docker 中心

1. 安装命令

docker pull hiromuhota/webspoon

2. 启动服务命令

docker run -d -p 8080:8080 hiromuhota/webspoon

3. 界面汉化 

(1)启动之后界面为英文

 (2)进入 kettle容器编辑

docker exec -it -u 0 容器id /bin/bash

  cd  /usr/local/tomcat/bin 

  编辑 setenv.sh

CLASSPATH=/usr/local/tomcat/lib/webspoon-security-9.0.0.0-423-22.jar
# 加入以下两行
CATALINA_OPTS="-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
JAVA_OPTS="-Duser.language=zh -Duser.region=CN -Dfile.encoding=UTF-8"

  (3)容器重启  

docker restart 容器id

  重启成功再次访问地址 汉化成功

 三. SQLserver 与 Mysql 驱动下载与连接

1. 下载

链接: https://pan.baidu.com/s/1Cr9pJmsSJVsq4im9hMeuPg?pwd=ygsj

提取码: ygsj 复制这段内容后打开百度网盘手机App

2. 将驱动放置到下方容器位置,重启容器

/usr/local/tomcat/webapps/spoon/WEB-INF/lib

3. 数据库连接

四. 数据全量同步以及设置定时任务

1. 将Sqlserver数据同步到mysql(两表数据保持完全一致)

2. 拖拽两个表输入,配置如图,因为要合并记录(实际是对两张表数据进行比较),所以获取SQL获取数据/字段等要一致。 

表输入:

 字段选择:(元数据也全选)

合并记录:

数据同步:

标志字段:设置标志字段的名称,标志字段用于保存比较的结果,比较结果有下列几种。
1. “identical” – 旧数据和新数据一样
2. “changed” – 数据发生了变化;
3. “new” – 新数据中有而旧数据中没有的记录
4. “deleted” –旧数据中有而新数据中没有的记录

将数据文件保存到自定义位置

点击作业切换到任务界面

 

 

点击运行 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/656757.shtml

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

相关文章

第32关 k8s集群管理开源神器 - k9s

------> 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维。 随着我们管理维护的K8S集群上线,怎么管理好集群上面成百上千的服务pod,就是我们该操心的事情了。这里博哥把在生产中一直在用的一个开源管理工具k8s,github…

Jenkins如何从GIT下拉项目并启动Tomcat

一、先添加服务器 二、添加视图 点击控制台输出,滑到最下面,出现这个就说明构建成功了,如果没有出现,说明构建有问题,需要解决好问题才能启动哦~

C++实现通讯录管理系统

目录 1、系统需求 2、创建项目 2.1 创建项目 3、菜单功能 4、退出功能 5、添加联系人 5.1 设计联系人结构体 5.2 设计通讯录结构体 5.3 main函数中创建通讯录 5.4 封装联系人函数 5.5 测试添加联系人功能 6、显示联系人 6.1 封装显示联系人函数 7、删除联系人 7.1…

GPT栏目:yarn 安装

GPT栏目:yarn 安装 一、前言 在跟GPT交互的时候,发现最近gpt4给出的答案率有了比较明显的提高,简单记录一下,我用gpt4拿到的答案吧。 本人已按照这个步骤成功 二、具体步骤 要安装 yarn,你可以按照以下步骤进行操作…

MyBatis常见面试题汇总

说一下MyBatis执行流程? MyBatis是一款优秀的基于Java的持久层框架,它内部封装了JDBC,使开发者只需要关注SQL语句本身,而不需要花费精力去处理加载驱动、创建连接等的过程,MyBatis的执行流程如下: 加载配…

Google Chrome 常用的几个参数

1 右键--Google Chrome--属性--目标 参数作用--disable-infobars此计算机将不会再收到 Google Chrome 更新,因为 Windows XP 和 Windows Vista 不再受支持。适用于 xp、2003 的 49.x.x.x 版本。示例1--ingore-certificate-errors忽略证书错误--disable-background-…

【计算机网络】【练习题及解答】【新加坡南洋理工大学】【Computer Control Network】

说明: 仅供学习使用。 一、题目描述 题目共4问,描述网络通信中的 帧传输时延(Frame Delay)、传播时延(Propagation Delay),以及 链接利用率(Link Utilization) 的相关…

Vue2:通过代理服务器解决跨域问题

一、场景描述 现在的项目大多数是前后端分离的。Vue前端项目通过ajax去请求后端接口的时候,会有同源策略的限制。从而产生跨域问题。 二、基本概念 1、什么是同源策略? 就是前端服务和后端服务的协议名,IP或主机名,端口号不完…

0x02递推与递归

0x02递推与递归 递推者,自小而大,循序渐进;递归者,由上而下,分而治之 文章目录 0x02递推与递归例题T1:T2:T3:T4:T5T6 例题 T1: 92. 递归实现指数型枚举 - AcWing题库 …

Mysql 插入数据

1 为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值。基本语法格式为: INSERT INTO table_name (column_list) VALUES (value_list); 使用INSERT插入数据时,允许列名称列表column_list为空,此时&…

Web服务器之Tomcat

文章目录 Web 服务器软件简介资源分类访问流程常见的Web服务器软件 Tomcat简介使用步骤使用Tomcat注意事项部署项目的方式方式一方式二方式三 问题中文乱码黑窗口一闪而过启动报错 Web 服务器软件 简介 服务器:安装了服务器软件的计算机服务器软件:接收…

漏洞原理远程命令执行

漏洞原理远程命令/代码执行 远程命令执行函数(Remote Command Execution Function)是指在一个网络环境中,通过远程执行命令来控制另一个计算机系统或设备的功能。 远程命令执行函数可以通过网络协议(如SSH、Telnet、RPC等&#x…

伊恩·斯图尔特《改变世界的17个方程》毕达哥拉斯定理笔记

它告诉我们什么? 直角三角形的三个边之间有什么关系。 为什么重要? 它提供了几何和代数之间的重要联系,使我们能够根据坐标计算距离。它也催生出了三角学。 它带来了什么? 测绘、导航,以及较近代出现的狭义和广义相对论…

第一节课,用户管理--后端初始化,项目调通。二次翻工2

一、网址来源: 快速开始 | MyBatis-Plus (baomidou.com) 进程: ​ 二、[此处不看]添加测试类,看下效果 2.1 参考 一、第一节课,用户管理--后端初始化,项目调通-CSDN博客 ​ 2.2 新建 SampleTest ​ 2.3 复…

python-自动化篇-运维-语音识别

文章目录 理论文本转换为语音使用 pyttsx使用 SAPI使用 SpeechLib 语音转换为文本 代码和效果01使用pyttsx实现文本_语音02使用SAPI实现文本_语音03使用SpeechLib实现文本_语音04使用PocketSphinx实现语音转换文本 理论 语音识别技术,也被称为自动语音识别&#xf…

安卓逆向学习之ADB的配置和使用及刷机root

ADB的配置和使用 ADB即Android Debug Bridge,安卓调试桥,是谷歌为安卓开发者提供的开发工具之一,可以让你的电脑以指令窗口的方式控制手机。可以在安卓开发者网页中的 SDK 平台工具页面下直接下载对应系统的 adb 配置文件,大小只…

矩阵键盘的使用

在定义局部变量时,一定要给该变量赋初值。在这个程序中,给按键按下的返回值变量 KeyNum 赋值为 20 。 矩阵键盘线行扫描法的学习链接:https://www.bilibili.com/video/BV1dv411z7Gd/?spm_id_from333.999.0.0&vd_sourceb91967c499b23106…

Python 因果推断(上)

引言 原文:causal-methods.github.io/Book/Introduction.html 译者:飞龙 协议:CC BY-NC-SA 4.0 作者:Vitor Kamada 电子邮件:econometrics.methodsgmail.com 最后更新日期:2020 年 8 月 15 日 这本书是使…

jupyter出现问题ModuleNotFoundError: No module named ‘exceptiongroup‘

今天使用pyg的jupyter环境发现这个环境没法用, 所以只能把这个kernel给重删了然后再装,操作记录如下 查看kernel jupyter kernelspec list注意不是jupyter kernel --list 需要加关键字spec, 删除kernel jupyter kernelspec remove pyg当重新安装这个kernel时可能…

Redis -- 常用数据结构,认识数据类型和编码方式

"人生就像骑自行车,要保持平衡,就必须保持前进。" — 爱因斯坦 说到数据结构,或许就能想到哈希表,列表集合等数据结构。对于redis来说对应的key的value的形式也可以是这些数据结构,如下: 针对上面…