开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
前言:
随着企业的发展,和数据库的多种多样,在搭建项目之初,并没有详细考虑到数据库的建设,当增加配置不能满足业务场景需要时,这时候考虑到使用更高性能的数据库,如将sqlserver更换为oracle数据库。或者在搭建新项目时,需要复制原数据库的表结构和数据至其他数据库。怎么快速响应业务要求呢?
第一种方案:在目标库使用SQL语句批量建表,然后去修改字段的类型,主键等等。然后通过应用程序将数据插入至目标库。
第二种方案:自动建表和1:1镜像复制数据,复制数据时支持修改表结构。
在我们没接触到kettle时,一般都会想到第一种方案,这种搬运数据,无疑就像搬砖,非常辛苦,但是效率低下,且出错率高。
有没有高效的搬砖技巧呢?或者有没有更高级的办法,将数据复制粘贴,从一个库迁移至另外一个库呢?
答案当然是肯定的,让我们一起来看看吧。
一、可视化数据迁移程序开发
如下图所示,这是最后完成作业的效果图,对应的作业由两部分组成,一个自动建表的脚步,和一个复制数据的转换,然后通过箭头将类似的转换串联起来,就做成了批次迁移数据的作业。这些作业程序乍看起来有点复杂,像一字长蛇阵,其实这些都不需要我们学习,因为这些都是自动生成的。
二、kettle开发工具-复制多表向导 如图所示,我们点击工具-向导-复制多表向导,即可进入我们批量数据迁移的可视化开发界面。 (如果没有kettle开发工具,可以点击链接下载,下载低版本的。如5.2的,因为低版本运行更顺畅)
kettle下载地址: https://sourceforge.net/projects/pentaho/files/Data%20Integration/
如图所示,我们选择生产的源库,迁移至我们数仓的BI库,然后我们点击下一步,选择需要迁移的表,然后点击下一步即可完成迁移数据作业的开发。
三、看看作业程序里面都有啥
1、建表脚本
程序会根据目标库将对应建表语句自动创建,如图所示为oracle建表语句。
2、复制数据转换
如图所示自动生成转换注释,并生成脚本转换程序,可以看到表输入是查询对应表所有数据,输出至目标库和我们自己写转换程序时一样,只是这是自动生成的,当然我们也可以在里面按自己要求加上过滤条件,来复制我们需要的部分数据,比如我们只需要近一年的数据等等,然后点击运行作业,即可完成数据迁移工作,是不是超级简单呀。 还不赶快去试试吧,有不懂可以留言讨论哦~