背景


因为项目的需求,须要将数据从Oracle迁移到MSSQL,不是简单的数据复制,而是表结构和字段名都不一样。甚至须要处理编码规范不一致的情况,例如以下图所看到的

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3p3ZW5odWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

注意:Oracle和MSSQL中的同名表的字段名是不同样的

假设要是採用手工SQL语句操作的话会非常麻烦,须要考虑

  • Oracle和MSSQL SQL语法的差异
  • 数据从抓取--转化--载入迁移的过程安排
  • 字段的映射
  • 外键的约束
  • 目的表是否为空
  • 等等很多问题

而这些问题对于kettle来说都不叫事,以下就为大家介绍怎样使用强大的kettle实现数据的迁移

实战

Kettle翻译成中文是“水壶”。这个名字非常形象。无论你向水壶其中加入了哪些液体或者可溶物质从壶嘴里面出来的都是均匀统一的液体。对于数据载入就是:无论数据源採用什么样的格式,Excel、datatable、纯文本或者是xml。kettle都能转化成统一的格式进行处理,而且可以更具用户的须要导出不同的格式

以下我们就用kettle来解决上述问题

首先介绍一下kettle的两个工作单元:transformation和job

transformation:实现数据的转化

job:对transformation依据依赖关系组织运行顺序,还能够对job的运行进行条件推断和预处理。用户还能够设
         置job的运行时间,比方每天的9:00開始运行job,这和持续构建中的job意思一样。

看一下这款奇妙的软件长的什么样子

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3p3ZW5odWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

首先我们创建一个transformation,命名:tr_stu_and_class,例如以下图所看到的。目的是先将学生和班级的信息从Oracle迁移到mssql

然后创建第二个transformation。命名tr_stuclasslink。例如以下图所看到的,目的是将学生和班级的关系从oracle迁移到mssql

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3p3ZW5odWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

由于第三张关系表TB_STUCLASSLINK和TB_STUDENT、TB_CLASS存在外键依赖关系,所以必须先运行tr_stu_and_class再运行tr_stuclasslink。

所以我们须要一个job(命名jb_orcl2mssql)来组织他们的运行顺序。例如以下图所看到的

接下来执行job就能够在瞬间实现数据迁移

总结

在transformation中能够自己定义字段的映射关系(如从oracle表中的哪一列迁移到mssql表中的哪一列)。能够指定迁移哪些列

利用图形化的模块化的方式,更加高效和直观

假设是大批量复杂的数据迁移,使用kettle能够更好的组织数据迁移

创建的transformation和job都会被保存起来。什么时候须要迁移数据。点一下button就ok啦

怎么样是不是非常easy非常强大

补充

kettle是开源的

kettle差点儿支持全部数据库、Excel和xml等常见的数据格式的迁移转换。你能想到的它差点儿都支持

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3p3ZW5odWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

数据迁移仅仅是kettle功能中非常小的一部分。kettle不仅是ETL工具更是强大的BI工具,有兴趣的童鞋们能够研究一下

附下载地址

http://sourceforge.net/projects/pentaho/files/Data%20Integration/5.0.1-stable/pdi-ce-5.0.1.A-stable.zip/download

