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做下对比
- 微软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) 预览
- 文本文件输入
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部署待续
Kettle-Spoon入门示例的更多相关文章
- Kettle Spoon入门教程
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定.其中,Spoon是Kettle中的一个组件,其他组件有PAN,CHEF,Enc ...
- [WCF编程]1.WCF入门示例
一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...
- Maven入门示例(3):自动部署至外部Tomcat
Maven入门示例(3):自动部署至外部Tomcat 博客分类: maven 2012原创 Maven入门示例(3):自动部署至外部Tomcat 上一篇,介绍了如何创建Maven项目以及如何在内 ...
- 1.【转】spring MVC入门示例(hello world demo)
1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于 ...
- 【java开发系列】—— spring简单入门示例
1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...
- Spring MVC 入门示例讲解
在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...
- Couchbase之个人描述及入门示例
本文不打算抄袭官方或者引用他人对Couchbase的各种描述,仅仅是自己对它的一点理解(错误之处,敬请指出),并附上一个入门示例. ASP.NET Web项目(其他web开发平台也一样)应用规模小的时 ...
- Velocity魔法堂系列一:入门示例
一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...
- OUYA游戏开发核心技术剖析OUYA游戏入门示例——StarterKit
第1章 OUYA游戏入门示例——StarterKit StarterKit是一个多场景的游戏示例,也是OUYA官方推荐给入门开发者分析的第一个完整游戏示例.本章会对StarterKit做详细介绍,包 ...
- Springmvc整合tiles框架简单入门示例(maven)
Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...
随机推荐
- UniCode转码
<script type="text/javascript"> var GB2312UnicodeConverter = { ToUnicode: function ( ...
- Java笔记(七)
File类: import java.io.File; import java.io.IOException; public class Demo{ public static void main(S ...
- HDU2874(LCA应用:求两点之间距离,图不连通)
Connections between cities Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- 怎样编写高质量的 Java 代码
代码质量概述 怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友提出宝贵 ...
- keil5中文乱码的解决
keil5 复制出来的中文显示乱码,该如何解决? 点击Edit - Configuration ,进入编辑器设置: 点击ok ,就可以了
- servlet里的forward和redirect的区别
forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response); red ...
- C# 使用WebClient时,在多网卡时,指定IP发送Web请求
需要定义一个类,重写GetWebRequest,在方法内,指定IP地址 public class MyWebClient : WebClient { private IPAddress ipAddre ...
- lightoj 1089 【离散化+线段树】
题意: 给你n个区间,然后给你m个i点问你这个点在几个所给定的区间里: 思路: 离散化+区间覆盖 #include <bits/stdc++.h> using namespace std; ...
- 3D游戏中人物换装解决方案
换装基本上是每个网游都必须有的一个功能,每种网游的做法都各有不同,有些是换掉整个模型,有些则是通过可以换掉模型的一个部分完成.前者属于整体换,相对简单些:后者则是通过部分替换实现,目前用的比较多,本文 ...
- bzoj 3559: [Ctsc2014]图的分割【最小生成树+并查集】
读题两小时系列-- 在读懂题意之后,发现M(c)就是c这块最大权割边也就是的最小生成树的最大权边的权值,所以整个问题都可以在MST的过程中解决(M和c都是跟着并查集变的) 不过不是真的最小生成树,是合 ...