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做下对比

  1. 微软Integration Services 项目 测试(仅2008版做比较,更高版本未尝试)

a)         整体结构

b)         全量&增量

  1. Kettle Spoon项目

a)         随机数过滤分支

b)         计算器

c)         笛卡尔计算

2.           Kettle Spoon MySql数据库连接

  1. 驱动:

a)         驱动错误

b)         驱动添加

  1. 端口错误:连接数据库端口不对

  1. 正常连接

  1. 表输入

a)         新建一个表输入,获取数据库表的数据

b)         Sql语句

c)         预览数据

d)         当前表数据输出到另外一个同样的表

e)         设置输出表

f)          输出表字段

g)         输出表字段选择

h)         预览

i)           查看日志

j)           借助表输入预览来查看数据是否存储到数据库

3.           MsSql 数据库连接

  1. 驱动错误

  1. 新增驱动

a)         把下载的包放到对应位置

b)         测试连接

  1. Mysql表数据获取输出到Mssql

a)         拖拽一个表输入,设置一个有数据的表,输出到一个同样结构的空表

b)         配置映射关系

c)         启动预览

d)         预览数据

4.            Oracle数据库连接

  1. 数据库驱动及连接测试

a)         数据库连接

b)         数据库之间的交互可以参照上面实例

5.           文件(Txt、Json、Xml、Access等)

  1. 文件的路径设置

a)         全局变量+文件方式(${Internal.Transformation.Filename.Directory}文件名)

  1. 变量通过Ctrl+Alt+Space三个键组合显示出来,或者使用图表点击

b)         绝对路径

  1. Access输入

a)         Access文件选择

b)         转换预览

  1. Excel获取

a)          Excel输入

b)         添加文件

c)         选择工作表

d)         设置需要获取的字段

e)         预览记录

  1. JSON 输入

a)         Json文件输入(8.1你可能找不到Json输入,请拷贝文件Json输入到你新的转换)

b)         Json文件字段获取

c)         预览

  1. 文本文件输入

a)         一般文件

  1. 输入
  1. 字段获取=》预览

b)         固定宽度文件输入

  1. 设置文件字段宽度
  1. 字段设置=》预览

c)         编码文件输入

  1. 文件输出分发

a)         设置结构

b)         复制两份

c)         输出两个不同的文件

d)         两个输出文件一起执行

6.           RestApiLogin

  1. 用户数据获取(存在登录参数)

a)         有参数直接调用方式http://10.60.136.145:9102/api/auth/login)登录及获取接口Json数据

b)         预览

  1. 用户数据获取(未登录状态)

a)         设置启动参数

b)         设置参数字段是否是请求的头类型

c)         结果中提取Token

d)         格式化符合规范的Token值

e)         设置请求参数字段类型

f)          结果一次解析,这里得到结果就可以做更多的逻辑处理,分析是否继续向下执行或解析

g)         Data二次解析

h)         过滤或选择字段

i)           预览

7.           Hbase数据库

  1. 相对麻烦,有需要请联系,这里暂不增加篇幅
  2. 新建转换

8.           Job作业

a)         生成记录

b)         文件输出

c)         获取字段

d)         运行

e)         预览

  1. 新建Job作业

a)         开始

b)         转换引用

c)         成功标记

d)         运行预览(每5秒从从头执行一次)

e)         错误分支,返回刚才的转换,修改并保存

f)          错误分支设置

g)         错误作业预览(基本的成功和错误的流程作业就先介绍到这里)

h)         请测试完不要忘记停止作业哦

9.           业务场景

  1. 整体结构
  1. 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)          以上的作业可以对一个文件夹持续监控执行转换,最后备份文件

  1. 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接口

  1. 获取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.     部署

  1. Windows部署

a)         在windows下转换及Job可以依托windows排程来部署

b)         转换部署

c)         Job部署

  1. linux部署待续

