一、kettle是什么。

Kettle是一款国外开源的ETL( Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出.
 
 二、kettle安装
注意:设置好环境变量,将kettle 文件夹内的 spoon.bat发送快捷方式到桌面就可以启动了.
 
三、kettle运行逻辑

kettle包括作业、转换来进行数据处理的操作,执行步骤逻辑是这样:

1、执行作业,作业调用转换

2、调用的转换里面有多个执行步骤
3、执行步骤里面可以和mysql等主流数据库连接 可以依托SQL语句实现数据处理

图1:一个作业流程 对应第1个步骤

图2 一个转换内部步骤 对应步骤2 和步骤3(步骤3就是写SQL)具体字段以处理过的表test数据为范本

因此 如果想实现数据处理的最终结果,需要做的步骤和上面1、2、3顺序完全相反
1、写SQL语句(更新数据库的和数据报表的)
2、新建一个转换 连接对应数据库 表输入 表输出 设置好步骤 保存文件
3、新建一个作业,START--->插入一个转换控件---->右击转换控件--->将第2步的转换导入调用
保存文件 执行作业即可实现数据的导入

 三、从服务器导数到本地去进行MySQL练习和出一些报表 
3.1、前提:表输入和表输出 来自的数据表的字段和数据类型完全一致(当然导数也不一定只用kettle)
在执行转换的步骤里我已经创建了两个mysql数据库连接,一个阿里云服务器连接一个本地localhost 连接
图3导数转换

3.2导数到本地 服务器和本地数据表字段和数据类型一致

#导数之前:最下面添加的两个字段productname 和order_date 在服务器数据表里是没有的 因此先创建下面这么多字段和服务器表保持一致
CREATE TABLE IF NOT EXISTS test_a03(
city VARCHAR(255),
username INT(11),
productID INT(11),
price DECIMAL(19,4),
sales INT(11),
pay_money DECIMAL(19,4),
order_time DATETIME,
salesperson VARCHAR(255),
KEY city(city),
KEY username(username)
)ENGINE INNODB DEFAULT CHARSET=utf8
#成功导入了200条数据 sql下载在博客底部百度云连接

图4 导数成功

3.3 修改表名 添加字段 更新字段内容

#更换表名(和mysql目录文章保持同一个表 以这个数据表进行mysql学习
#2修改表名 alter table 表名 rename 新表名
ALTER TABLE test_a03 RENAME test_a03order;
#3在字段 order_time后面增加一个字段
ALTER TABLE `test_a03order` ADD order_date DATE AFTER order_time
#插入的两个新字段内容为空 我们更新一下
#更新 order_date
UPDATE test_a03order SET order_date=DATE(order_time) WHERE order_date IS NULL;
#更新productname
UPDATE test_a03order SET productname="心灵鸡汤(押瓶1000元)10000ml*24瓶/箱" WHERE productname IS NULL
#现在执行 select * from test_a03order 数据如下面图

  

  嗯。。productname 一样名称,根据username值范围再更新一下,日期包含7、8、9三个月的

price*sales=pay_money, productID 和productname也能对应  price是变动的这个也比较符合实际 就是押金写的有点大..

3.4 数据更新完成

sql文件放在百度云盘了 下载在本地数据库执行

链接: https://pan.baidu.com/s/1slzUw6T

kettle及数据库导数_20160920的更多相关文章

  1. kettle系列-3.kettle读取数据库资源库很慢的优化

    环境:windows7,jvm内存设置14G,kettle5.1后来升级到5.4,oracle作为资源库. 问题背景:我们通过web页面管理kettle的job运行,这只是一个管理界面,即使web项目 ...

  2. Solr4.6从数据库导数据的步骤

    http://blog.csdn.net/bruce128/article/details/17796705 Solr4.6有从数据库导数据的功能.导入步骤如下: 1.将下载下来的solr4.6的di ...

  3. sqlloader 往数据库导数据提示数据文件的字段超出最大长度

    当我们用sqlloader往数据库导数据提示被拒绝,数据文件的字段超出最大长度.但是我们不管怎么改提示字段的长度的时候仍然提示超出最大长度. 这个是因为ctl文件中默认为char256,超过256需要 ...

  4. Kettle实现数据库迁移

    Kettle实现数据库迁移 需求: 做数据仓库时,需要将业务系统CRM抽取到数据仓库的缓冲层,业务系统使用的是SqlServer数据库,数据仓库的缓冲层使用的是mysql数据库,为实现数据库的迁移,即 ...

  5. kettle实现数据库迁移----多表复制向导

    kettle实现数据库迁移----多表复制向导 需求: 做数据仓库时,需要将业务系统CRM抽取到数据仓库的缓冲层,业务系统使用的是SqlServer数据库,数据仓库的缓冲层使用的是mysql数据库,为 ...

  6. kettle的数据库配置的表分析

    以下场景,用mysql来举例说明.本文是在初步了解了kettle的数据库配置之后,做的总结和分析.将kettle中的配置用数据库管理的时候,在创建了一个新的数据库,还没有做任何kettle中的job和 ...

  7. 用kettle实现数据库迁移之oracle到mysql

    项目完成后,需要把历史oracle 的数据库转移mysql 用kettle 转换数据. 步骤: 1.打开spoon.bat,文件-->新建-->转换,点击“主对象树”,DB连接右键“新建” ...

  8. Kettle建立数据库链接报错-'MS SQL Server' driver (jar file) is installed. kettle的bug,对于12.2而言

    1.链接sql server数据库报错 错误连接数据库 [My_vm_win_sql] : org.pentaho.di.core.exception.KettleDatabaseException: ...

  9. ETL工具之Kettle的简单使用一(不同数据库之间的数据抽取-转换-加载)

    ETL工具之Kettle将一个数据库中的数据提取到另外一个数据库中: 1.打开ETL文件夹,双击Spoon.bat启动Kettle 2.资源库选择,诺无则选择取消 3.选择关闭 4.新建一个转换 5. ...

随机推荐

  1. hdu4857 & BestCoder Round #1 逃生(拓扑逆排序+优先队列)

    题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=4857 ----------------------------------------------- ...

  2. containsKey使用方法

    作用是判断Map中是否有所需要的键值,下面是具体的代码: public static void main(String[] args) { Map<String, String> map ...

  3. python学习(十一)函数、作用域、参数

    定义和调用函数 在这里函数的定义和调用和一般的语句没什么不一样,感觉函数也是对象 #!/usr/bin/python def times(x, y):                # 定义函数    ...

  4. HDFS源码分析心跳汇报之BPServiceActor工作线程运行流程

    在<HDFS源码分析心跳汇报之数据结构初始化>一文中,我们了解到HDFS心跳相关的BlockPoolManager.BPOfferService.BPServiceActor三者之间的关系 ...

  5. Oracle学习第二篇—单行函数

    1字符函数 length  字符长度 lengthb 字节长度 lower 变为小写 upper 变为大写 initcap 首字母大写 select Lower('xun Ying') 小写,Uppe ...

  6. 奇妙的go语言(開始篇)

    [ 声明:版权全部.欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 从前接触脚本语言不多,可是自从遇到go之后,就開始慢慢喜欢上了这个脚本语言.go语言是goog ...

  7. Altium Designer 敷铜间距设置,真实有效

    在任一PCB视图时,点击设计->规则,弹出规则设置对话框,如下图 找到Clearance,如下图, 使用右键单击,选择 新规则,如下图 在新规则上单击,在右侧 where  the first ...

  8. android菜鸟学习笔记17----Android数据存储(一)文件读写

    假如有如下需求,要求能够记录用户输入的用户名和密码,下次登录时,能直接获取之前保存的用户名密码,并在相应的EditText中显示. 要保存用户输入的数据,最先想到的应该就是文件读写了. 通过对andr ...

  9. 九度OJ 1056:最大公约数 (GCD)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6278 解决:4075 题目描述: 输入两个正整数,求其最大公约数. 输入: 测试数据有多组,每组输入两个正整数. 输出: 对于每组输入,请 ...

  10. opencv使用记录

    /*2017-1-14*/ /*视频的读取...*/ int g_n=0; void on_change(int pos,void *)//看来void*不能省! { printf("g_n ...