JS技术

数据抽取工具Kettle使用 - 唐僧打怪兽 - 博客频道 - CSDN.NET 唐僧打怪兽 热爱互联网,编程,比如:J

字号+ 作者:H5之家 来源:H5之家 2015-12-14 15:37 我要评论( )

横切关注点的两种实现方法软件系统,可看作由一组关注点组成。其中,直接的业务关注点,是直切关注点。而为直切关注点提供服务的,就是横切关注点。有两种方法

在我们开发的过程中,经常碰到多个系统之间需要相互抽取数据的问题,以往我们可以通过写Webservices接口,或者FTP共享来完成,但是这样会存在工作量大,不便于维护,性能不高的问题。今天介绍一款常用的数据抽取工具—-Kettle。
Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。下面我们使用一个Demo程序介绍下其常用组件。

需求

有一个社交类的产品,进行了一次架构变更,数据库表结构模型发生变化了,从老系统升级到新系统时,要把老系统中数据迁移到新系统的数据库里。
下面我们拿群组表数据做个Demo演示数据迁移过程。
1. 现状:
老系统
群组表:group
群组成员表:user_group
新系统
群组表:group_分表,
群组成员表:group_members_分表
我的群组表:mygroups_分表
2. 步骤逻辑梳理
old:老系统
new:新系统
查询群组(old)->创建群组,群组成员,我的群组分表(new)->插入群组数据(new)->插入群组成员数据(new)

数据迁移

1.下载工具

下载完成后,解压,打开Spoon.bat启动

2.查询群组(old)- 表输入
当我们需要查询表数据时,需要用到表输入组件

这里写图片描述


新建转换,选择 输入->表输入,双击 到 转换画板,打开输入以下信息:
步骤名称:步骤名称标识,不能重复
数据库连接: 要连接的数据库,如果没有,新建一个
SQL语句:输入查询SQL语句
下图是我写的

这里写图片描述


这样,我们查询群组表就写好了

3.创建群组分表(new) - SQL脚本
当我们要执行SQL时,可以使用SQL脚本组件

这里写图片描述


选择 脚本-> 执行SQL脚本,双击 到 转换画板,打开输入要执行的SQL语句,如下图:

这里写图片描述


这里传入了game_id作为分表的参数,’tita_group_?’会被替换成’tita_group_gameid值’
记得选择 “执行每一行”

4.字段值转换 - 值映射组件

这里写图片描述


由于群组类型字段type发生了变化,原来是1,2,新系统是9,10,所以我要进行值得转换,使用值映射组件

这里写图片描述

5.插入群组数据(new) - 表输出
需要插入表数据时,使用 表输出组件
选择 输出->表输出,双击,打开,输入 ”数据库连接“,”目标表“,选择 ”指定数据库字段“,输入 ”数据库字段“ 映射,如下图:

这里写图片描述


”数据库字段“ 映射,表字段:插入表字段,流字段:”上一步“的输出字段,这样运行迁移时,会将数据插入到对应的表字段里

6.点击运行按钮

这里写图片描述

,运行转换,看到下图,表示转换完成

这里写图片描述

7.群组成员,我的群组数据迁移跟上面步骤类似,不再重复说明,最终完成整个转换如下图:

这里写图片描述

总之,学习的过程需要不断实践和反复摸索,这只是Kettle一小部分知识,大家保持一颗学习的热情,就不怕路远。

  • 上一篇REST API 安全设计指南
  • 下一篇Mysql在大型网站的应用架构演变
  • 顶 1 踩 0

    我的同类文章

    猜你在找

    查看评论

    * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

    个人资料


    JaCman

  • 访问:100193次
  • 积分:1278
  • 等级:

    积分:1278

  • 排名:第19277名
  • 我的微信公众号 长期为您推荐优秀博文、开源项目、视频等,进入还有好玩的等着你,欢迎扫一扫。

    文章搜索

    文章分类

  • Android(11)
  • Java(21)
  • UML(2)
  • VoIP(1)
  • Quartz(0)
  • 网络编程(3)
  • 开源(8)
  • 笔记本(2)
  • iOS(11)
  • python(1)
  • js(1)
  • MySQL(2)
  • 架构(8)
  • 读书笔记(2)
  • 代码管理(1)
  • 数据库(2)
  • 消息队列(1)
  • 消息队列(0)
  • 文章存档

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • JS魔法堂:函数重载 之 获取变量的数据类型

      JS魔法堂:函数重载 之 获取变量的数据类型

      2016-01-26 12:56

    • 【JavaScript.2】辨析Typeof操作符作用,罗列JS五大数据类型阵容 - 孟东辉 廊坊师范学院信息技术提高班

      【JavaScript.2】辨析Typeof操作符作用,罗列JS五大数据类型阵容 -

      2015-12-15 09:00

    • 数据结构实验3(飞机最少环城次数问题) - GKHacks Blog - 博客频道 - CSDN.NET GKHacks

      数据结构实验3(飞机最少环城次数问题) - GKHacks Blog - 博客频道 -

      2015-12-14 16:18

    • 数据结构实验2(二叉链表实现二叉树的基本运算) - GKHacks Blog - 博客频道 - CSDN.NET GKH

      数据结构实验2(二叉链表实现二叉树的基本运算) - GKHacks Blog - 博

      2015-12-14 16:13

    网友点评