导图社区 Kettle思维导图
主要针对kettle进行说明和使用经验记录,文档还在更新过程中,敬请期待。
社区模板帮助中心,点此进入>>
安全教育的重要性
个人日常活动安排思维导图
西游记主要人物性格分析
17种头脑风暴法
如何令自己更快乐
头脑风暴法四个原则
思维导图
第二职业规划书
记一篇有颜又有料的笔记-by babe
伯赞学习技巧
Kettle
基本概念
转换
并行
数据流
转换会一次性把所有控件全部先启动(一个控件对应启动一个线程),然后数据流会从第一个控件开始,一条记录、一条记录地流向最后的控件
作业
串行
步骤流
作业的每一个步骤,必须等到前面的步骤都跑完了,后面的步骤才会执行
组件
组件也叫控件,作业中也叫作业项,转换中也叫步骤
跳Hop
组件之间的连线叫做Hop(跳)
概览
工具
SPOON
允许你通过图形界面来设计ETL转换过程
KITCHEN
批量使用由Chef设计的任务
PAN
Pan是一个后台执行的程序,没有图形界面,类似于时间调度器
CHEF
任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。
特点
免费开源
基于java的免费开源的软件,对商业用户也没有限制
易安装配置
可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定
不同数据库
JDBC连接RDB
Hbase
MongoDB
两种脚本文件
transformation完成针对数据的基础转换
job则完成整个工作流的控制
图形界面设计
通过图形界面设计实现做什么业务,无需写代码去实现
定时功能
在Job下的start模块,有一个定时功能,可以每日,每周等方式进行定时
学习kettle需要具备的基础
熟悉各种关系型数据库,并且具备一定的SQL编写能力
具备SQL能力可以进行简单的ETL工作
熟悉Hadoop、Hive、HBase非关系型数据库,并且能够使用基本的命令
hadoop集群需要,如果不涉及大数据集群
具备一定的java编程基础,能够书写简单的javaScript脚本和正则表达式
高级应用和自主组件开发
作业组件
以8.2版本为主
HOP
在作业中,Hop主要用来控制流程
:表示无论上一步执行成功还是失败,都一定会执行下一步
:表示上一步执行成功才会执行下一步
:表示上一步执行失败执行下一步
注意事项
出现多分支是HOP的创建顺序会影响执行先后顺序 原因分析:与XML文件的存储、解析、执行顺序有关
常用组件
通用
Start
重复执行
不重复执行
成功
设置变量
属性文件/参数文件
变量列表
变量有效范围
当前作业
父作业
根作业
java虚拟机(JVM)
相较于转换,是更加高级的操作。一个作业里包括多个作业项(Job Entry),一个作业项代表了一项工作,而转换是一种作业项,即作业里面可以包括多个转换。
主要是针对数据的各种处理,一个转换里可以包 含多个步骤(Step)。
条件
检验字段的值
计算表中的记录数
等待
脚本
shell
SQL
JavaScript
应用
中止作业
写日志
转换组件
转换中,一般情况,控件和控件之间只有一个Hop
分发记录
目标步骤轮流接收记录,其实就是你一条,我一条,轮着接收数据
复制记录
所有记录同时发送到所有的目标步骤
慎用【执行SQL脚本】组件,如果必须使用,建议添加数据流依赖 原因分析:由于转换执行时数据流并行,所有组件启动时全部加载,因此没有依赖的【执行SQL脚本】组件中的SQL内容会直接执行。
输入
表输入
输出
表输出
附录1
任务分发
1.任务列表+校验字段的值
任务并行
1.RDB 任务列表 + 任务锁列表
优点
分发相对均衡
功能相对独立
缺点
程序逻辑复杂
2.RDB 任务列表 + ROWNUM (类似mysql集群 数据ID)
无需单独存储锁
程序逻辑简单
由于根据排序号进行匹配,节点越小,任务量可能越大
需要提前为进程配置处理逻辑,如ROWNUM对应的编号