一、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. CocoaAsyncSocket 文档1:Socket简单介绍

    前言 CocoaAsyncSocket是 IOS下广泛应用的Socket三方库,网上相关样例数不胜数.这里我就不直接上代码,本文由B9班的真高兴发表于CSDN博客.另辟一条思路:翻译SocketAsy ...

  2. LVS + KEEPALIVED + WINDOWS SERVER 2008 R2 ------高可用负载均衡(转)

    工作原理此处不作讲解,自己去官方网站学习(http://www.linuxvirtualserver.org),这里重点讲如何配置!注:最好从官方网站对其进行了解,不至于会对某些问题产生误解,尽管是英 ...

  3. Redis学习手册(List数据类型)(转)

    一.概述: 在Redis中,List类型是按照插入顺序排序的字符串链表.和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的 元素.在插入时,如果该键并不存在,Redi ...

  4. Vim 打开文件同时定位到某一行

    在linux下,当后台某一行报警出错后,想用vim打开文件同时定位到某一行, Vim +某一行 filename 即可.

  5. 【文献阅读】Stack What-Where Auto-encoders -ICLR-2016

    一.Abstract 提出一种新的autoencoder -- SWWAE(stacked what-where auto-encoders),更准确的说是一种 convolutional autoe ...

  6. programming review (c++): (2)binary tree, BFS, DFS, recursive, non-recursive

    1.二叉树定义 // Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; TreeNode *r ...

  7. 记录日志(Log4Net)

    一:Log4net的简单示例 1.新建控制台应用程序,右键属性,把其框架.NET Framework4 Client Profile 修改为.NET Framework4,此时项目中将会自动添加一个A ...

  8. jQuery 插件开发(1)

    JavaScript 是一门混乱的语言,好的特性和坏的特性混杂在一起.而不同浏览器对标准的解析不一致,使得这门语言更加混乱,在这种情况下遵循最佳实践有诸多好处,至少不会掉入坑里.所以就有了<Ja ...

  9. RocksDB

    RocksDB RocksDB is a high performance[1][2][3][4][5] embedded database for key-value data. It is a f ...

  10. win7下搭建nginx+php的开发环境(转)

    在win7下用的是IIS做web服务器,但近来因项目需求的原因,需要在服务器遇到404错误的时候自动做转向(不是在客户端的跳转,而是在服务器收到客户端请求去某目录下读取文件返回时,如果发现目录或目录下 ...