背景


因为项目的需求,须要将数据从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. 【Swift】学习笔记(六)——函数

    函数  懂编程语言的来说这个是最主要的了,不论什么语言都有函数这个概念.函数就是完毕特定任务的独立代码块. 函数怎么创建: 1.创建一个无參无返回值的函数(实际上全部的函数都有返回值,这个函数返回vo ...

  2. 学艺不精而惭愧--论C++模板类的使用

    自己断断续续地使用C++也有一段时间了.有些时候产生了自满的情绪.觉得自己对C++的语言特性已经知道的几乎相同了,在语法方面没有什么难倒我的地方了,如今所要做的是依据实际问题编敲代码,问题的难点在于算 ...

  3. iOS开发之autoLayout constraint

    前言 ios设备的尺寸越来越多,针对一款app可能要适配到多种设备.多种尺寸.所以.我们期望我们的app可以autoLayout.本文主要介绍在Xcode中使用constraint.未来会不定期对此文 ...

  4. ASP.NET六大巨头——内置对象(1)

    ASP.NET提供了六个内置对象:Request.Response.Application.Session.Server和Cookie.这些对象收集当前应用程序请求.用户信息.响应浏览器信息,来完毕页 ...

  5. 机器学习之线性分类器(Linear Classifiers)——肿瘤预测实例

    线性分类器:一种假设特征与分类结果存在线性关系的模型.该模型通过累加计算每个维度的特征与各自权重的乘积来帮助决策. # 导入pandas与numpy工具包. import pandas as pd i ...

  6. 杂项-项目管理:WBS(工作分解结构)

    ylbtech-杂项-项目管理:WBS(工作分解结构) WBS:工作分解结构(Work Breakdown Structure) 创建WBS:创建WBS是把项目 交付成果和项目工作分解成较小的,更易于 ...

  7. 2. Add Two Numbers[M]两数相加

    题目 You are given two non-empty linked lists representing two non-negative integers. The digits are s ...

  8. Beta冲刺提交—星期五

    课程链接: https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 作业要求链接: https://edu.cnblogs.com/ ...

  9. roscore不能启动

    通过VNC 在VNC窗口上出入 roscore  得到下面错误信息 ----------------------------------------------------------- proces ...

  10. 【node.js web项目】解决路由默认是hash模式(带#)

    [概念讲述] 1.什么是hash模式 Vue+WebPack项目,本身是一个单页应用. vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 ...