开源ETL工具kettle--数据迁移的更多相关文章

  1. 开源ETL工具kettle系列之常见问题

    开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...

  2. 可用于Hadoop下的ETL工具——Kettle

    看大家分享了好多hadoop相关的一些内容,我为大家介绍一款ETL工具——Kettle.    Kettle是pentaho公司开源的一款ETL工具,跟hadoop一样,也是java实现,其目的就是做 ...

  3. 开源ETL工具之Kettle介绍

    What 起源 Kettle是一个Java编写的ETL工具,主作者是Matt Casters,2003年就开始了这个项目,最新稳定版为7.1. 2005年12月,Kettle从2.1版本开始进入了开源 ...

  4. 大数据之ETL工具Kettle的--1功能介绍

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了就是,很有必要去理解一般ETL工具必备的特性和功能,这样才更好的掌握Kettle的使用. ...

  5. ETL工具--kettle篇(17.10.09更新)

    ETL是EXTRACT(抽取).TRANSFORM(转换).LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环也是工作量较大的一块.当前知道的 ...

  6. kettle 数据迁移 (转)

    最近在公司搞一个项目重构迁移问题,旧项目一直在线上跑,重构的项目则还没上线.重构之后数据库表结构,字段,类型等都有变化,而且重构的数据库由oracl改为mysql.这样就设计到数据迁移问题,别人推荐下 ...

  7. kettle 数据迁移

    最近在公司搞一个项目重构迁移问题,旧项目一直在线上跑,重构的项目则还没上线.重构之后数据库表结构,字段,类型等都有变化,而且重构的数据库由oracl改为mysql.这样就设计到数据迁移问题,别人推荐下 ...

  8. ETL工具kettle基本使用

    1.下载kettle:https://sourceforge.net/projects/pentaho/files/Data%20Integration/7.0/pdi-ce-7.0.0.0-25.z ...

  9. 八步学会数据迁移:ETL工具kettle使用方法

    一.目的 将不同服务器上的表合并到另外一个服务器上.例如:将服务器1上的表A和服务器2上的表B,合并到服务器3上的表C 要求:表A需要被裁剪(去掉不必要的字段).表B需要增加一些字段 二.使用方法 ( ...

随机推荐

  1. iframe显示滚动栏

    子页面通过iframe载入.出现了竖向滚动栏 最后查出原因:文档申明 iframe有滚动栏的页面的文档申明 <!DOCTYPE html> 改成例如以下即可了 <!DOCTYPE H ...

  2. c语言实现皇帝翻牌游戏

    一个综合的游戏,对所学的知识进行整合!融会贯通! #include <stdio.h> #include <stdlib.h> #include <string.h> ...

  3. 院校-美国:美国国立卫生研究院(NIH)

    ylbtech-院校-美国:美国国立卫生研究院(NIH) 美国国立卫生研究院(简称NIH)位于美国马里兰州贝塞斯达(Bethesda),是美国最高水平的医学与行为学研究机构,初创于1887年,任务是探 ...

  4. oracle 索引优化之distinct

    11G R2环境: --DISTINCT测试前的准备drop table t purge;create table t as select * from dba_objects;update t se ...

  5. Spark任务调度

    不多说,直接上干货! Spark任务调度 DAGScheduler 构建Stage—碰到shuffle就split 记录哪个RDD 或者Stage 输出被物化 重新提交shuffle 输出丢失的sta ...

  6. .NET MVC权限设计思考之切入点

    在WebForm下我们一般会设计个PageBase继承Page,在OnInit方法中实现对基本权限的验证业务,然后所有的页面在继承PageBase直接继承这项基本权验证业务.而在.NET MVC下我们 ...

  7. 五步完成一个 VSCode 扩展(插件)开发

    第一步: 安装扩展生成器 npm install -g yo generator-code vsce 第二步: 初始化一个 Hello World 扩展 yo code 图来自 CN-VScode-D ...

  8. 鲜为人知的 Windows 技能

    IE/Edge 竟然可以转换图片格式 SVG 转 PNG.SVG 转 BMP 在图片上点击右键,选择"图片另存为" Windows/Office 屏幕录制 office 竟然带有屏 ...

  9. JAVA实现两种方法反转单列表

    /** * @author luochengcheng * 定义一个单链表 */ class Node { //变量 private int record; //指向下一个对象 private Nod ...

  10. poj 2828 Buy Tickets【线段树 单点更新】

    倒着插,先不理解意思,后来看一篇题解说模拟一下 手动模拟一下就好理解了----- 不过话说一直写挫---一直改啊----- 好心塞------ #include <cstdio> #inc ...