背景:项目需要从客户的数据库迁移一批人口数据,大约240w条。所以我们需要一款工具帮助我们实现数据快速搬运,数据过滤,以得到符合我们使用的安全数据。
先放一个不错的基础教程博文链接http://f.dataguru.cn/thread-186578-1-1.html
再放一个存储过程的博文推荐http://www.cnblogs.com/chinafine/archive/2010/07/12/1776102.html
kettle简介:Kettle是一款国外开源的ETL工具,纯java编写,数据抽取高效稳定的数据迁移工具。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流程的控制。
明确表PAT_MASTER_INDEX(桂林人口数据表)----》t_patientget(居民信息采集表)
业务分析 从人口库迁移数据到项目库,中间需要进行数据筛选,拼装。
1 下载并安装
这次使用的是4.2 版本 我们以4.2为模板学习。
1.1 解压后 免安装 可直接使用。解压后点击Spoon.bat 运行 需要JRE环境支持。
1.2 新建transformation工作台 保存后为.ktr文件
1.3 新建数据库连接
两种方式
1.3.1 建了以备不时之需
主对象树--transformation--DB连接--右击新建
配置数据库参数
1.3.2 使用时再建
核心对象--输入--拖拽表输入到工作台
双击“表输入”
在“数据库连接”点击--”新建“ 与第一种方式相同,配置数据库连接,选择我们所需的连接
点击“获取SQL查询语句”,以获得目标表
正确操作出现上图红框所示SQL语句
勾选“允许延迟转换”--点击“确定”
同理 我们建立“表输出”
1.4 在左侧“核心对象”中的“转换”文件夹中选择“字段选择”功能,拖动到右侧编辑区。按住键盘shift同时鼠标从“表输入”为起点,“字段选择”为终点画一条连接。如图:
1.5
双击“字段选择”,打开编辑窗口,选择“元数据”面板,点击右侧“获取改变的字段”,将自动列出之前表输入中所有字段
1.6 编辑完“字段选择”后点击“确定”关闭窗口。同上,在“输出”文件夹中拖动一个“表输出”到右侧编辑区,并画连接
基本的工作流程就完成了,
2 下面是一些针对业务上做的一些工作
2.1 数据过滤,
过滤掉证件类型不是身份证的,死亡人口,非“桂林市”户口人口,以及最后做了个存储过程,校验身份证号码正确性。
这是第一层数据过滤。
2.2 针对过滤后的数据 导入“采集表”中
拼接户籍地址,现居住地址(根据行政区划代码 从字典表中查出 拼接)
所以
我们直接在数据层上 写存储过程解决业务逻辑,可以很大的提高效率。