Kettle-Spoon入门示例的更多相关文章

  1. Kettle Spoon入门教程

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定.其中,Spoon是Kettle中的一个组件,其他组件有PAN,CHEF,Enc ...

  2. [WCF编程]1.WCF入门示例

    一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...

  3. Maven入门示例(3):自动部署至外部Tomcat

    Maven入门示例(3):自动部署至外部Tomcat 博客分类:  maven 2012原创   Maven入门示例(3):自动部署至外部Tomcat 上一篇,介绍了如何创建Maven项目以及如何在内 ...

  4. 1.【转】spring MVC入门示例(hello world demo)

    1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于 ...

  5. 【java开发系列】—— spring简单入门示例

    1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...

  6. Spring MVC 入门示例讲解

    在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...

  7. Couchbase之个人描述及入门示例

    本文不打算抄袭官方或者引用他人对Couchbase的各种描述,仅仅是自己对它的一点理解(错误之处,敬请指出),并附上一个入门示例. ASP.NET Web项目(其他web开发平台也一样)应用规模小的时 ...

  8. Velocity魔法堂系列一:入门示例

    一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...

  9. OUYA游戏开发核心技术剖析OUYA游戏入门示例——StarterKit

    第1章  OUYA游戏入门示例——StarterKit StarterKit是一个多场景的游戏示例,也是OUYA官方推荐给入门开发者分析的第一个完整游戏示例.本章会对StarterKit做详细介绍,包 ...

  10. Springmvc整合tiles框架简单入门示例(maven)

    Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...

随机推荐

  1. ROM的分类

    转载自:http://www.ic37.com/htm_tech/2012-5/82774_23811.htm ROM(只读存储器)按其内容写入方式,一般分为3种:固定内容ROM:可一次编程PROM: ...

  2. Linux下抓包工具tcpdump应用详解

      TCPDUMP简介 在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一.sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的.对于网络管理人员来说 ...

  3. 简单三步快速学会使用Mybatis-Generator自动生成entity实体、dao接口以及mapper映射文件(postgre使用实例)

    前言: mybatis-generator是根据配置文件中我们配置的数据库连接参数自动连接到数据库并根据对应的数据库表自动的生成与之对应mapper映射(比如增删改查,选择性增删改查等等简单语句)文件 ...

  4. starUML安装与破解

    安装包百度云: 链接:https://pan.baidu.com/s/1oF_DH7Xh6yun6fFUDB2H3w 密码:1z7e 破解步骤:1. 首先打开你的starUML安装目录,并找到Lice ...

  5. WinDbg 调试工具的使用

    概述 项目接近尾声了,可是在运行时会有memory leak(内存泄露) bug.产品在运行一天后,内存增长致1.4G,而我们产品的初始内存才有70M,问题很严重,决定采用WinDbg工具来分析代码问 ...

  6. Java使用Jacob转换Word为HTML

    从今天开始,我也要养成记录开发中遇到的问题和解决方法的好习惯! 最近开发一个Android项目,需要用到查看Word和Pdf文档的功能,由于Android没有直接显示Word和PDF文档的组件,只有一 ...

  7. mysql分区表之四:分区表性能

    一,      分区概念  分区允许根据指定的规则,跨文件系统分配单个表的多个部分.表的不同部分在不同的位置被存储为单独的表.MySQL从5.1.3开始支持Partition. 分区和手动分表对比 手 ...

  8. linux使用curl进行WebService接口测试

    参考 :linux使用curl进行接口测试 使用curl 命令模拟POST/GET请求 Linux命令发送Http的get或post请求(curl和wget两种方法) curl 模拟 GET\POST ...

  9. python 三元表达式 列表推导式,生成器表达式。递归,匿名函数, 内置函数

    三元表达式 三元表达式仅应用于: 1.条件成立返回一个值 2.条件不成立返回一个值 res = x if x>y else y print(res) name= input("姓名&g ...

  10. C# 程序软件启动默认管理员权限。

    在vs的Properties目录中找到 app.manifest,将其中level="asInvoker" 改成 level="requireAdministrator& ...