Kettle-Spoon入门示例
Spoon 是Kettle的设计调试工具
[Demo文档下载] https://files.cnblogs.com/files/shexunyu/Kettle-Spoon-Demo%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3.zip
[驱动下载] https://files.cnblogs.com/files/shexunyu/Kettle-Spoon-Mysql-Mssq-Orcle-lwin64%E9%A9%B1%E5%8A%A8.zip
[SpoonDemo源文件下载] https://files.cnblogs.com/files/shexunyu/Kettle-Spoon-Demo.zip
目录
1. 微软ETL与Java 开源Kettle做下对比... 2
2. Kettle Spoon MySql数据库连接... 5
3. MsSql 数据库连接... 11
4. Oracle数据库连接... 14
5. 文件(Txt、Json、Xml、Access等)... 15
6. RestApiLogin. 25
7. Hbase. 31
8. Job作业... 31
9. 业务场景... 36
10 部署... 55
1. 微软ETL与Java 开源Kettle做下对比
- 微软Integration Services 项目 测试(仅2008版做比较,更高版本未尝试)
a) 整体结构
b) 全量&增量
- Kettle Spoon项目
a) 随机数过滤分支
b) 计算器
c) 笛卡尔计算
2. Kettle Spoon MySql数据库连接
- 驱动:
a) 驱动错误
b) 驱动添加
- 端口错误:连接数据库端口不对
- 正常连接
- 表输入
a) 新建一个表输入,获取数据库表的数据
b) Sql语句
c) 预览数据
d) 当前表数据输出到另外一个同样的表
e) 设置输出表
f) 输出表字段
g) 输出表字段选择
h) 预览
i) 查看日志
j) 借助表输入预览来查看数据是否存储到数据库
3. MsSql 数据库连接
- 驱动错误
- 新增驱动
a) 把下载的包放到对应位置
b) 测试连接
- Mysql表数据获取输出到Mssql
a) 拖拽一个表输入,设置一个有数据的表,输出到一个同样结构的空表
b) 配置映射关系
c) 启动预览
d) 预览数据
4. Oracle数据库连接
- 数据库驱动及连接测试
a) 数据库连接
b) 数据库之间的交互可以参照上面实例
5. 文件(Txt、Json、Xml、Access等)
- 文件的路径设置
a) 全局变量+文件方式(${Internal.Transformation.Filename.Directory}文件名)
- 变量通过Ctrl+Alt+Space三个键组合显示出来,或者使用图表点击
b) 绝对路径
- Access输入
a) Access文件选择
b) 转换预览
- Excel获取
a) Excel输入
b) 添加文件
c) 选择工作表
d) 设置需要获取的字段
e) 预览记录
- JSON 输入
a) Json文件输入(8.1你可能找不到Json输入,请拷贝文件Json输入到你新的转换)
b) Json文件字段获取
c) 预览
5.文本文件输入
a) 一般文件
- 输入
- 字段获取=》预览
b) 固定宽度文件输入
- 设置文件字段宽度
- 字段设置=》预览
c) 编码文件输入
- 文件输出分发
a) 设置结构
b) 复制两份
c) 输出两个不同的文件
d) 两个输出文件一起执行
6. RestApiLogin
- 用户数据获取(存在登录参数)
a) 有参数直接调用方式http://10.60.136.145:9102/api/auth/login)登录及获取接口Json数据
b) 预览
- 用户数据获取(未登录状态)
a) 设置启动参数
b) 设置参数字段是否是请求的头类型
c) 结果中提取Token
d) 格式化符合规范的Token值
e) 设置请求参数字段类型
f) 结果一次解析,这里得到结果就可以做更多的逻辑处理,分析是否继续向下执行或解析
g) Data二次解析
h) 过滤或选择字段
i) 预览
7. Hbase数据库
- 相对麻烦,有需要请联系,这里暂不增加篇幅,有需要可以加我微信或给我留言
8. Job作业
- 新建转换
a) 生成记录
b) 文件输出
c) 获取字段
d) 运行
e) 预览
- 新建Job作业
a) 开始
b) 转换引用
c) 成功标记
d) 运行预览(每5秒从从头执行一次)
e) 错误分支,返回刚才的转换,修改并保存
f) 错误分支设置
g) 错误作业预览(基本的成功和错误的流程作业就先介绍到这里)
h) 请测试完不要忘记停止作业哦
9. 业务场景
- 整体结构
- Csv场景:不断监控某一个文件夹,把文件夹里面的Csv文件进行解析入库,需要执行增量更新,历史文件进行备份。
a) 整体结构
b) 文件格式
c) 获取文件
d) 字段选择
e) CSV文件输入
b) 过滤记录
c) 拆分字段
d) 字段选择,格式化字段
e) 输出到表
f) 排除不需要的字段行
g) 过滤记录-用来做条件分支
h) 获取有效字段
i) 记录集连接
j) 字符串替换-找到下划线进行替换空
k) 字段的选择-表数据
l) 以上有逻辑里面有给两个表写入数据,第一个表写入原始数据作为历史记录,第二个表是经过处理后的数据
m) 建立Job是能够自动监控文件夹,然后进行增量操作
n) 复制文件
o) 复制文件设置
p) 设置转换-指定转换
q) 文件备份
r) 以上的作业可以对一个文件夹持续监控执行转换,最后备份文件
- Cassandra场景:通过连接Cassandra数据库获取数据,然后通过RestApi接口提交数据
a) 整体结果
b) 连接数据库
c) 增加字段
d) 设置字段常量-设置Json字符串模板
PostUrl: http://10.60.136.156:8089/api/dlapiservice/v1/BusinessIdValue
PostJsonStr: {"businessId":"businessIdValue","rowKvList":[{"columnKvList":[{"key":"rowkey","value":"rowkeyValue","type":"STRING"},{"key":"filename","value":"filenameValue","type":"STRING"},{"key":"filesize","value":"filesizeValue","type":"LONG"},{"key":"usercode","value":"usercodeValue","type":"STRING"},{"key":"username","value":"usernameValue","type":"STRING"}]}]}
e) 需要提交的数据格式
f) Java片段代码-客制化字段
g) 字符串替换,模板字段替换
h) RestClient-提交Json数据
i) 以上就是数据通过从数据库提取转换提交到Rest接口
- 获取RestApi数据 场景:获取RestApi数据存储到Mysql数据库
a) 整体结果
b) 设置字段常量
http://10.60.136.156:8089/api/dlapiservice/v1/hbpincloud/WT00169:File:1540448142572:8a778832-0d28-4684-932d-6701e1028876/WT00169:File:1540448142584:3f18fdfd-3e73-4632-8acf-d5840f1e1429/10
c) Get访问RestApi
d) Json的解析需要怎么做?
e) Json提取-提取关键字段
f) Java片段代码
g) 提取字段
h) 插入/更新 写入Mysql数据库
10. 部署
- Windows部署
a) 在windows下转换及Job可以依托windows排程来部署
b) 转换部署
c) Job部署
- linux部署待续