视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
开源ETL工具kettle--数据迁移
2020-11-09 15:04:07 责编:小采
文档

背景 由于项目的需求,需要将数据从Oracle迁移到MSSQL,不是简单的数据复制,而是表结构和字段名都不一样,甚至需要处理编码规范不一致的情况,如下图所示 注意:Oracle和MSSQL中的同名表的字段名是不相同的 如果要是采用手工SQL语句操作的话会很麻烦,需要

背景

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

注意: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意思一样。

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


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

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

因为第三张关系表TB_STUCLASSLINK和TB_STUDENT、TB_CLASS存在外键依赖关系,所以必须先执行tr_stu_and_class再执行tr_stuclasslink。所以我们需要一个job(命名jb_orcl2mssql)来组织他们的执行顺序,如下图所示

接下来运行job就可以在瞬间实现数据迁移

总结

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

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

如果是大批量复杂的数据迁移,使用kettle可以更好的组织数据迁移

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

怎么样是不是很简单很强大

补充

kettle是开源的

kettle几乎支持所有数据库、Excel和xml等常见的数据格式的迁移转换。你能想到的它几乎都支持


数据迁移只是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

下载本文
显示全文
专题