[Kettle 实战教程] 学会使用方便的开源数据库迁移工具

前(fei)言(hua)

最近因为项目重构,需要迁移数据库,新旧数据库的结构改动很大,原本打算写php然后命令行运行,偶然了解到一个元古神器kettle,几番琢磨后,发现确实是个好宝贝,就把自己学到的知识和经验技巧拿来和大家分享分享。我就发链接吧。

概述

什么是 ETL 呢,维基百科概括的很好:

ETL

ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。 ETL一词较常用在数据仓库,但其对象并不限于数据仓库。

ETL与ELT ETL所描述的过程,一般常见的作法包含ETL或是ELT(Extract-Load-Transform),并且混合使用。 通常愈大量的数据、复
杂的转换逻辑、目的端为较强运算能力的数据库,愈偏向使用ELT,以便运用目的端数据库的平行处理能力。

工具 ETL(or ELT)的流程可以用任何的编程语言去开发完成,由于ETL是极为复杂的过程,而手写程序不易管理,有愈来愈多的企业采用工具协助ETL的开发, 并运用其内置的metadata功能来存储来源与目的的对应(mapping)以及转换规则。 工具可以提供较强大的连接功能(connectivity)来连接来源及目的端,开发人员不用去熟悉各种相异的平台及数据的结构,亦能进行开发。 当然,为了这些好处,付出的代价便是金钱。

通俗的说,Kettle 是一个很方便的开源数据库迁移工具。

想象一个场景,你的公司的项目需要重构,面对庞大的数据库,我们需要用自己熟悉的编程语言去开发 ETL 功能, 从而达到将旧的数据迁移到结构完全不一样的数据库,例如可能要将旧表拆分成两个关联表或是需要新增一个关联字段, 这时候如果自己去编写程序,除了容易出错,代码的管理和维护也是很费时的,这时候就需要一个解放生产力的工具了,那就是 Kettle。

Kettle 从最早2007年开始,一直维护到现在,每周有1000的下载量,算是很流行的工具了。 虽说解放生产力,但前期也还是要投入一些学习成本,本教程希望通过分享我在工作中学到的经验和技巧,让大家少走弯路,减少成本,加快投入成产~

教程链接

Github 地址

本作品采用《CC 协议》,转载必须注明作者和本文链接
Wayne
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!