1、ETL 工具(kettle)
下载:https://community.hitachivantara.com/s/article/data-integration-kettle
2、解压
kettle目录文件
classe:生命周期监听,注册扩展、日志的配置文件
Data integration app:数据集成应用
Data Server JDBC Driver :jdbc驱动程序的数据服务
docs : docs 文档
launcher : kettle的启动服务
lib:支持库jar包
libswt:kettle图像库jar
plugins:plugins 插件
pwd: kettle 集群配置文件
simples: 自带例子
simple-jndi:连接配置
system:系统目录
ui:软件界面
carte.bat/Carte.sh 启动集群命令
Encr.bat/Encr.sh kettle提供的加密算法
import.bat/import.sh 导入命令
kitchen.bat/kitchen.sh 运行job的命令
pan.bat/pan.sh 运行转换的命令
set-pentaho-env.bat 设置环境变量的脚本
Spoon.bat 启动kettle UI 界面
SpoonDEbug.bat 以debug的方法是运行kettle
3、安装
(1)首先安装jdk
(2)启动spoon.bat
4、设置环境变量
kettle_HOME D:\pdi-ce-8.3.0.0-371\data-integration
path %kettle_HOME%
5、事例1 csv->excle
input->output 按住shift键将两个图像相连
点击开始执行
6、转换
转换是ETL解决方案中最主要的部分,他处理抽取转换加载各种对数据的操作
转换包含一个或多个步骤(step),如读取文件,过滤数据行,数据清洗或将数据加载到数据库
转换里的步骤通过跳(hop)来连接,跳定义一个单向通道,允许数据从一个步骤向另一个步骤流动
在kettle里,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的移动。
数据流有事也称为记录流。
7、文本文件输入
8.excle输出
9.文本文件输出(.txt,.csv)
主体对象树可以实现文件共享
10.SQl文件输出(表结构和数据)
11.excle输入->表输出
12.更新(把数据库已经存在的记录与数据流里面的记录进行对比,如果不同进行更新) 注意:如果记录不存在则会出现错误
13.插入更新(应用场景更多)
14.自定义常量数据 (自定义常量数据(input)->删除(删除表里面的数据))
15.转换控件(清洗)
(1)concat Fields 就是多个字段连接成一个新的字段
excle输入--->concat Fields--->excle输出
(2)值映射(值映射就是把字段里面的值映射成其他的值)
例:从excle中读取数据,并把gender里面的f和m转换为female和male,写入到excle文件
excle输入--->值映射----->excle输出
(3)增加常量
增加常量就是在本身的数据流里面添加一列数据,该列的数据都是相同的值
(4)增加序列
增加序列就是给数据流添加一个序列字段
(5)字段选择(删选字段)
字段改名和移除不需要的字段
(6)计算器
大小写替换 3个字段运算 数值相加 移除被合并字段
输入--->计算器--->输出
(7)字符串__剪切 __操作__ 替换
字符串操作是去除字符串两端的空格和大小写切换,并生成新字段
excle输入---->字符串剪切---->字符串替换--->字符串操作-->excle输出
(8)去除重复记录+排序记录
排序记录
从excle中读取数据,去除重复记录,并保存到excle
excle输入-->排序记录-->去除重复记录-->excle输出
(9)唯一行哈希值(就是删除数据流重复的行) 效率高
excle输入--唯一行哈希值--->excle输出
(10)拆分字段(就是把字段按照分隔符拆分成两个或多个字段)
注意:拆分字段后,原字段就不存在数据流中
excle输入-->拆分字段--->excle输出
(11)列拆分为多行(就是把指定分隔符的字段进行拆分为多行)
CSV输入--->列拆分为多行--->excle输出
(12)列换行(需要对数据流进行排序处理)
列转行就是如果数据一列有相同的值,按照指定的字段,把多行数据转换为一行数据
去除一些原来的列名,把一列数据变为字段
(13)行专列就是把字段的字段名转换为一列,把数据行变为数据列
(14)行扁平化
16.应用
(1)替换NULL值
(2)写日志(调试时使用)
17.流程
(1)Switch-case流程就是转换里面的第六个分裂 (一路到多路)
流程主要用来控制数据流程和数据流向.
(2)过滤记录 (一路到两路)(if--else)
(3)空操作 空操作一般作为数据流的终点
(4)中止 校验数据时使用
18.查询分类
查询就是用来查询数据源里面的数据合并到主数据流中.
(1)HTTpClient
httpClient是使用get的方式提交请求,获取返回页面的内容