初次接触kettle及数据库导数

Posted Mr_Cxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初次接触kettle及数据库导数相关的知识,希望对你有一定的参考价值。

一、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顺序完全相反
#还没涉及到kettle二次开发 局限于一般公司处理日常excel报表 数据库更新等等
1、写SQL语句(更新数据库的和数据报表的)
2、新建一个转换 连接对应数据库 表输入 表输出 设置好步骤 保存文件
3、新建一个作业,START--->插入一个转换控件---->右击转换控件--->将第2步的转换导入调用
保存文件 执行作业即可实现数据的导入(操作步骤可以百度资料或者看下野马kettle视频)

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

 技术分享

3.2这样导数到本地的一个数据表 数据表有的字段没有 后面导数成功后为配合mysql类目文章做了增加字段 修改表名

#导数之前:和服务器数据表保持一致 下面添加的字段服务器数据表没有 因此暂时创建
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条数据(图片是  因签署保密协议  一堆数据内容字段等进行处理放在博客 后面会导出放在博客

图4 导数成功

技术分享

3.3 修改表名 添加字段 更新字段内容 完整的test数据表

#更换表名(和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  数据如下面图

  技术分享

 

以上是关于初次接触kettle及数据库导数的主要内容,如果未能解决你的问题,请参考以下文章

javascript 匿名函数及闭包----转载

基于现在接触的ETL工具(datax和kettle)做个小总结

初次接触JQuery

kettle集成开发及源代码分析

javaweb 与jsp页面的交互流程 (初次接触写)

数据抓去之初次接触