7.1全量加载
案例介绍:
从技术角度来说,全量加载比增量加载的操作要简单很多,即只需要在数据加载之前,将目标数据表进行清空,再将源数据表中的数据全部加载到目标表中。
通过Kettle工具将数据表full_source中的数据全量加载到数据表full_target中。
假设,现有两张数据表,分别为数据表full_source和数据表full_target,其中数据表full_source为源数据表,数据表full_target为目标数据表。数据表full_source和full_target的内容如图所示。
1. 使用Kettle工具,创建一个转换full_load,并添加执行SQL脚本控件、表输入控件、表输出控件以及Hop跳连接线,具体如图所示。
2.配置“执行SQL脚本”控件 ,双击执行SQL脚本控件,进入执行SQL语句界面,配置数据库连接
3.配置“表输入”控件
4.双击进入表输入控件,SQL框中编写查询数据表full_source数据的SQL语句,然后单击预览按钮,查看数据表full_source的数据是否成功从MysqL数据库中抽取到表输入流中
4. 配置“表输出 ”控件
6.双击图中的表输出控件,点击目标表处的浏览按钮,选择表输入界面,选择目标表级数据表full_target,这里不需要新的数据库连接,在数据库连接后的下拉列表中选择已创建数据库连接即可
7.运行转换
8.查看数据表full_target中的数据
转换完成
案例展示:
7.2数据增量加载
增量加载是指目标表仅加载源数据表中新增和发生变化的数据。优秀的增量加载机制不但能够将业务系统中的变化数据按一定的频率准确地捕获到并加载到目标表中,同时还不会对业务系统造成太大的压力,也不会影响现有业务。
1.通过Kettle工具将数据表incremental_source中的数据增量加载到数据表incremental_target中。
2.假设,现有两张数据表,分别为incremental_source和incremental_target,其中incremental_source为源数据表,incremental_target为目标数据表。数据表incremental_source和incremental_target的表结构、数据都是相同的,具体如图所示。
3.打开kettle工具,创建转换
创建转换incremental_load,并添加“表输入”控件、“插入/更新”控件,以及Hop跳连接线
4.配置“表输入”控件
5.双击图中“表输出”控件,进入“表输出”界面,单击新建按钮,配置数据库连接,配置完成后点击“确认”按钮
6.配置“插入/更新 ”控件
进入“插入/更新”界面,单击“新建”按钮,单击目标表处的“浏览”按钮,弹出“数据库浏览器”窗口,选择目标表incremental_target,单击“获取字段”按钮,用来指定查询数据需要的关键字,这里比较数据表incremental_target的字段id与输入流里的字段id是否一致为条件,更新数据表中的其他字段数据
7.单击“获取和更新字段”按钮,用来指定需要更新字段
8.运行转换
9.查看数据表incremental_target中的数据
案例展示:
7.3数据批量加载
案例介绍:通过Kettle工具将文件weibo_user.csv中的数据批量加载到数据表weibo_user中。
1.假设,现有一个CSV格式的微博用户信息文件weibo_user.csv,其中包含了用户id、用户名称、用户性别、用户简介等字段,文件weibo_user.csv的具体内容如图所示(这里只截取了部分数据)。
2.使用Kettle工具,创建一个转换batch_load,并添加执行CSV文件输入控件、表输出控件以及Hop跳连接线,具体如图所示。
3.配置CSV文件输入控件
4.配置表输出控件
5.运行转换
6. 查看数据表weibo_user中的数据
成功写入
案例展示: