5.4.1数据一致性处理

数据一致性是指在对一个副本数据进行更新的同时,必须确保也能够更新到其他的副本,否则不同的副本之间的数据将不再一致。

数据的一致性有三种类型,即强一致性、弱一致性以及最终一致性,具体介绍如下:强一致性是指对数据完成更新操作之后,所有客户端访问到的数据均为更新之后的数据,这样可以保证客户端获取的是最新数据,但是若要达到强一致性,将会降低性能。弱一致性是指当数据完成更新操作之后,系统并不保证所有的客户端访问到的数据都是最新数据,但是会尽量保证在某个时间(如秒级或分钟级)内,让数据达到一致性状态。最终一致性是弱一致性的一种特例,当对数据更新完之后,保证没有后续更新的前提下,系统最终返回的是上一次更新操作的值。

通过Kettle工具,使用弱一致性对数据表Personnel_Information中的数据进行一致性处理,即利用数据表Personnel_Information中的字段GENDER中的值训练出一个健康值预测模型,用于将原始数据中的字符串特征转化为模型可识别的数字特征。

现在数据库中有一张名为Personnel_Information的数据表,该表中主要记录了500名职员的性别、身高、体重及健康值,具体数据内容如图所示(注:这里只截取数据表中的部分数据进行展示)。

 

1.打开Kettle工具,创建转换 

使用Kettle工具,创建一个转换data _consistency,并添加“表输入”控件、“值映射”控件、“插入/更新”控件以及Hop跳连接线。

2.配置“表输入”控件 

3.配置“值映射”控件 

双击“值映射”控件,进入“值映射”配置界面;在“使用的字段名”处的下拉框选择字段GENDER;在“字段值”框中,添加源值和目标值,这里是将Male替换成数字0,将Female替换成数字1

4.配置插入/更新控件 

单击目标表右侧的【浏览】按钮,选择目标表Personnel_ Information_New。单击【获取字段】按钮,用来指定查询数据所需要的关键字,这里选择的是Personnel_ Information_New数据表中的USERID字段和输入流里面的USERID字段;单击【获取和更新字段】按钮,用来指定需要更新的字段。

5.运行转换 

6.查看数据表Personnel_ Information_New中的数据 

通过SQLyog工具,查看数据表Personnel_ Information_New已成功插入501条数据,查看结果如图所示。

由于转换data _consistency的运行只是单次的,若是后续需要进行将原始数据进行转换、插入操作,则需要运行该转换,这样工作效率很低,因此,通过Kettle工具创建一个作业,对转换data _consistency设置定时器,使得转换data _consistency程序定时自动执行数据同步的操作。

7.打开Kettle工具,创建作业 

通过使用Kettle工具,创建一个作业data _consistency_job,并添加“Start”控件、“转换”控件以及作业跳连接线。

8.配置Start控件 

双击“Start”控件,进入“作业定时调度”界面;勾选“重复”处的复选框;单击“类型”处的下拉框,选择“时间间隔”定时,并设置以秒计算的间隔是5,以分钟计算的间隔是0。

9.配置转换控件 

10.运行作业 

从控制台的日志输出可以看出,作业每隔5秒会执行一次转换实现数据同步并且在执行过程中会记录处理的数据量以及当前时间段处理的数据条数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值